summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--asm/clear_save_data_menu.s434
-rw-r--r--asm/rom_813BA94.s4892
-rw-r--r--asm/rom_8148B8C.s4476
-rw-r--r--ld_script.txt2
5 files changed, 4913 insertions, 4893 deletions
diff --git a/Makefile b/Makefile
index ac0c9e6e7..8a75a0f6b 100644
--- a/Makefile
+++ b/Makefile
@@ -53,7 +53,7 @@ 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/title_screen.o asm/rom_807C828.o \
-asm/rom_806936C.o
+asm/rom_806936C.o asm/clear_save_data_menu.o asm/rom_8148B8C.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/clear_save_data_menu.s b/asm/clear_save_data_menu.s
new file mode 100644
index 000000000..9cdecf9e1
--- /dev/null
+++ b/asm/clear_save_data_menu.s
@@ -0,0 +1,434 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start c2_clear_save_data_screen_2
+c2_clear_save_data_screen_2: @ 8148800
+ push {lr}
+ bl sub_8148970
+ lsls r0, 24
+ cmp r0, 0
+ beq _08148814
+ ldr r0, _08148818
+ movs r1, 0
+ bl CreateTask
+_08148814:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148818: .4byte sub_8148830
+ thumb_func_end c2_clear_save_data_screen_2
+
+ thumb_func_start sub_814881C
+sub_814881C: @ 814881C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814881C
+
+ thumb_func_start sub_8148830
+sub_8148830: @ 8148830
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl ResetSpriteData
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xCA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _081488A8
+ bl SetVBlankCallback
+ movs r0, 0x2
+ movs r1, 0xE
+ movs r2, 0x1B
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _081488AC
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrint
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0x8
+ movs r3, 0x6
+ bl MenuDrawTextWindow
+ ldr r3, _081488B0
+ movs r0, 0x3
+ movs r1, 0x2
+ movs r2, 0x2
+ bl PrintMenuItems
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x5
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x3
+ movs r2, 0x2
+ movs r3, 0x2
+ bl InitMenu
+ ldr r1, _081488B4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _081488B8
+ str r1, [r0]
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081488A8: .4byte sub_814881C
+_081488AC: .4byte gSystemText_ClearAllSaveDataPrompt
+_081488B0: .4byte gUnknown_08376D74
+_081488B4: .4byte gTasks
+_081488B8: .4byte sub_81488BC
+ thumb_func_end sub_8148830
+
+ thumb_func_start sub_81488BC
+sub_81488BC: @ 81488BC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _081488E2
+ cmp r1, 0
+ bgt _081488DC
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0814890C
+ b _0814891E
+_081488DC:
+ cmp r1, 0x1
+ beq _0814890C
+ b _0814891E
+_081488E2:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08148900
+ bl sub_8071F40
+ ldr r1, _08148904
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08148908
+ str r1, [r0]
+ b _0814891E
+ .align 2, 0
+_08148900: .4byte gSystemText_ClearingData
+_08148904: .4byte gTasks
+_08148908: .4byte sub_8148930
+_0814890C:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r0, _0814892C
+ bl SetMainCallback2
+_0814891E:
+ bl AnimateSprites
+ bl BuildOamBuffer
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814892C: .4byte sub_8148B34
+ thumb_func_end sub_81488BC
+
+ thumb_func_start sub_8148930
+sub_8148930: @ 8148930
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl calls_flash_erase_block
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r0, _08148950
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148950: .4byte sub_8148B34
+ thumb_func_end sub_8148930
+
+ thumb_func_start sub_8148954
+sub_8148954: @ 8148954
+ push {lr}
+ bl RunTasks
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8148954
+
+ thumb_func_start sub_8148964
+sub_8148964: @ 8148964
+ push {lr}
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8148964
+
+ thumb_func_start sub_8148970
+sub_8148970: @ 8148970
+ push {r4,lr}
+ sub sp, 0xC
+ ldr r0, _08148AA4
+ ldr r1, _08148AA8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08148986
+ cmp r0, 0x1
+ bne _08148986
+ b _08148B04
+_08148986:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0x80
+ lsls r0, 19
+ movs r4, 0
+ strh r4, [r0]
+ adds r0, 0x10
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0xA
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x22
+ strh r4, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x6
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ add r0, sp, 0x4
+ strh r4, [r0]
+ ldr r1, _08148AAC
+ str r0, [r1]
+ movs r0, 0xC0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _08148AB0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r2, 0
+ str r2, [sp, 0x8]
+ add r0, sp, 0x8
+ str r0, [r1]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _08148AB4
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add r0, sp, 0x4
+ strh r2, [r0]
+ str r0, [r1]
+ ldr r0, _08148AB8
+ str r0, [r1, 0x4]
+ ldr r0, _08148ABC
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetPaletteFade
+ ldr r2, _08148AC0
+ ldr r0, _08148AC4
+ strh r0, [r2]
+ ldr r1, _08148AC8
+ strh r0, [r1]
+ ldr r0, _08148ACC
+ strh r0, [r2, 0x2]
+ strh r0, [r1, 0x2]
+ movs r1, 0
+ ldr r3, _08148AD0
+ ldr r0, _08148AD4
+ adds r2, r0, 0
+_08148A14:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xF
+ bls _08148A14
+ movs r1, 0
+ ldr r4, _08148AD8
+ movs r3, 0x1
+ ldr r2, _08148ADC
+_08148A2C:
+ lsls r0, r1, 1
+ adds r0, r4
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bls _08148A2C
+ bl ResetTasks
+ bl ResetSpriteData
+ ldr r0, _08148AE0
+ bl SetUpWindowConfig
+ ldr r0, _08148AE4
+ bl InitMenuWindow
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, _08148AE8
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, _08148AEC
+ ldrh r1, [r2]
+ movs r0, 0
+ strh r0, [r2]
+ ldr r3, _08148AF0
+ ldrh r0, [r3]
+ movs r4, 0x1
+ orrs r0, r4
+ strh r0, [r3]
+ strh r1, [r2]
+ ldr r2, _08148AF4
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _08148AF8
+ bl SetVBlankCallback
+ ldr r1, _08148AFC
+ ldr r2, _08148B00
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xE
+ movs r2, 0x90
+ lsls r2, 4
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08148AA4
+ ldr r1, _08148AA8
+ adds r0, r1
+ strb r4, [r0]
+ b _08148B28
+ .align 2, 0
+_08148AA4: .4byte gMain
+_08148AA8: .4byte 0x0000043c
+_08148AAC: .4byte 0x040000d4
+_08148AB0: .4byte 0x8100c000
+_08148AB4: .4byte 0x85000100
+_08148AB8: .4byte 0x05000002
+_08148ABC: .4byte 0x810001ff
+_08148AC0: .4byte gPlttBufferUnfaded
+_08148AC4: .4byte 0x00007fff
+_08148AC8: .4byte gPlttBufferFaded
+_08148ACC: .4byte 0x00003945
+_08148AD0: .4byte 0x06000020
+_08148AD4: .4byte 0x00001111
+_08148AD8: .4byte 0x06003800
+_08148ADC: .4byte 0x000004ff
+_08148AE0: .4byte gWindowConfig_81E6C3C
+_08148AE4: .4byte gWindowConfig_81E6CE4
+_08148AE8: .4byte 0x0000ffff
+_08148AEC: .4byte 0x04000208
+_08148AF0: .4byte 0x04000200
+_08148AF4: .4byte REG_DISPSTAT
+_08148AF8: .4byte sub_8148964
+_08148AFC: .4byte REG_BG3CNT
+_08148B00: .4byte 0x00000703
+_08148B04:
+ bl UpdatePaletteFade
+ ldr r0, _08148B20
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08148B28
+ ldr r0, _08148B24
+ bl SetMainCallback2
+ movs r0, 0x1
+ b _08148B2A
+ .align 2, 0
+_08148B20: .4byte gPaletteFade
+_08148B24: .4byte sub_8148954
+_08148B28:
+ movs r0, 0
+_08148B2A:
+ add sp, 0xC
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8148970
+
+ thumb_func_start sub_8148B34
+sub_8148B34: @ 8148B34
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _08148B60
+ ldr r1, _08148B64
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08148B48
+ cmp r0, 0x1
+ beq _08148B6C
+_08148B48:
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, _08148B68
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r0, 0x1
+ strb r0, [r4]
+ b _08148B80
+ .align 2, 0
+_08148B60: .4byte gMain
+_08148B64: .4byte 0x0000043c
+_08148B68: .4byte 0x0000ffff
+_08148B6C:
+ bl UpdatePaletteFade
+ ldr r0, _08148B88
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08148B80
+ bl DoSoftReset
+_08148B80:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148B88: .4byte gPaletteFade
+ thumb_func_end sub_8148B34
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_813BA94.s b/asm/rom_813BA94.s
index 6cb4ed8a2..c7e95cd79 100644
--- a/asm/rom_813BA94.s
+++ b/asm/rom_813BA94.s
@@ -25812,4896 +25812,4 @@ _081487F0:
bx r0
thumb_func_end sub_8148710
- thumb_func_start c2_clear_save_data_screen_2
-c2_clear_save_data_screen_2: @ 8148800
- push {lr}
- bl sub_8148970
- lsls r0, 24
- cmp r0, 0
- beq _08148814
- ldr r0, _08148818
- movs r1, 0
- bl CreateTask
-_08148814:
- pop {r0}
- bx r0
- .align 2, 0
-_08148818: .4byte sub_8148830
- thumb_func_end c2_clear_save_data_screen_2
-
- thumb_func_start sub_814881C
-sub_814881C: @ 814881C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_814881C
-
- thumb_func_start sub_8148830
-sub_8148830: @ 8148830
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ResetSpriteData
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xCA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _081488A8
- bl SetVBlankCallback
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _081488AC
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrint
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0x6
- bl MenuDrawTextWindow
- ldr r3, _081488B0
- movs r0, 0x3
- movs r1, 0x2
- movs r2, 0x2
- bl PrintMenuItems
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x5
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x3
- movs r2, 0x2
- movs r3, 0x2
- bl InitMenu
- ldr r1, _081488B4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081488B8
- str r1, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081488A8: .4byte sub_814881C
-_081488AC: .4byte gSystemText_ClearAllSaveDataPrompt
-_081488B0: .4byte gUnknown_08376D74
-_081488B4: .4byte gTasks
-_081488B8: .4byte sub_81488BC
- thumb_func_end sub_8148830
-
- thumb_func_start sub_81488BC
-sub_81488BC: @ 81488BC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081488E2
- cmp r1, 0
- bgt _081488DC
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0814890C
- b _0814891E
-_081488DC:
- cmp r1, 0x1
- beq _0814890C
- b _0814891E
-_081488E2:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08148900
- bl sub_8071F40
- ldr r1, _08148904
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08148908
- str r1, [r0]
- b _0814891E
- .align 2, 0
-_08148900: .4byte gSystemText_ClearingData
-_08148904: .4byte gTasks
-_08148908: .4byte sub_8148930
-_0814890C:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _0814892C
- bl SetMainCallback2
-_0814891E:
- bl AnimateSprites
- bl BuildOamBuffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814892C: .4byte sub_8148B34
- thumb_func_end sub_81488BC
-
- thumb_func_start sub_8148930
-sub_8148930: @ 8148930
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl calls_flash_erase_block
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _08148950
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08148950: .4byte sub_8148B34
- thumb_func_end sub_8148930
-
- thumb_func_start sub_8148954
-sub_8148954: @ 8148954
- push {lr}
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8148954
-
- thumb_func_start sub_8148964
-sub_8148964: @ 8148964
- push {lr}
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8148964
-
- thumb_func_start sub_8148970
-sub_8148970: @ 8148970
- push {r4,lr}
- sub sp, 0xC
- ldr r0, _08148AA4
- ldr r1, _08148AA8
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08148986
- cmp r0, 0x1
- bne _08148986
- b _08148B04
-_08148986:
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x80
- lsls r0, 19
- movs r4, 0
- strh r4, [r0]
- adds r0, 0x10
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0xA
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x22
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x6
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- add r0, sp, 0x4
- strh r4, [r0]
- ldr r1, _08148AAC
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _08148AB0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0
- str r2, [sp, 0x8]
- add r0, sp, 0x8
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _08148AB4
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0x4
- strh r2, [r0]
- str r0, [r1]
- ldr r0, _08148AB8
- str r0, [r1, 0x4]
- ldr r0, _08148ABC
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- ldr r2, _08148AC0
- ldr r0, _08148AC4
- strh r0, [r2]
- ldr r1, _08148AC8
- strh r0, [r1]
- ldr r0, _08148ACC
- strh r0, [r2, 0x2]
- strh r0, [r1, 0x2]
- movs r1, 0
- ldr r3, _08148AD0
- ldr r0, _08148AD4
- adds r2, r0, 0
-_08148A14:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _08148A14
- movs r1, 0
- ldr r4, _08148AD8
- movs r3, 0x1
- ldr r2, _08148ADC
-_08148A2C:
- lsls r0, r1, 1
- adds r0, r4
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _08148A2C
- bl ResetTasks
- bl ResetSpriteData
- ldr r0, _08148AE0
- bl SetUpWindowConfig
- ldr r0, _08148AE4
- bl InitMenuWindow
- movs r0, 0x1
- negs r0, r0
- ldr r1, _08148AE8
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _08148AEC
- ldrh r1, [r2]
- movs r0, 0
- strh r0, [r2]
- ldr r3, _08148AF0
- ldrh r0, [r3]
- movs r4, 0x1
- orrs r0, r4
- strh r0, [r3]
- strh r1, [r2]
- ldr r2, _08148AF4
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08148AF8
- bl SetVBlankCallback
- ldr r1, _08148AFC
- ldr r2, _08148B00
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- movs r2, 0x90
- lsls r2, 4
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08148AA4
- ldr r1, _08148AA8
- adds r0, r1
- strb r4, [r0]
- b _08148B28
- .align 2, 0
-_08148AA4: .4byte gMain
-_08148AA8: .4byte 0x0000043c
-_08148AAC: .4byte 0x040000d4
-_08148AB0: .4byte 0x8100c000
-_08148AB4: .4byte 0x85000100
-_08148AB8: .4byte 0x05000002
-_08148ABC: .4byte 0x810001ff
-_08148AC0: .4byte gPlttBufferUnfaded
-_08148AC4: .4byte 0x00007fff
-_08148AC8: .4byte gPlttBufferFaded
-_08148ACC: .4byte 0x00003945
-_08148AD0: .4byte 0x06000020
-_08148AD4: .4byte 0x00001111
-_08148AD8: .4byte 0x06003800
-_08148ADC: .4byte 0x000004ff
-_08148AE0: .4byte gWindowConfig_81E6C3C
-_08148AE4: .4byte gWindowConfig_81E6CE4
-_08148AE8: .4byte 0x0000ffff
-_08148AEC: .4byte 0x04000208
-_08148AF0: .4byte 0x04000200
-_08148AF4: .4byte REG_DISPSTAT
-_08148AF8: .4byte sub_8148964
-_08148AFC: .4byte REG_BG3CNT
-_08148B00: .4byte 0x00000703
-_08148B04:
- bl UpdatePaletteFade
- ldr r0, _08148B20
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08148B28
- ldr r0, _08148B24
- bl SetMainCallback2
- movs r0, 0x1
- b _08148B2A
- .align 2, 0
-_08148B20: .4byte gPaletteFade
-_08148B24: .4byte sub_8148954
-_08148B28:
- movs r0, 0
-_08148B2A:
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8148970
-
- thumb_func_start sub_8148B34
-sub_8148B34: @ 8148B34
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08148B60
- ldr r1, _08148B64
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- beq _08148B48
- cmp r0, 0x1
- beq _08148B6C
-_08148B48:
- movs r0, 0x1
- negs r0, r0
- ldr r1, _08148B68
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x1
- strb r0, [r4]
- b _08148B80
- .align 2, 0
-_08148B60: .4byte gMain
-_08148B64: .4byte 0x0000043c
-_08148B68: .4byte 0x0000ffff
-_08148B6C:
- bl UpdatePaletteFade
- ldr r0, _08148B88
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08148B80
- bl DoSoftReset
-_08148B80:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08148B88: .4byte gPaletteFade
- thumb_func_end sub_8148B34
-
- thumb_func_start load_intro_part2_graphics
-load_intro_part2_graphics: @ 8148B8C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08148BE8
- ldr r1, _08148BEC
- bl LZ77UnCompVram
- ldr r0, _08148BF0
- ldr r1, _08148BF4
- bl LZ77UnCompVram
- ldr r0, _08148BF8
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- cmp r4, 0
- beq _08148BB4
- cmp r4, 0x1
- beq _08148C14
-_08148BB4:
- ldr r0, _08148BFC
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148C00
- ldr r1, _08148C04
- bl LZ77UnCompVram
- ldr r0, _08148C08
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08148C0C
- bl LoadCompressedObjectPic
- ldr r0, _08148C10
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149248
- b _08148C46
- .align 2, 0
-_08148BE8: .4byte gUnknown_0841225C
-_08148BEC: .4byte 0x06004000
-_08148BF0: .4byte gUnknown_084126DC
-_08148BF4: .4byte 0x06007800
-_08148BF8: .4byte gUnknown_084121FC
-_08148BFC: .4byte gUnknown_084128D8
-_08148C00: .4byte gUnknown_08412EB4
-_08148C04: .4byte 0x06003000
-_08148C08: .4byte gUnknown_08412818
-_08148C0C: .4byte gUnknown_08416B54
-_08148C10: .4byte gUnknown_08413184
-_08148C14:
- ldr r0, _08148C58
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148C5C
- ldr r1, _08148C60
- bl LZ77UnCompVram
- ldr r0, _08148C64
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148C68
- bl LoadCompressedObjectPic
- ldr r0, _08148C6C
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149264
-_08148C46:
- ldr r1, _08148C70
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08148C74
- movs r0, 0x8
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08148C58: .4byte gUnknown_08413340
-_08148C5C: .4byte gUnknown_084139C8
-_08148C60: .4byte 0x06003000
-_08148C64: .4byte gUnknown_08413300
-_08148C68: .4byte gUnknown_08416BDC
-_08148C6C: .4byte gUnknown_08413CCC
-_08148C70: .4byte gUnknown_0203935C
-_08148C74: .4byte gReservedSpritePaletteCount
- thumb_func_end load_intro_part2_graphics
-
- thumb_func_start sub_8148C78
-sub_8148C78: @ 8148C78
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08148CA4
- ldr r2, _08148CA8
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- adds r2, 0xFF
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _08148CAC
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- movs r2, 0xF2
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08148CA4: .4byte REG_BG3CNT
-_08148CA8: .4byte 0x00000603
-_08148CAC: .4byte 0x00000f05
- thumb_func_end sub_8148C78
-
- thumb_func_start sub_8148CB0
-sub_8148CB0: @ 8148CB0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08148CD4
- ldr r1, _08148CD8
- bl LZ77UnCompVram
- ldr r0, _08148CDC
- ldr r1, _08148CE0
- bl LZ77UnCompVram
- cmp r4, 0x4
- bhi _08148CFC
- lsls r0, r4, 2
- ldr r1, _08148CE4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08148CD4: .4byte gUnknown_0841225C
-_08148CD8: .4byte 0x06004000
-_08148CDC: .4byte gUnknown_084126DC
-_08148CE0: .4byte 0x06007800
-_08148CE4: .4byte _08148CE8
- .align 2, 0
-_08148CE8:
- .4byte _08148CFC
- .4byte _08148D58
- .4byte _08148DC4
- .4byte _08148DC4
- .4byte _08148E1C
-_08148CFC:
- ldr r0, _08148D34
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148D38
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148D3C
- ldr r1, _08148D40
- bl LZ77UnCompVram
- ldr r0, _08148D44
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08148D48
- bl LoadCompressedObjectPic
- ldr r0, _08148D4C
- ldr r1, _08148D50
- bl LZ77UnCompVram
- ldr r0, _08148D54
- b _08148D8E
- .align 2, 0
-_08148D34: .4byte gUnknown_084121FC
-_08148D38: .4byte gUnknown_084128D8
-_08148D3C: .4byte gUnknown_08412EB4
-_08148D40: .4byte 0x06003000
-_08148D44: .4byte gUnknown_08412818
-_08148D48: .4byte gUnknown_08416B54
-_08148D4C: .4byte gUnknown_084131C4
-_08148D50: .4byte 0x06010000
-_08148D54: .4byte gUnknown_08413184
-_08148D58:
- ldr r0, _08148DA0
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148DA4
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148DA8
- ldr r1, _08148DAC
- bl LZ77UnCompVram
- ldr r0, _08148DB0
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08148DB4
- bl LoadCompressedObjectPic
- ldr r0, _08148DB8
- ldr r1, _08148DBC
- bl LZ77UnCompVram
- ldr r0, _08148DC0
-_08148D8E:
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149248
- b _08148E58
- .align 2, 0
-_08148DA0: .4byte gUnknown_0841221C
-_08148DA4: .4byte gUnknown_084128D8
-_08148DA8: .4byte gUnknown_08412EB4
-_08148DAC: .4byte 0x06003000
-_08148DB0: .4byte gUnknown_08412878
-_08148DB4: .4byte gUnknown_08416B54
-_08148DB8: .4byte gUnknown_084131C4
-_08148DBC: .4byte 0x06010000
-_08148DC0: .4byte gUnknown_084131A4
-_08148DC4:
- ldr r0, _08148E04
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148E08
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148E0C
- ldr r1, _08148E10
- bl LZ77UnCompVram
- ldr r4, _08148E14
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148E18
- bl LoadCompressedObjectPic
- movs r1, 0x80
- lsls r1, 1
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149264
- b _08148E58
- .align 2, 0
-_08148E04: .4byte gUnknown_0841221C
-_08148E08: .4byte gUnknown_08413340
-_08148E0C: .4byte gUnknown_084139C8
-_08148E10: .4byte 0x06003000
-_08148E14: .4byte gUnknown_08413320
-_08148E18: .4byte gUnknown_08416BDC
-_08148E1C:
- ldr r0, _08148E6C
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148E70
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148E74
- ldr r1, _08148E78
- bl LZ77UnCompVram
- ldr r0, _08148E7C
- movs r1, 0
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _08148E80
- bl LoadCompressedObjectPic
- ldr r0, _08148E84
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149280
-_08148E58:
- ldr r1, _08148E88
- movs r0, 0x8
- strb r0, [r1]
- ldr r1, _08148E8C
- movs r0, 0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08148E6C: .4byte gUnknown_0841223C
-_08148E70: .4byte gUnknown_08413E78
-_08148E74: .4byte gUnknown_08414084
-_08148E78: .4byte 0x06003000
-_08148E7C: .4byte gUnknown_08413E38
-_08148E80: .4byte gUnknown_08416C70
-_08148E84: .4byte gUnknown_08414064
-_08148E88: .4byte gReservedSpritePaletteCount
-_08148E8C: .4byte gUnknown_0203935C
- thumb_func_end sub_8148CB0
-
- thumb_func_start sub_8148E90
-sub_8148E90: @ 8148E90
- ldr r1, _08148EB4
- ldr r2, _08148EB8
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- adds r2, 0xFF
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _08148EBC
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08148EB4: .4byte REG_BG3CNT
-_08148EB8: .4byte 0x00000603
-_08148EBC: .4byte 0x00000f05
- thumb_func_end sub_8148E90
-
- thumb_func_start sub_8148EC0
-sub_8148EC0: @ 8148EC0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- mov r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r3, 16
- lsrs r3, 16
- ldr r1, _08148F34
- mov r9, r1
- mov r0, r9
- movs r1, 0
- str r3, [sp]
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _08148F38
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- strh r5, [r0, 0x8]
- strh r6, [r0, 0xA]
- strh r2, [r0, 0xC]
- strh r2, [r0, 0xE]
- mov r1, r8
- strh r1, [r0, 0x10]
- strh r2, [r0, 0x12]
- strh r2, [r0, 0x14]
- ldr r3, [sp]
- strh r3, [r0, 0x16]
- movs r1, 0x8
- strh r1, [r0, 0x18]
- strh r2, [r0, 0x1A]
- adds r0, r4, 0
- bl _call_via_r9
- adds r0, r4, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08148F34: .4byte sub_8148F3C
-_08148F38: .4byte gTasks
- thumb_func_end sub_8148EC0
-
- thumb_func_start sub_8148F3C
-sub_8148F3C: @ 8148F3C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08148FB4
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0xA]
- lsls r4, r0, 16
- adds r6, r1, 0
- cmp r4, 0
- beq _08148F7C
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- lsls r0, 16
- ldrh r1, [r3, 0xE]
- adds r2, r0, r1
- lsrs r0, r4, 12
- subs r2, r0
- asrs r1, r2, 16
- strh r1, [r3, 0xC]
- strh r2, [r3, 0xE]
- ldr r0, _08148FB8
- strh r1, [r0]
- ldr r2, _08148FBC
- ldr r1, _08148FC0
- ldr r0, _08148FC4
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r2]
-_08148F7C:
- ldrh r0, [r3, 0x10]
- lsls r4, r0, 16
- cmp r4, 0
- beq _08148FD8
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- lsls r0, 16
- ldrh r1, [r3, 0x14]
- adds r2, r0, r1
- lsrs r0, r4, 12
- subs r2, r0
- asrs r1, r2, 16
- strh r1, [r3, 0x12]
- strh r2, [r3, 0x14]
- ldr r0, _08148FC8
- strh r1, [r0]
- movs r1, 0x8
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _08148FD0
- ldr r2, _08148FCC
- ldr r1, _08148FC0
- ldr r0, _08148FC4
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r2]
- b _08148FD8
- .align 2, 0
-_08148FB4: .4byte gTasks
-_08148FB8: .4byte REG_BG1HOFS
-_08148FBC: .4byte REG_BG1VOFS
-_08148FC0: .4byte gUnknown_02039358
-_08148FC4: .4byte gUnknown_0203935A
-_08148FC8: .4byte REG_BG2HOFS
-_08148FCC: .4byte REG_BG2VOFS
-_08148FD0:
- ldr r0, _08149010
- ldr r1, _08149014
- ldrh r1, [r1]
- strh r1, [r0]
-_08148FD8:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r6
- ldrh r0, [r3, 0x16]
- lsls r4, r0, 16
- cmp r4, 0
- beq _08149008
- movs r1, 0x18
- ldrsh r0, [r3, r1]
- lsls r0, 16
- ldrh r1, [r3, 0x1A]
- adds r2, r0, r1
- lsrs r0, r4, 12
- subs r2, r0
- asrs r1, r2, 16
- strh r1, [r3, 0x18]
- strh r2, [r3, 0x1A]
- ldr r0, _08149018
- strh r1, [r0]
- ldr r1, _0814901C
- ldr r0, _08149014
- ldrh r0, [r0]
- strh r0, [r1]
-_08149008:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149010: .4byte REG_BG2VOFS
-_08149014: .4byte gUnknown_02039358
-_08149018: .4byte REG_BG3HOFS
-_0814901C: .4byte REG_BG3VOFS
- thumb_func_end sub_8148F3C
-
- thumb_func_start sub_8149020
-sub_8149020: @ 8149020
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08149100
- cmp r0, 0x1
- ble _08149034
- cmp r0, 0x2
- beq _08149098
-_08149034:
- ldr r0, _08149060
- ldr r2, [r0, 0x20]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0
- bne _08149100
- ldr r0, _08149064
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08149100
- movs r0, 0x4
- ands r2, r0
- cmp r2, 0
- beq _0814906C
- ldr r2, _08149068
- ldrh r1, [r2, 0x12]
- mov r0, sp
- strh r1, [r0]
- ldrh r1, [r2, 0x14]
- b _08149076
- .align 2, 0
-_08149060: .4byte gMain
-_08149064: .4byte gPaletteFade
-_08149068: .4byte gPlttBufferUnfaded
-_0814906C:
- ldr r2, _08149094
- ldrh r1, [r2, 0x14]
- mov r0, sp
- strh r1, [r0]
- ldrh r1, [r2, 0x12]
-_08149076:
- adds r0, 0x2
- strh r1, [r0]
- adds r4, r0, 0
- mov r0, sp
- movs r1, 0x9
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- bl LoadPalette
- b _08149100
- .align 2, 0
-_08149094: .4byte gPlttBufferUnfaded
-_08149098:
- ldr r0, _081490C8
- ldr r2, [r0, 0x20]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0
- bne _08149100
- ldr r0, _081490CC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08149100
- movs r0, 0x4
- ands r2, r0
- cmp r2, 0
- beq _081490D8
- mov r1, sp
- ldr r2, _081490D0
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _081490D4
- b _081490E6
- .align 2, 0
-_081490C8: .4byte gMain
-_081490CC: .4byte gPaletteFade
-_081490D0: .4byte 0x00003d27
-_081490D4: .4byte 0x00000295
-_081490D8:
- mov r1, sp
- movs r2, 0xC7
- lsls r2, 2
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _08149108
-_081490E6:
- adds r0, r2, 0
- strh r0, [r1]
- adds r4, r1, 0
- mov r0, sp
- movs r1, 0xC
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xD
- movs r2, 0x2
- bl LoadPalette
-_08149100:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149108: .4byte 0x00003d27
- thumb_func_end sub_8149020
-
- thumb_func_start sub_814910C
-sub_814910C: @ 814910C
- push {lr}
- adds r2, r0, 0
- ldr r0, _08149124
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08149128
- adds r0, r2, 0
- bl DestroySprite
- b _0814916C
- .align 2, 0
-_08149124: .4byte gUnknown_0203935C
-_08149128:
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- lsls r0, 16
- ldrh r1, [r2, 0x32]
- orrs r0, r1
- ldrh r1, [r2, 0x30]
- adds r0, r1
- asrs r1, r0, 16
- strh r1, [r2, 0x20]
- strh r0, [r2, 0x32]
- cmp r1, 0xFF
- ble _08149144
- ldr r0, _08149158
- strh r0, [r2, 0x20]
-_08149144:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _08149164
- ldr r1, _0814915C
- ldr r0, _08149160
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- b _08149168
- .align 2, 0
-_08149158: .4byte 0x0000ffe0
-_0814915C: .4byte gUnknown_02039358
-_08149160: .4byte gUnknown_0203935A
-_08149164:
- ldr r0, _08149170
- ldrh r0, [r0]
-_08149168:
- negs r0, r0
- strh r0, [r2, 0x26]
-_0814916C:
- pop {r0}
- bx r0
- .align 2, 0
-_08149170: .4byte gUnknown_02039358
- thumb_func_end sub_814910C
-
- thumb_func_start sub_8149174
-sub_8149174: @ 8149174
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- movs r7, 0
- cmp r7, r8
- bcs _0814922A
- ldr r0, _0814923C
- mov r10, r0
- movs r2, 0x3F
- mov r9, r2
-_0814919E:
- lsls r6, r7, 3
- ldr r0, [sp, 0x4]
- adds r6, r0
- ldrb r1, [r6, 0x1]
- ldrb r2, [r6, 0x2]
- ldrb r3, [r6, 0x3]
- ldr r0, _08149240
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- mov r2, r10
- adds r4, r5, r2
- ldrb r2, [r6]
- lsls r1, r2, 26
- lsrs r1, 30
- lsrs r2, 6
- adds r0, r4, 0
- movs r3, 0
- bl CalcCenterToCornerVec
- ldrb r3, [r4, 0x5]
- movs r0, 0xC
- orrs r3, r0
- strb r3, [r4, 0x5]
- ldrb r1, [r6]
- lsls r1, 26
- lsrs r1, 30
- lsls r1, 6
- ldrb r2, [r4, 0x1]
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r6]
- lsrs r1, 6
- lsls r1, 6
- ldrb r2, [r4, 0x3]
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0xF
- ands r3, r0
- strb r3, [r4, 0x5]
- ldr r0, _08149244
- adds r5, r0
- ldr r2, [sp, 0x8]
- str r2, [r5]
- ldrb r1, [r6]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r1, 0
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x2E]
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0x30]
- strh r1, [r4, 0x32]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, r8
- bcc _0814919E
-_0814922A:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814923C: .4byte gSprites
-_08149240: .4byte gSpriteTemplate_8416B3C
-_08149244: .4byte gSprites + 0x8
- thumb_func_end sub_8149174
-
- thumb_func_start sub_8149248
-sub_8149248: @ 8149248
- push {lr}
- ldr r1, _0814925C
- ldr r2, _08149260
- movs r0, 0
- movs r3, 0x9
- bl sub_8149174
- pop {r0}
- bx r0
- .align 2, 0
-_0814925C: .4byte gUnknown_08416B94
-_08149260: .4byte gSpriteAnimTable_8416B84
- thumb_func_end sub_8149248
-
- thumb_func_start sub_8149264
-sub_8149264: @ 8149264
- push {lr}
- ldr r1, _08149278
- ldr r2, _0814927C
- movs r0, 0x1
- movs r3, 0xC
- bl sub_8149174
- pop {r0}
- bx r0
- .align 2, 0
-_08149278: .4byte gUnknown_08416C10
-_0814927C: .4byte gSpriteAnimTable_8416C04
- thumb_func_end sub_8149264
-
- thumb_func_start sub_8149280
-sub_8149280: @ 8149280
- push {lr}
- ldr r1, _08149294
- ldr r2, _08149298
- movs r0, 0x1
- movs r3, 0x6
- bl sub_8149174
- pop {r0}
- bx r0
- .align 2, 0
-_08149294: .4byte gUnknown_08416C8C
-_08149298: .4byte gSpriteAnimTable_8416C88
- thumb_func_end sub_8149280
-
- thumb_func_start nullsub_82
-nullsub_82: @ 814929C
- bx lr
- thumb_func_end nullsub_82
-
- thumb_func_start sub_81492A0
-sub_81492A0: @ 81492A0
- push {r4,lr}
- ldr r4, _0814930C
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r1, [r1]
- movs r2, 0x3E
- adds r2, r0
- mov r12, r2
- movs r2, 0x4
- ands r2, r1
- mov r1, r12
- ldrb r3, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x20]
- strh r1, [r0, 0x20]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x24]
- strh r1, [r0, 0x24]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x26]
- strh r1, [r0, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814930C: .4byte gSprites
- thumb_func_end sub_81492A0
-
- thumb_func_start sub_8149310
-sub_8149310: @ 8149310
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, _0814935C
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _08149360
- adds r4, 0x8
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08149364
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- strh r6, [r1, 0x2E]
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0814935C: .4byte gSpriteTemplate_8416CDC
-_08149360: .4byte gSpriteTemplate_8416D2C
-_08149364: .4byte gSprites
- thumb_func_end sub_8149310
-
- thumb_func_start sub_8149368
-sub_8149368: @ 8149368
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, _081493B4
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _081493B8
- adds r4, 0x8
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081493BC
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- strh r6, [r1, 0x2E]
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081493B4: .4byte gSpriteTemplate_8416CF4
-_081493B8: .4byte gSpriteTemplate_8416D44
-_081493BC: .4byte gSprites
- thumb_func_end sub_8149368
-
- thumb_func_start nullsub_83
-nullsub_83: @ 81493C0
- bx lr
- thumb_func_end nullsub_83
-
- thumb_func_start sub_81493C4
-sub_81493C4: @ 81493C4
- push {r4,lr}
- ldr r4, _08149420
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r1, [r1]
- movs r2, 0x3E
- adds r2, r0
- mov r12, r2
- movs r2, 0x4
- ands r2, r1
- mov r1, r12
- ldrb r3, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x22]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x24]
- strh r1, [r0, 0x24]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x26]
- strh r1, [r0, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149420: .4byte gSprites
- thumb_func_end sub_81493C4
-
- thumb_func_start sub_8149424
-sub_8149424: @ 8149424
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r2, r0, 0
- adds r5, r1, 0
- ldr r0, _08149490
- mov r8, r0
- lsls r2, 16
- asrs r4, r2, 16
- ldr r0, _08149494
- adds r2, r0
- asrs r2, 16
- lsls r5, 16
- asrs r5, 16
- mov r0, r8
- adds r1, r2, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- adds r4, 0x20
- lsls r4, 16
- asrs r4, 16
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08149498
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r4, r5
- strh r6, [r0, 0x2E]
- movs r1, 0x1
- bl StartSpriteAnim
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _0814949C
- str r0, [r4]
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08149490: .4byte gSpriteTemplate_8416D7C
-_08149494: .4byte 0xffe00000
-_08149498: .4byte gSprites
-_0814949C: .4byte sub_81493C4
- thumb_func_end sub_8149424
-
- thumb_func_start sapphire_sub_81494A0
-sapphire_sub_81494A0: @ 81494A0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r2, r0, 0
- adds r5, r1, 0
- ldr r0, _0814950C
- mov r8, r0
- lsls r2, 16
- asrs r4, r2, 16
- ldr r0, _08149510
- adds r2, r0
- asrs r2, 16
- lsls r5, 16
- asrs r5, 16
- mov r0, r8
- adds r1, r2, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- adds r4, 0x20
- lsls r4, 16
- asrs r4, 16
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08149514
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r4, r5
- strh r6, [r0, 0x2E]
- movs r1, 0x1
- bl StartSpriteAnim
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _08149518
- str r0, [r4]
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0814950C: .4byte gSpriteTemplate_8416D94
-_08149510: .4byte 0xffe00000
-_08149514: .4byte gSprites
-_08149518: .4byte sub_81493C4
- thumb_func_end sapphire_sub_81494A0
-
- thumb_func_start nullsub_84
-nullsub_84: @ 814951C
- bx lr
- thumb_func_end nullsub_84
-
- thumb_func_start sub_8149520
-sub_8149520: @ 8149520
- push {r4,r5,lr}
- sub sp, 0x4
- movs r4, 0
- ldr r5, _08149554
-_08149528:
- adds r0, r4, 0
- adds r0, 0x14
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r4, 1
- adds r1, r5
- ldrh r1, [r1]
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xB
- bls _08149528
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08149554: .4byte gUnknown_08416ED0
- thumb_func_end sub_8149520
-
- thumb_func_start sub_8149558
-sub_8149558: @ 8149558
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- ble _08149606
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- adds r1, r0, 0
- muls r1, r0
- adds r0, r1, 0
- movs r1, 0x50
- bl __divsi3
- movs r1, 0x58
- subs r1, r0
- strh r1, [r4, 0x22]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08149592
- adds r0, 0x3
-_08149592:
- asrs r0, 2
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x3A]
- adds r0, 0x4
- strh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081495BC
- ldrh r0, [r4, 0x38]
- subs r0, 0x1
- strh r0, [r4, 0x38]
-_081495BC:
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- cmp r0, 0
- ble _081495D2
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1
- b _081495D8
-_081495D2:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x14
-_081495D8:
- strb r0, [r1]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _081495E4
- adds r0, 0x3
-_081495E4:
- asrs r0, 2
- adds r0, 0x14
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1F
- bls _081495F2
- movs r2, 0x1F
-_081495F2:
- movs r0, 0x1F
- ands r2, r0
- lsls r2, 1
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x3]
- b _0814960C
-_08149606:
- adds r0, r4, 0
- bl DestroySprite
-_0814960C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8149558
-
- thumb_func_start sub_8149614
-sub_8149614: @ 8149614
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08149664
- movs r1, 0x78
- movs r2, 0x58
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0814965E
- ldr r4, _08149668
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r2, r3, r4
- movs r1, 0
- movs r0, 0x30
- strh r0, [r2, 0x38]
- strh r5, [r2, 0x3A]
- strh r1, [r2, 0x3C]
- ldrb r1, [r2, 0x1]
- subs r0, 0x34
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r2, 0x3]
- movs r1, 0x3E
- orrs r0, r1
- strb r0, [r2, 0x3]
- adds r4, 0x1C
- adds r3, r4
- ldr r0, _0814966C
- str r0, [r3]
-_0814965E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08149664: .4byte gSpriteTemplate_8416EB8
-_08149668: .4byte gSprites
-_0814966C: .4byte sub_8149558
- thumb_func_end sub_8149614
-
- thumb_func_start sub_8149670
-sub_8149670: @ 8149670
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r0, 0x57
- bgt _081496D6
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- adds r1, r0, 0
- muls r1, r0
- adds r0, r1, 0
- movs r1, 0x5
- bl __divsi3
- adds r0, 0x8
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _081496A8
- adds r0, 0x3
-_081496A8:
- asrs r0, 2
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r0, 26
- lsrs r0, 24
- movs r1, 0x28
- bl Sin
- adds r0, 0x8
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- b _081496DC
-_081496D6:
- adds r0, r4, 0
- bl DestroySprite
-_081496DC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8149670
-
- thumb_func_start sub_81496E4
-sub_81496E4: @ 81496E4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08149740
- movs r1, 0x78
- movs r2, 0x8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0814973A
- ldr r4, _08149744
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r2, r3, r4
- movs r1, 0
- movs r0, 0x8
- strh r0, [r2, 0x38]
- strh r5, [r2, 0x3A]
- strh r1, [r2, 0x3C]
- ldrb r1, [r2, 0x1]
- subs r0, 0xC
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x32
- orrs r0, r1
- strb r0, [r2, 0x3]
- adds r2, 0x43
- movs r0, 0x1
- strb r0, [r2]
- adds r4, 0x1C
- adds r3, r4
- ldr r0, _08149748
- str r0, [r3]
-_0814973A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08149740: .4byte gSpriteTemplate_8416EB8
-_08149744: .4byte gSprites
-_08149748: .4byte sub_8149670
- thumb_func_end sub_81496E4
-
- thumb_func_start sub_814974C
-sub_814974C: @ 814974C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- ble _08149788
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x38]
- ldrh r1, [r4, 0x34]
- subs r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x3A]
- adds r0, 0x4
- strh r0, [r4, 0x3A]
- b _0814978E
-_08149788:
- adds r0, r4, 0
- bl DestroySprite
-_0814978E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_814974C
-
- thumb_func_start sub_8149794
-sub_8149794: @ 8149794
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _081497F0
- movs r1, 0x78
- movs r2, 0x38
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081497EA
- ldr r4, _081497F4
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r2, r3, r4
- movs r1, 0
- strh r5, [r2, 0x34]
- movs r0, 0x78
- strh r0, [r2, 0x38]
- strh r6, [r2, 0x3A]
- strh r1, [r2, 0x3C]
- ldrb r1, [r2, 0x1]
- subs r0, 0x7C
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r2, 0x3]
- movs r1, 0x3E
- orrs r0, r1
- strb r0, [r2, 0x3]
- adds r2, 0x43
- movs r0, 0x1
- strb r0, [r2]
- adds r4, 0x1C
- adds r3, r4
- ldr r0, _081497F8
- str r0, [r3]
-_081497EA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081497F0: .4byte gSpriteTemplate_8416EB8
-_081497F4: .4byte gSprites
-_081497F8: .4byte sub_814974C
- thumb_func_end sub_8149794
-
- thumb_func_start sub_81497FC
-sub_81497FC: @ 81497FC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x3C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08149810
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
-_08149810:
- ldrh r1, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0x7F
- bgt _081498C0
- lsls r0, r1, 24
- lsrs r0, 24
- movs r5, 0x38
- ldrsh r1, [r4, r5]
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- muls r0, r1
- movs r1, 0x3
- bl __divsi3
- adds r0, 0x78
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x3A]
- adds r3, r0, 0x1
- strh r3, [r4, 0x3A]
- movs r5, 0x3A
- ldrsh r1, [r4, r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- cmp r0, 0
- bge _08149854
- adds r0, 0x7F
-_08149854:
- asrs r0, 7
- movs r1, 0x1F
- subs r1, r0
- lsls r1, 24
- lsrs r2, r1, 24
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0x40
- ble _08149870
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1
- strb r0, [r1]
- b _081498A0
-_08149870:
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x14
- strb r0, [r1]
- ldrh r1, [r4, 0x3A]
- movs r5, 0x3A
- ldrsh r0, [r4, r5]
- cmp r0, 0x70
- ble _081498A0
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081498A0
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
-_081498A0:
- cmp r2, 0x13
- bhi _081498A6
- movs r2, 0x14
-_081498A6:
- movs r0, 0x1F
- ands r2, r0
- lsls r2, 1
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x3]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- b _081498C6
-_081498C0:
- adds r0, r4, 0
- bl DestroySprite
-_081498C6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81497FC
-
- thumb_func_start sub_81498CC
-sub_81498CC: @ 81498CC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _08149948
- movs r1, 0x78
- movs r2, 0x38
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- beq _0814993C
- bl Random
- ldr r6, _0814994C
- lsls r5, r4, 4
- adds r5, r4
- lsls r5, 2
- adds r4, r5, r6
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- bl __umodsi3
- movs r1, 0x3
- subs r1, r0
- movs r0, 0
- mov r8, r0
- strh r1, [r4, 0x34]
- bl Random
- movs r1, 0x3F
- ands r1, r0
- adds r1, 0x30
- strh r1, [r4, 0x38]
- mov r0, r8
- strh r0, [r4, 0x3C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0x3E
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r4, 0x43
- movs r0, 0x14
- strb r0, [r4]
- adds r6, 0x1C
- adds r5, r6
- ldr r0, _08149950
- str r0, [r5]
-_0814993C:
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149948: .4byte gSpriteTemplate_8416EB8
-_0814994C: .4byte gSprites
-_08149950: .4byte sub_81497FC
- thumb_func_end sub_81498CC
-
- thumb_func_start sub_8149954
-sub_8149954: @ 8149954
- push {lr}
- ldr r0, _08149968
- bl LoadCompressedObjectPic
- ldr r0, _0814996C
- bl LoadSpritePalettes
- pop {r0}
- bx r0
- .align 2, 0
-_08149968: .4byte gUnknown_08416E84
-_0814996C: .4byte gUnknown_08416E94
- thumb_func_end sub_8149954
-
- thumb_func_start sub_8149970
-sub_8149970: @ 8149970
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08149998
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0814999C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08149998: .4byte sub_81499A0
-_0814999C: .4byte gTasks
- thumb_func_end sub_8149970
-
- thumb_func_start sub_81499A0
-sub_81499A0: @ 81499A0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8149520
- ldr r0, _081499E4
- lsls r5, r4, 2
- adds r5, r4
- lsls r5, 3
- adds r5, r0
- movs r0, 0
- strh r0, [r5, 0x26]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- movs r0, 0x3
- lsls r0, r1
- ldr r1, _081499E8
- str r1, [sp]
- movs r1, 0xA
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _081499EC
- str r0, [r5]
- movs r0, 0x8C
- bl PlaySE
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081499E4: .4byte gTasks
-_081499E8: .4byte 0x00007fff
-_081499EC: .4byte sub_81499F0
- thumb_func_end sub_81499A0
-
- thumb_func_start sub_81499F0
-sub_81499F0: @ 81499F0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08149A48
- lsls r3, r5, 2
- adds r0, r3, r5
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0x26]
- movs r4, 0x26
- ldrsh r0, [r1, r4]
- cmp r0, 0x3F
- bgt _08149A4C
- movs r0, 0x7
- ands r0, r2
- adds r7, r3, 0
- cmp r0, 0
- bne _08149A36
- movs r4, 0
- adds r6, r1, 0
-_08149A18:
- ldrh r1, [r6, 0x26]
- movs r0, 0x78
- ands r0, r1
- lsls r0, 1
- lsls r1, r4, 6
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl sub_8149614
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08149A18
-_08149A36:
- ldr r0, _08149A48
- adds r1, r7, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08149A54
- .align 2, 0
-_08149A48: .4byte gTasks
-_08149A4C:
- movs r0, 0x60
- strh r0, [r1, 0x26]
- ldr r0, _08149A5C
- str r0, [r1]
-_08149A54:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08149A5C: .4byte sub_8149A60
- thumb_func_end sub_81499F0
-
- thumb_func_start sub_8149A60
-sub_8149A60: @ 8149A60
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08149A80
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- ldrh r3, [r1, 0x26]
- movs r4, 0x26
- ldrsh r0, [r1, r4]
- cmp r0, 0
- beq _08149A84
- subs r0, r3, 0x1
- strh r0, [r1, 0x26]
- b _08149A8A
- .align 2, 0
-_08149A80: .4byte gTasks
-_08149A84:
- adds r0, r2, 0
- bl DestroyTask
-_08149A8A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8149A60
-
- thumb_func_start sub_8149A90
-sub_8149A90: @ 8149A90
- push {lr}
- ldr r0, _08149AA4
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08149AA4: .4byte sub_8149AA8
- thumb_func_end sub_8149A90
-
- thumb_func_start sub_8149AA8
-sub_8149AA8: @ 8149AA8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8149520
- ldr r1, _08149AD4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x26]
- ldr r1, _08149AD8
- str r1, [r0]
- movs r0, 0xB7
- bl PlaySE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149AD4: .4byte gTasks
-_08149AD8: .4byte sub_8149ADC
- thumb_func_end sub_8149AA8
-
- thumb_func_start sub_8149ADC
-sub_8149ADC: @ 8149ADC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08149B20
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r3, 0x26
- ldrsh r0, [r1, r3]
- cmp r0, 0x5F
- bgt _08149B24
- adds r6, r2, 0
- cmp r0, 0x5
- bgt _08149B0E
- movs r4, 0
-_08149AFC:
- lsls r0, r4, 28
- lsrs r0, 24
- bl sub_81496E4
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x8
- bls _08149AFC
-_08149B0E:
- ldr r0, _08149B20
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08149B28
- .align 2, 0
-_08149B20: .4byte gTasks
-_08149B24:
- ldr r0, _08149B30
- str r0, [r1]
-_08149B28:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149B30: .4byte sub_8149B34
- thumb_func_end sub_8149ADC
-
- thumb_func_start sub_8149B34
-sub_8149B34: @ 8149B34
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- pop {r0}
- bx r0
- thumb_func_end sub_8149B34
-
- thumb_func_start sub_8149B44
-sub_8149B44: @ 8149B44
- push {lr}
- ldr r0, _08149B58
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08149B58: .4byte sub_8149B5C
- thumb_func_end sub_8149B44
-
- thumb_func_start sub_8149B5C
-sub_8149B5C: @ 8149B5C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8149520
- ldr r1, _08149B88
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x26]
- ldr r1, _08149B8C
- str r1, [r0]
- movs r0, 0x66
- bl PlaySE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149B88: .4byte gTasks
-_08149B8C: .4byte sub_8149B90
- thumb_func_end sub_8149B5C
-
- thumb_func_start sub_8149B90
-sub_8149B90: @ 8149B90
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08149BFC
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r3, 0x26
- ldrsh r0, [r1, r3]
- cmp r0, 0x2F
- bgt _08149C00
- adds r6, r2, 0
- cmp r0, 0
- bne _08149BC4
- movs r4, 0
-_08149BB0:
- lsls r0, r4, 28
- lsrs r0, 24
- movs r1, 0x4
- bl sub_8149794
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _08149BB0
-_08149BC4:
- ldr r0, _08149BFC
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- movs r2, 0x26
- ldrsh r0, [r1, r2]
- cmp r0, 0x20
- bne _08149BEA
- movs r4, 0
-_08149BD6:
- lsls r0, r4, 28
- lsrs r0, 24
- movs r1, 0x8
- bl sub_8149794
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _08149BD6
-_08149BEA:
- ldr r0, _08149BFC
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08149C04
- .align 2, 0
-_08149BFC: .4byte gTasks
-_08149C00:
- ldr r0, _08149C0C
- str r0, [r1]
-_08149C04:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149C0C: .4byte sub_8149C10
- thumb_func_end sub_8149B90
-
- thumb_func_start sub_8149C10
-sub_8149C10: @ 8149C10
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- pop {r0}
- bx r0
- thumb_func_end sub_8149C10
-
- thumb_func_start sub_8149C20
-sub_8149C20: @ 8149C20
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08149C48
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08149C4C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xC]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08149C48: .4byte sub_8149C50
-_08149C4C: .4byte gTasks
- thumb_func_end sub_8149C20
-
- thumb_func_start sub_8149C50
-sub_8149C50: @ 8149C50
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8149520
- ldr r0, _08149C98
- lsls r5, r4, 2
- adds r5, r4
- lsls r5, 3
- adds r5, r0
- movs r0, 0
- strh r0, [r5, 0x26]
- ldr r0, _08149C9C
- ldr r1, _08149CA0
- movs r2, 0x30
- bl CpuSet
- ldr r0, _08149CA4
- ldr r1, _08149CA8
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08149CAC
- str r0, [r5]
- movs r0, 0xCA
- bl PlaySE
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08149C98: .4byte gTasks
-_08149C9C: .4byte gPlttBufferFaded + 0x40
-_08149CA0: .4byte gPlttBufferUnfaded + 0x40
-_08149CA4: .4byte 0xfff9001c
-_08149CA8: .4byte 0x00007fff
-_08149CAC: .4byte sub_8149CB0
- thumb_func_end sub_8149C50
-
- thumb_func_start sub_8149CB0
-sub_8149CB0: @ 8149CB0
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08149CE8
- lsls r5, r6, 2
- adds r0, r5, r6
- lsls r0, 3
- adds r1, r0, r1
- movs r0, 0x26
- ldrsh r2, [r1, r0]
- cmp r2, 0x7F
- bgt _08149D2C
- adds r0, r2, 0
- cmp r0, 0
- beq _08149CEC
- cmp r0, 0x20
- beq _08149D00
- cmp r2, 0x31
- bgt _08149D10
- bl Random
- movs r1, 0x7
- ands r0, r1
- bl sub_81498CC
- b _08149D10
- .align 2, 0
-_08149CE8: .4byte gTasks
-_08149CEC:
- movs r4, 0
-_08149CEE:
- adds r0, r4, 0
- bl sub_81498CC
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08149CEE
- b _08149D10
-_08149D00:
- ldr r0, _08149D20
- ldr r1, _08149D24
- str r1, [sp]
- movs r1, 0x10
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_08149D10:
- ldr r0, _08149D28
- adds r1, r5, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08149D30
- .align 2, 0
-_08149D20: .4byte 0xffff001c
-_08149D24: .4byte 0x00007fff
-_08149D28: .4byte gTasks
-_08149D2C:
- ldr r0, _08149D38
- str r0, [r1]
-_08149D30:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149D38: .4byte sub_8149D3C
- thumb_func_end sub_8149CB0
-
- thumb_func_start sub_8149D3C
-sub_8149D3C: @ 8149D3C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08149D58
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08149D54
- adds r0, r2, 0
- bl DestroyTask
-_08149D54:
- pop {r0}
- bx r0
- .align 2, 0
-_08149D58: .4byte gPaletteFade
- thumb_func_end sub_8149D3C
-
- thumb_func_start sub_8149D5C
-sub_8149D5C: @ 8149D5C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08149D84
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08149D88
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xC]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08149D84: .4byte sub_8149D8C
-_08149D88: .4byte gTasks
- thumb_func_end sub_8149D5C
-
- thumb_func_start sub_8149D8C
-sub_8149D8C: @ 8149D8C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8149520
- ldr r0, _08149DD4
- lsls r5, r4, 2
- adds r5, r4
- lsls r5, 3
- adds r5, r0
- movs r0, 0
- strh r0, [r5, 0x26]
- ldr r0, _08149DD8
- ldr r1, _08149DDC
- movs r2, 0x30
- bl CpuSet
- ldr r0, _08149DE0
- ldr r1, _08149DE4
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08149DE8
- str r0, [r5]
- movs r0, 0xCA
- bl PlaySE
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08149DD4: .4byte gTasks
-_08149DD8: .4byte gPlttBufferFaded + 0x40
-_08149DDC: .4byte gPlttBufferUnfaded + 0x40
-_08149DE0: .4byte 0xfff90001
-_08149DE4: .4byte 0x00007fff
-_08149DE8: .4byte sub_8149DEC
- thumb_func_end sub_8149D8C
-
- thumb_func_start sub_8149DEC
-sub_8149DEC: @ 8149DEC
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08149E24
- lsls r5, r6, 2
- adds r0, r5, r6
- lsls r0, 3
- adds r1, r0, r1
- movs r0, 0x26
- ldrsh r2, [r1, r0]
- cmp r2, 0x7F
- bgt _08149E68
- adds r0, r2, 0
- cmp r0, 0
- beq _08149E28
- cmp r0, 0x20
- beq _08149E3C
- cmp r2, 0x31
- bgt _08149E4C
- bl Random
- movs r1, 0x7
- ands r0, r1
- bl sub_81498CC
- b _08149E4C
- .align 2, 0
-_08149E24: .4byte gTasks
-_08149E28:
- movs r4, 0
-_08149E2A:
- adds r0, r4, 0
- bl sub_81498CC
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08149E2A
- b _08149E4C
-_08149E3C:
- ldr r0, _08149E5C
- ldr r1, _08149E60
- str r1, [sp]
- movs r1, 0x10
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_08149E4C:
- ldr r0, _08149E64
- adds r1, r5, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08149E6C
- .align 2, 0
-_08149E5C: .4byte 0xffff0001
-_08149E60: .4byte 0x00007fff
-_08149E64: .4byte gTasks
-_08149E68:
- ldr r0, _08149E74
- str r0, [r1]
-_08149E6C:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149E74: .4byte sub_8149D3C
- thumb_func_end sub_8149DEC
-
- thumb_func_start nullsub_85
-nullsub_85: @ 8149E78
- bx lr
- thumb_func_end nullsub_85
-
- thumb_func_start sub_8149E7C
-sub_8149E7C: @ 8149E7C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- movs r1, 0
- ldr r3, _08149FB0
- ldr r2, _08149FB4
-_08149E96:
- lsls r0, r1, 1
- add r0, sp
- adds r0, 0x4
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _08149E96
- adds r0, r3, 0
- movs r1, 0
- bl CreateTask
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _08149FB8
- mov r1, r8
- lsls r6, r1, 2
- add r6, r8
- lsls r6, 3
- adds r6, r0
- strh r5, [r6, 0xA]
- strh r7, [r6, 0xC]
- movs r1, 0x80
- lsls r1, 1
- strh r1, [r6, 0xE]
- movs r0, 0x10
- strh r0, [r6, 0x10]
- movs r4, 0x80
- lsls r4, 9
- str r1, [sp]
- movs r0, 0x1E
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- movs r0, 0x10
- ldrsh r1, [r6, r0]
- adds r0, r4, 0
- bl __divsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r0, 0x1F
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldr r1, _08149FBC
- mov r9, r1
- lsls r2, r5, 4
- adds r2, r5
- lsls r2, 2
- mov r3, r9
- adds r3, 0x1C
- adds r0, r2, r3
- ldr r1, _08149FC0
- str r1, [r0]
- add r2, r9
- ldrb r1, [r2, 0x1]
- movs r4, 0x4
- negs r4, r4
- adds r0, r4, 0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x3C
- orrs r0, r1
- strb r0, [r2, 0x3]
- movs r0, 0x3E
- adds r0, r2
- mov r10, r0
- ldrb r1, [r0]
- movs r5, 0x5
- negs r5, r5
- adds r0, r5, 0
- ands r0, r1
- mov r1, r10
- strb r0, [r1]
- ldrb r1, [r2, 0x5]
- lsrs r1, 4
- lsls r1, 5
- ldr r0, _08149FC4
- mov r10, r0
- add r1, r10
- add r0, sp, 0x4
- movs r2, 0x10
- str r3, [sp, 0x24]
- bl CpuSet
- lsls r1, r7, 4
- adds r1, r7
- lsls r1, 2
- ldr r3, [sp, 0x24]
- adds r3, r1, r3
- ldr r0, _08149FC0
- str r0, [r3]
- add r1, r9
- ldrb r0, [r1, 0x1]
- ands r4, r0
- movs r0, 0x1
- orrs r4, r0
- strb r4, [r1, 0x1]
- ldrb r0, [r1, 0x3]
- movs r2, 0x3E
- orrs r0, r2
- strb r0, [r1, 0x3]
- adds r2, r1, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- ands r5, r0
- strb r5, [r2]
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- lsls r1, 5
- add r1, r10
- add r0, sp, 0x4
- movs r2, 0x10
- bl CpuSet
- movs r1, 0
- strh r1, [r6, 0x18]
- mov r0, r8
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08149FB0: .4byte sub_8149FC8
-_08149FB4: .4byte 0x00007fff
-_08149FB8: .4byte gTasks
-_08149FBC: .4byte gSprites
-_08149FC0: .4byte nullsub_85
-_08149FC4: .4byte gPlttBufferFaded + 0x200
- thumb_func_end sub_8149E7C
-
- thumb_func_start sub_8149FC8
-sub_8149FC8: @ 8149FC8
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08149FE4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x12]
- movs r0, 0x8
- strh r0, [r1, 0x14]
- ldr r0, _08149FE8
- str r0, [r1]
- bx lr
- .align 2, 0
-_08149FE4: .4byte gTasks
-_08149FE8: .4byte sub_8149FEC
- thumb_func_end sub_8149FC8
-
- thumb_func_start sub_8149FEC
-sub_8149FEC: @ 8149FEC
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _0814A00C
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0x18
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _0814A010
- adds r0, r3, 0
- bl sub_814A208
- b _0814A032
- .align 2, 0
-_0814A00C: .4byte gTasks
-_0814A010:
- ldrh r1, [r2, 0x14]
- movs r4, 0x14
- ldrsh r0, [r2, r4]
- cmp r0, 0x80
- bne _0814A022
- adds r0, r3, 0
- bl sub_814A158
- b _0814A032
-_0814A022:
- adds r0, r1, 0x2
- strh r0, [r2, 0x14]
- ldrh r0, [r2, 0x12]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r2, 0x12]
- ldr r0, _0814A038
- str r0, [r2]
-_0814A032:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A038: .4byte sub_814A03C
- thumb_func_end sub_8149FEC
-
- thumb_func_start sub_814A03C
-sub_814A03C: @ 814A03C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0814A060
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x18
- ldrsh r0, [r2, r3]
- adds r5, r1, 0
- cmp r0, 0
- beq _0814A068
- ldr r0, _0814A064
- str r0, [r2]
- b _0814A14C
- .align 2, 0
-_0814A060: .4byte gTasks
-_0814A064: .4byte sub_814A208
-_0814A068:
- movs r6, 0
- movs r7, 0x12
- ldrsh r0, [r2, r7]
- cmp r0, 0
- bne _0814A0B8
- movs r0, 0xE
- ldrsh r1, [r2, r0]
- movs r3, 0x14
- ldrsh r0, [r2, r3]
- movs r3, 0x80
- lsls r3, 1
- subs r0, r3, r0
- cmp r1, r0
- bge _0814A08E
- ldrh r0, [r2, 0x14]
- ldrh r7, [r2, 0xE]
- adds r0, r7
- strh r0, [r2, 0xE]
- b _0814A092
-_0814A08E:
- strh r3, [r2, 0xE]
- movs r6, 0x1
-_0814A092:
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r5
- movs r0, 0x10
- ldrsh r1, [r3, r0]
- movs r7, 0x14
- ldrsh r0, [r3, r7]
- adds r0, 0x10
- cmp r1, r0
- ble _0814A0B2
- ldrh r0, [r3, 0x10]
- ldrh r1, [r3, 0x14]
- subs r0, r1
- strh r0, [r3, 0x10]
- b _0814A102
-_0814A0B2:
- movs r0, 0x10
- strh r0, [r3, 0x10]
- b _0814A0FC
-_0814A0B8:
- movs r0, 0x10
- ldrsh r1, [r2, r0]
- movs r3, 0x14
- ldrsh r0, [r2, r3]
- movs r3, 0x80
- lsls r3, 1
- subs r0, r3, r0
- cmp r1, r0
- bge _0814A0D4
- ldrh r0, [r2, 0x14]
- ldrh r7, [r2, 0x10]
- adds r0, r7
- strh r0, [r2, 0x10]
- b _0814A0D8
-_0814A0D4:
- strh r3, [r2, 0x10]
- movs r6, 0x1
-_0814A0D8:
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r5
- movs r0, 0xE
- ldrsh r1, [r3, r0]
- movs r7, 0x14
- ldrsh r0, [r3, r7]
- adds r0, 0x10
- cmp r1, r0
- ble _0814A0F8
- ldrh r0, [r3, 0xE]
- ldrh r1, [r3, 0x14]
- subs r0, r1
- strh r0, [r3, 0xE]
- b _0814A102
-_0814A0F8:
- movs r0, 0x10
- strh r0, [r3, 0xE]
-_0814A0FC:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0814A102:
- adds r0, r2, r4
- lsls r0, 3
- adds r5, r0, r5
- movs r0, 0xE
- ldrsh r1, [r5, r0]
- movs r4, 0x80
- lsls r4, 9
- adds r0, r4, 0
- bl __divsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r0, 0x1E
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- movs r3, 0x10
- ldrsh r1, [r5, r3]
- adds r0, r4, 0
- bl __divsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r0, 0x1F
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- cmp r6, 0x2
- bne _0814A14C
- ldr r0, _0814A154
- str r0, [r5]
-_0814A14C:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A154: .4byte sub_8149FEC
- thumb_func_end sub_814A03C
-
- thumb_func_start sub_814A158
-sub_814A158: @ 814A158
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0814A200
- mov r8, r1
- ldr r1, _0814A204
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- add r2, r8
- ldrb r3, [r2, 0x1]
- movs r6, 0x4
- negs r6, r6
- adds r1, r6, 0
- ands r1, r3
- strb r1, [r2, 0x1]
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- add r2, r8
- ldrb r3, [r2, 0x3]
- movs r5, 0x3F
- negs r5, r5
- adds r1, r5, 0
- ands r1, r3
- strb r1, [r2, 0x3]
- movs r1, 0xA
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r3, 0x4
- orrs r2, r3
- strb r2, [r1]
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x1]
- ands r6, r2
- strb r6, [r1, 0x1]
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x3]
- ands r5, r2
- strb r5, [r1, 0x3]
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- ands r2, r3
- strb r2, [r1]
- bl DestroyTask
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A200: .4byte gSprites
-_0814A204: .4byte gTasks
- thumb_func_end sub_814A158
-
- thumb_func_start sub_814A208
-sub_814A208: @ 814A208
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0814A2B0
- mov r8, r1
- ldr r1, _0814A2B4
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- add r2, r8
- ldrb r3, [r2, 0x1]
- movs r6, 0x4
- negs r6, r6
- adds r1, r6, 0
- ands r1, r3
- strb r1, [r2, 0x1]
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- add r2, r8
- ldrb r3, [r2, 0x3]
- movs r5, 0x3F
- negs r5, r5
- adds r1, r5, 0
- ands r1, r3
- strb r1, [r2, 0x3]
- movs r1, 0xA
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- ands r2, r3
- strb r2, [r1]
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x1]
- ands r6, r2
- strb r6, [r1, 0x1]
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x3]
- ands r5, r2
- strb r5, [r1, 0x3]
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r3, 0x4
- orrs r2, r3
- strb r2, [r1]
- bl DestroyTask
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A2B0: .4byte gSprites
-_0814A2B4: .4byte gTasks
- thumb_func_end sub_814A208
-
- thumb_func_start sub_814A2B8
-sub_814A2B8: @ 814A2B8
- ldr r2, _0814A2CC
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- lsls r1, 1
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- bx lr
- .align 2, 0
-_0814A2CC: .4byte gUnknown_08417068
- thumb_func_end sub_814A2B8
-
- thumb_func_start sub_814A2D0
-sub_814A2D0: @ 814A2D0
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _0814A2E8
- lsrs r0, 14
- adds r0, r2
- ldr r0, [r0]
- lsls r2, r1, 1
- adds r2, r1
- lsls r2, 4
- adds r0, r2
- bx lr
- .align 2, 0
-_0814A2E8: .4byte gBardMusicTable
- thumb_func_end sub_814A2D0
-
- thumb_func_start sub_814A2EC
-sub_814A2EC: @ 814A2EC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- lsls r2, 16
- lsrs r2, 16
- mov r9, r2
- ldr r4, _0814A370
- adds r2, r1, 0
- adds r3, r6, 0
- adds r3, 0x18
- movs r7, 0x5
-_0814A306:
- ldrb r0, [r2]
- strh r0, [r3]
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _0814A328
- movs r1, 0x1
- ldrsb r1, [r2, r1]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- adds r1, r0
- strh r1, [r3, 0x2]
- ldrh r0, [r2, 0x4]
- strh r0, [r3, 0x6]
- ldrh r0, [r6, 0x4]
- adds r0, r1
- strh r0, [r6, 0x4]
-_0814A328:
- adds r2, 0x8
- adds r3, 0x8
- subs r7, 0x1
- cmp r7, 0
- bge _0814A306
- movs r7, 0x6
- movs r5, 0
- movs r0, 0x1E
- mov r8, r0
- adds r4, r6, 0
-_0814A33C:
- mov r0, r8
- add r0, r9
- adds r1, r5, 0
- bl sub_814A2B8
- adds r1, r0, 0
- strh r1, [r4, 0x1C]
- adds r4, 0x8
- adds r5, 0x1
- cmp r5, r7
- blt _0814A33C
- ldrb r1, [r6]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r6]
- strb r2, [r6, 0x1]
- strb r2, [r6, 0x2]
- strb r2, [r6, 0x3]
- strh r2, [r6, 0xA]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A370: .4byte gUnknown_084170F4
- thumb_func_end sub_814A2EC
-
- thumb_func_start SetUpFieldMove_Teleport
-SetUpFieldMove_Teleport: @ 814A374
- push {lr}
- ldr r0, _0814A38C
- ldrb r0, [r0, 0x17]
- bl is_light_level_1_2_3_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0814A390
- movs r0, 0
- b _0814A39E
- .align 2, 0
-_0814A38C: .4byte gMapHeader
-_0814A390:
- ldr r1, _0814A3A4
- ldr r0, _0814A3A8
- str r0, [r1]
- ldr r1, _0814A3AC
- ldr r0, _0814A3B0
- str r0, [r1]
- movs r0, 0x1
-_0814A39E:
- pop {r1}
- bx r1
- .align 2, 0
-_0814A3A4: .4byte gUnknown_0300485C
-_0814A3A8: .4byte sub_808AB90
-_0814A3AC: .4byte gUnknown_03005CE4
-_0814A3B0: .4byte hm_teleport_run_dp02scr
- thumb_func_end SetUpFieldMove_Teleport
-
- thumb_func_start hm_teleport_run_dp02scr
-hm_teleport_run_dp02scr: @ 814A3B4
- push {lr}
- bl new_game
- movs r0, 0x3F
- bl FieldEffectStart
- ldr r0, _0814A3CC
- ldr r1, _0814A3D0
- ldrb r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0814A3CC: .4byte gUnknown_0202FF84
-_0814A3D0: .4byte gUnknown_03005CE0
- thumb_func_end hm_teleport_run_dp02scr
-
- thumb_func_start FldEff_UseTeleport
-FldEff_UseTeleport: @ 814A3D4
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0814A3FC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0814A400
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x1
- bl SetPlayerAvatarTransitionFlags
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0814A3FC: .4byte gTasks
-_0814A400: .4byte sub_814A404
- thumb_func_end FldEff_UseTeleport
-
- thumb_func_start sub_814A404
-sub_814A404: @ 814A404
- push {lr}
- movs r0, 0x3F
- bl FieldEffectActiveListRemove
- bl sub_8087BA8
- pop {r0}
- bx r0
- thumb_func_end sub_814A404
-
- thumb_func_start unref_sub_814A414
-unref_sub_814A414: @ 814A414
- push {lr}
- sub sp, 0x8
- bl MenuZeroFillScreen
- movs r0, 0
- movs r1, 0
- movs r2, 0x10
- movs r3, 0x12
- bl MenuDrawTextWindow
- ldr r3, _0814A458
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x8
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- movs r0, 0xF
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x8
- bl InitMenu
- ldr r1, _0814A45C
- ldr r0, _0814A460
- str r0, [r1]
- movs r0, 0
- add sp, 0x8
- pop {r1}
- bx r1
- .align 2, 0
-_0814A458: .4byte gUnknown_0842C29C
-_0814A45C: .4byte gCallback_03004AE8
-_0814A460: .4byte sub_814A464
- thumb_func_end unref_sub_814A414
-
- thumb_func_start sub_814A464
-sub_814A464: @ 814A464
- push {lr}
- bl ProcessMenuInput
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r0, r2, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- bne _0814A480
- movs r0, 0
- b _0814A4B2
-_0814A480:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0814A4AC
- ldr r0, _0814A4A0
- strb r2, [r0]
- ldr r2, _0814A4A4
- ldr r0, _0814A4A8
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2]
- movs r0, 0
- b _0814A4B2
- .align 2, 0
-_0814A4A0: .4byte gUnknown_02024D1E
-_0814A4A4: .4byte gCallback_03004AE8
-_0814A4A8: .4byte gUnknown_0842C29C
-_0814A4AC:
- bl sub_8071C20
- movs r0, 0x1
-_0814A4B2:
- pop {r1}
- bx r1
- thumb_func_end sub_814A464
-
- thumb_func_start sub_814A4B8
-sub_814A4B8: @ 814A4B8
- push {r4,lr}
- ldr r2, _0814A4FC
- ldr r1, _0814A500
- adds r0, r2, r1
- movs r1, 0x3
- strb r1, [r0]
- ldr r3, _0814A504
- adds r0, r2, r3
- strb r1, [r0]
- ldr r3, _0814A508
- ldrb r0, [r3]
- adds r0, 0x1
- ldr r4, _0814A50C
- adds r1, r2, r4
- strh r0, [r1]
- ldrb r0, [r3]
- adds r0, 0x1
- ldr r3, _0814A510
- adds r1, r2, r3
- strh r0, [r1]
- subs r4, 0x4
- adds r0, r2, r4
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _0814A514
- adds r2, r0
- strh r1, [r2]
- bl sub_8071C20
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A4FC: .4byte gSaveBlock2
-_0814A500: .4byte 0x00000556
-_0814A504: .4byte 0x00000557
-_0814A508: .4byte gUnknown_02024D1E
-_0814A50C: .4byte 0x0000055c
-_0814A510: .4byte 0x0000055e
-_0814A514: .4byte 0x0000055a
- thumb_func_end sub_814A4B8
-
- thumb_func_start sub_814A518
-sub_814A518: @ 814A518
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- bl SkipExtCtrlCodes
- adds r0, r4, 0
- bl StringLength
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r5, 0xFC
- bne _0814A556
- cmp r1, 0x5
- bhi _0814A55A
- movs r3, 0xFC
- movs r2, 0x7
-_0814A53A:
- adds r0, r4, r1
- strb r3, [r0]
- strb r2, [r0, 0x1]
- adds r0, r1, 0x2
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x5
- bls _0814A53A
- b _0814A55A
-_0814A54C:
- adds r0, r4, r1
- strb r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
-_0814A556:
- cmp r1, 0x5
- bls _0814A54C
-_0814A55A:
- adds r1, r4, r1
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_814A518
-
- thumb_func_start sub_814A568
-sub_814A568: @ 814A568
- push {r4,lr}
- adds r4, r0, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bhi _0814A582
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
- b _0814A588
-_0814A582:
- adds r0, r4, 0
- bl SkipExtCtrlCodes
-_0814A588:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_814A568
-
- thumb_func_start sub_814A590
-sub_814A590: @ 814A590
- ldr r0, _0814A5AC
- movs r1, 0x40
- strb r1, [r0]
- ldr r0, _0814A5B0
- strb r1, [r0]
- ldr r0, _0814A5B4
- strb r1, [r0]
- ldr r0, _0814A5B8
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0814A5BC
- strb r1, [r0]
- bx lr
- .align 2, 0
-_0814A5AC: .4byte gUnknown_0203A3D0
-_0814A5B0: .4byte gUnknown_0203A3D1
-_0814A5B4: .4byte gUnknown_0203A3D2
-_0814A5B8: .4byte gUnknown_0203A3D3
-_0814A5BC: .4byte gUnknown_0203A3D4
- thumb_func_end sub_814A590
-
- thumb_func_start sub_814A5C0
-sub_814A5C0: @ 814A5C0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 16
- lsrs r7, r3, 16
- lsls r4, 24
- lsrs r4, 24
- mov r9, r4
- ldr r0, _0814A678
- ldrb r0, [r0]
- cmp r0, 0x40
- bne _0814A5F2
- ldr r0, _0814A67C
- ldrb r0, [r0]
- cmp r0, 0x40
- beq _0814A5F6
-_0814A5F2:
- bl sub_814A7FC
-_0814A5F6:
- movs r4, 0x1
- ldr r0, _0814A680
- cmp r6, r0
- bne _0814A61C
- ldr r1, _0814A684
- movs r0, 0xF
- ands r0, r5
- lsls r0, 1
- adds r0, r1
- strh r7, [r0]
- ldr r0, _0814A688
- bl LoadSpritePalette
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0814A61C
- ldr r6, _0814A68C
- movs r4, 0
-_0814A61C:
- movs r7, 0xF
- adds r0, r5, 0
- ands r0, r7
- lsls r0, 3
- ldr r1, _0814A690
- adds r0, r1
- bl LoadSpriteSheetDeferred
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r4, _0814A694
- adds r0, r4
- movs r1, 0
- movs r2, 0xA0
- mov r3, r8
- bl CreateSprite
- ldr r5, _0814A678
- strb r0, [r5]
- adds r4, 0x30
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0xA0
- mov r3, r8
- bl CreateSprite
- ldr r1, _0814A67C
- strb r0, [r1]
- ldrb r0, [r5]
- cmp r0, 0x40
- beq _0814A6AE
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A698
- adds r4, r0, r1
- ldr r0, _0814A680
- cmp r6, r0
- bne _0814A69C
- ldrb r1, [r4, 0x5]
- adds r0, r7, 0
- ands r0, r1
- strb r0, [r4, 0x5]
- b _0814A6AE
- .align 2, 0
-_0814A678: .4byte gUnknown_0203A3D0
-_0814A67C: .4byte gUnknown_0203A3D1
-_0814A680: .4byte 0x0000ffff
-_0814A684: .4byte gUnknown_0203A360
-_0814A688: .4byte gUnknown_0842F240
-_0814A68C: .4byte 0x0000fff0
-_0814A690: .4byte gUnknown_0842F140
-_0814A694: .4byte gSpriteTemplate_842F250
-_0814A698: .4byte gSprites
-_0814A69C:
- adds r0, r6, 0
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- ldrb r2, [r4, 0x5]
- adds r1, r7, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
-_0814A6AE:
- ldr r1, _0814A6D4
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814A72C
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A6D8
- adds r4, r0, r1
- ldr r0, _0814A6DC
- cmp r6, r0
- bne _0814A6E0
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- strb r0, [r4, 0x5]
- b _0814A6F2
- .align 2, 0
-_0814A6D4: .4byte gUnknown_0203A3D1
-_0814A6D8: .4byte gSprites
-_0814A6DC: .4byte 0x0000ffff
-_0814A6E0:
- adds r0, r6, 0
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- ldrb r2, [r4, 0x5]
- movs r1, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
-_0814A6F2:
- movs r3, 0x80
- lsls r3, 19
- ldrh r1, [r3]
- movs r0, 0xC0
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- bne _0814A70C
- ldr r0, _0814A744
- ldrb r1, [r0]
- movs r2, 0x1F
- orrs r1, r2
- strb r1, [r0]
-_0814A70C:
- ldr r1, _0814A748
- ldrh r0, [r3]
- lsrs r0, 15
- strb r0, [r1]
- ldr r1, _0814A74C
- ldr r2, _0814A750
- ldrb r0, [r2]
- strb r0, [r1]
- ldrh r0, [r3]
- movs r4, 0x80
- lsls r4, 8
- adds r1, r4, 0
- orrs r0, r1
- strh r0, [r3]
- movs r0, 0x10
- strb r0, [r2]
-_0814A72C:
- mov r0, r9
- bl sub_814A958
- ldr r0, _0814A754
- ldrb r0, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A744: .4byte REG_WINOUT
-_0814A748: .4byte gUnknown_0203A3D3
-_0814A74C: .4byte gUnknown_0203A3D4
-_0814A750: .4byte 0x0400004b
-_0814A754: .4byte gUnknown_0203A3D0
- thumb_func_end sub_814A5C0
-
- thumb_func_start sub_814A758
-sub_814A758: @ 814A758
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- movs r1, 0
- movs r3, 0
- bl sub_814A5C0
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r4, 0x40
- beq _0814A79A
- ldr r0, _0814A7A4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0814A7A8
- adds r1, r0
- lsls r3, r5, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
-_0814A79A:
- adds r0, r4, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A7A4: .4byte gUnknown_0203A3D0
-_0814A7A8: .4byte gSprites
- thumb_func_end sub_814A758
-
- thumb_func_start unref_sub_814A7AC
-unref_sub_814A7AC: @ 814A7AC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 24
- lsrs r7, r2, 24
- movs r3, 0
- movs r2, 0xF
- movs r1, 0
- ldr r6, _0814A7F8
- movs r5, 0xF
-_0814A7C6:
- lsls r0, r1, 1
- adds r0, r6
- ldrh r0, [r0]
- cmp r0, r4
- bne _0814A7DA
- lsrs r0, r1, 4
- lsls r0, 24
- lsrs r3, r0, 24
- adds r2, r1, 0
- ands r2, r5
-_0814A7DA:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xFF
- bls _0814A7C6
- mov r0, r12
- adds r1, r3, 0
- adds r3, r7, 0
- bl sub_814A758
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A7F8: .4byte gPlttBufferUnfaded
- thumb_func_end unref_sub_814A7AC
-
- thumb_func_start sub_814A7FC
-sub_814A7FC: @ 814A7FC
- push {r4,lr}
- ldr r4, _0814A860
- ldrb r0, [r4]
- cmp r0, 0x40
- beq _0814A820
- ldr r0, _0814A864
- bl LoadTilesForSpriteSheet
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A868
- adds r0, r1
- bl DestroySpriteAndFreeResources
- movs r0, 0x40
- strb r0, [r4]
-_0814A820:
- ldr r4, _0814A86C
- ldrb r0, [r4]
- cmp r0, 0x40
- beq _0814A858
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A868
- adds r0, r1
- bl DestroySpriteAndFreeResources
- movs r0, 0x40
- strb r0, [r4]
- ldr r0, _0814A870
- ldrb r0, [r0]
- cmp r0, 0
- bne _0814A850
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _0814A874
- ands r0, r1
- strh r0, [r2]
-_0814A850:
- ldr r0, _0814A878
- ldr r1, _0814A87C
- ldrb r1, [r1]
- strb r1, [r0]
-_0814A858:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A860: .4byte gUnknown_0203A3D0
-_0814A864: .4byte gUnknown_0842F140
-_0814A868: .4byte gSprites
-_0814A86C: .4byte gUnknown_0203A3D1
-_0814A870: .4byte gUnknown_0203A3D3
-_0814A874: .4byte 0x00007fff
-_0814A878: .4byte 0x0400004b
-_0814A87C: .4byte gUnknown_0203A3D4
- thumb_func_end sub_814A7FC
-
- thumb_func_start sub_814A880
-sub_814A880: @ 814A880
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- lsls r1, 24
- lsrs r4, r1, 24
- adds r6, r4, 0
- ldr r1, _0814A8F8
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814A8C0
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A8FC
- adds r2, r0, r1
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- adds r0, r2, 0
- adds r0, 0x28
- movs r1, 0
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- strh r5, [r2, 0x20]
- strh r4, [r2, 0x22]
-_0814A8C0:
- ldr r1, _0814A900
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814A8F2
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A8FC
- adds r2, r0, r1
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- adds r0, r2, 0
- adds r0, 0x28
- movs r1, 0
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- strh r7, [r2, 0x20]
- strh r6, [r2, 0x22]
-_0814A8F2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A8F8: .4byte gUnknown_0203A3D0
-_0814A8FC: .4byte gSprites
-_0814A900: .4byte gUnknown_0203A3D1
- thumb_func_end sub_814A880
-
- thumb_func_start sub_814A904
-sub_814A904: @ 814A904
- push {lr}
- ldr r1, _0814A94C
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814A926
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A950
- adds r0, r1
- adds r2, r0, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0814A926:
- ldr r1, _0814A954
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814A946
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A950
- adds r0, r1
- adds r2, r0, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0814A946:
- pop {r0}
- bx r0
- .align 2, 0
-_0814A94C: .4byte gUnknown_0203A3D0
-_0814A950: .4byte gSprites
-_0814A954: .4byte gUnknown_0203A3D1
- thumb_func_end sub_814A904
-
- thumb_func_start sub_814A958
-sub_814A958: @ 814A958
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _0814A9C4
- ldr r2, _0814A9C8
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r1, 0x2
- str r0, [r4]
- str r1, [r4, 0x4]
- strh r2, [r4]
- adds r4, 0x8
- movs r7, 0x1
- movs r2, 0x1
- ldr r1, [sp]
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _0814AA3A
- ldr r0, _0814A9CC
- mov r12, r0
- mov r8, r1
- movs r1, 0x8
- negs r1, r1
- mov r10, r1
- ldr r5, _0814A9D0
- mov r9, r5
-_0814A99E:
- lsls r0, r3, 16
- asrs r3, r0, 16
- cmp r3, 0x1F
- ble _0814A9D4
- mov r6, r12
- ldr r0, [r6]
- ldr r1, [r6, 0x4]
- str r0, [r4]
- str r1, [r4, 0x4]
- strh r2, [r4]
- lsls r0, r2, 16
- movs r1, 0x80
- lsls r1, 14
- adds r0, r1
- lsrs r2, r0, 16
- ldr r3, [sp]
- lsls r5, r3, 16
- b _0814AA20
- .align 2, 0
-_0814A9C4: .4byte gSubspriteTable_203A380
-_0814A9C8: .4byte 0x0000ffff
-_0814A9CC: .4byte gUnknown_0842F780
-_0814A9D0: .4byte gUnknown_0842F788
-_0814A9D4:
- ldr r6, [sp]
- lsls r5, r6, 16
- mov r0, r8
- cmp r0, 0x27
- ble _0814AA0A
- cmp r3, 0x8
- ble _0814AA0A
- mov r6, r12
- ldr r0, [r6]
- ldr r1, [r6, 0x4]
- str r0, [r4]
- str r1, [r4, 0x4]
- lsls r1, r2, 16
- asrs r1, 16
- adds r2, r1, 0
- subs r2, 0x20
- adds r0, r3, 0
- mov r6, r10
- ands r0, r6
- adds r2, r0
- strh r2, [r4]
- movs r0, 0x18
- ands r0, r3
- adds r1, r0
- lsls r1, 16
- lsrs r2, r1, 16
- b _0814AA20
-_0814AA0A:
- mov r3, r9
- ldr r0, [r3]
- ldr r1, [r3, 0x4]
- str r0, [r4]
- str r1, [r4, 0x4]
- strh r2, [r4]
- lsls r0, r2, 16
- movs r6, 0x80
- lsls r6, 12
- adds r0, r6
- lsrs r2, r0, 16
-_0814AA20:
- adds r4, 0x8
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- asrs r1, r5, 16
- lsls r0, r2, 16
- asrs r0, 16
- subs r1, r0
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- cmp r1, 0x7
- bgt _0814A99E
-_0814AA3A:
- ldr r5, _0814AAA8
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- str r0, [r4]
- str r1, [r4, 0x4]
- lsls r1, r2, 16
- asrs r1, 16
- subs r1, 0x7
- lsls r0, r3, 16
- asrs r0, 16
- adds r0, r1
- strh r0, [r4]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r6, _0814AAAC
- ldrb r0, [r6]
- cmp r0, 0x40
- beq _0814AA78
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AAB0
- adds r2, r0, r1
- lsls r1, r7, 3
- ldr r0, _0814AAB4
- adds r1, r0
- adds r0, r2, 0
- bl SetSubspriteTables
-_0814AA78:
- ldr r1, _0814AAB8
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AA98
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AAB0
- adds r2, r0, r1
- lsls r1, r7, 3
- ldr r0, _0814AAB4
- adds r1, r0
- adds r0, r2, 0
- bl SetSubspriteTables
-_0814AA98:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814AAA8: .4byte gUnknown_0842F790
-_0814AAAC: .4byte gUnknown_0203A3D0
-_0814AAB0: .4byte gSprites
-_0814AAB4: .4byte gSubspriteTables_842F5C0
-_0814AAB8: .4byte gUnknown_0203A3D1
- thumb_func_end sub_814A958
-
- thumb_func_start sub_814AABC
-sub_814AABC: @ 814AABC
- push {lr}
- adds r2, r0, 0
- ldr r1, _0814AAEC
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AAD4
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0814AAF0
- adds r1, r0
- str r2, [r1, 0x1C]
-_0814AAD4:
- ldr r1, _0814AAF4
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AAE8
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0814AAF0
- adds r1, r0
- str r2, [r1, 0x1C]
-_0814AAE8:
- pop {r0}
- bx r0
- .align 2, 0
-_0814AAEC: .4byte gUnknown_0203A3D0
-_0814AAF0: .4byte gSprites
-_0814AAF4: .4byte gUnknown_0203A3D1
- thumb_func_end sub_814AABC
-
- thumb_func_start sub_814AAF8
-sub_814AAF8: @ 814AAF8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- ldr r1, _0814AB70
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AB66
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AB74
- adds r4, r0, r1
- ldr r0, [r4, 0x14]
- ldrh r1, [r0, 0x2]
- ldr r0, _0814AB78
- cmp r1, r0
- bne _0814AB66
- movs r2, 0
- movs r3, 0xF
- movs r1, 0
- ldrb r5, [r4, 0x5]
- ldr r0, _0814AB7C
- mov r8, r0
- ldr r7, _0814AB80
- movs r6, 0xF
-_0814AB32:
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- cmp r0, r12
- bne _0814AB46
- lsrs r0, r1, 4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r3, r1, 0
- ands r3, r6
-_0814AB46:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xFF
- bls _0814AB32
- lsls r2, 4
- movs r1, 0xF
- adds r0, r1, 0
- ands r0, r5
- orrs r0, r2
- strb r0, [r4, 0x5]
- ands r3, r1
- lsls r0, r3, 3
- add r0, r8
- bl RequestSpriteSheetCopy
-_0814AB66:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814AB70: .4byte gUnknown_0203A3D0
-_0814AB74: .4byte gSprites
-_0814AB78: .4byte 0x0000ffff
-_0814AB7C: .4byte gUnknown_0842F140
-_0814AB80: .4byte gPlttBufferUnfaded
- thumb_func_end sub_814AAF8
-
- thumb_func_start sub_814AB84
-sub_814AB84: @ 814AB84
- push {r4,r5,lr}
- ldr r5, _0814ABCC
- ldrb r0, [r5]
- cmp r0, 0x40
- beq _0814ABC4
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0814ABD0
- adds r4, r0
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- movs r0, 0x40
- strb r0, [r5]
- ldr r0, _0814ABD4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0814ABBC
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _0814ABD8
- ands r0, r1
- strh r0, [r2]
-_0814ABBC:
- ldr r0, _0814ABDC
- ldr r1, _0814ABE0
- ldrb r1, [r1]
- strb r1, [r0]
-_0814ABC4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814ABCC: .4byte gUnknown_0203A3D1
-_0814ABD0: .4byte gSprites
-_0814ABD4: .4byte gUnknown_0203A3D3
-_0814ABD8: .4byte 0x00007fff
-_0814ABDC: .4byte 0x0400004b
-_0814ABE0: .4byte gUnknown_0203A3D4
- thumb_func_end sub_814AB84
-
- thumb_func_start unref_sub_814ABE4
-unref_sub_814ABE4: @ 814ABE4
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0814AC40
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _0814AC44
- movs r2, 0x28
- bl CpuSet
- ldr r1, _0814AC48
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AC18
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AC4C
- adds r2, r0, r1
- lsls r1, r4, 3
- ldr r0, _0814AC50
- adds r1, r0
- adds r0, r2, 0
- bl SetSubspriteTables
-_0814AC18:
- ldr r1, _0814AC54
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AC38
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AC4C
- adds r2, r0, r1
- lsls r1, r4, 3
- ldr r0, _0814AC50
- adds r1, r0
- adds r0, r2, 0
- bl SetSubspriteTables
-_0814AC38:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814AC40: .4byte gUnknown_0842F5BC
-_0814AC44: .4byte gSubspriteTable_203A380
-_0814AC48: .4byte gUnknown_0203A3D0
-_0814AC4C: .4byte gSprites
-_0814AC50: .4byte gUnknown_0842F758
-_0814AC54: .4byte gUnknown_0203A3D1
- thumb_func_end unref_sub_814ABE4
-
- thumb_func_start sub_814AC58
-sub_814AC58: @ 814AC58
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 16
- lsrs r6, r3, 16
- lsls r4, 24
- lsrs r4, 24
- mov r9, r4
- ldr r0, _0814ACF8
- ldrb r0, [r0]
- cmp r0, 0x40
- beq _0814AC86
- bl sub_814AD44
-_0814AC86:
- movs r4, 0x1
- ldr r0, _0814ACFC
- cmp r5, r0
- bne _0814ACAC
- ldr r1, _0814AD00
- movs r0, 0xF
- ands r0, r7
- lsls r0, 1
- adds r0, r1
- strh r6, [r0]
- ldr r0, _0814AD04
- bl LoadSpritePalette
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0814ACAC
- ldr r5, _0814AD08
- movs r4, 0
-_0814ACAC:
- movs r6, 0xF
- adds r0, r7, 0
- ands r0, r6
- lsls r0, 3
- ldr r1, _0814AD0C
- adds r0, r1
- bl LoadSpriteSheetDeferred
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _0814AD10
- adds r0, r1
- movs r1, 0
- movs r2, 0xA0
- mov r3, r8
- bl CreateSprite
- ldr r1, _0814ACF8
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0814AD2A
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AD14
- adds r4, r0, r1
- ldr r0, _0814ACFC
- cmp r5, r0
- bne _0814AD18
- ldrb r1, [r4, 0x5]
- adds r0, r6, 0
- ands r0, r1
- strb r0, [r4, 0x5]
- b _0814AD2A
- .align 2, 0
-_0814ACF8: .4byte gUnknown_0203A3D2
-_0814ACFC: .4byte 0x0000ffff
-_0814AD00: .4byte gUnknown_0203A360
-_0814AD04: .4byte gUnknown_0842F248
-_0814AD08: .4byte 0x0000fff1
-_0814AD0C: .4byte gUnknown_0842F1C0
-_0814AD10: .4byte gSpriteTemplate_842F298
-_0814AD14: .4byte gSprites
-_0814AD18:
- adds r0, r5, 0
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- ldrb r2, [r4, 0x5]
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
-_0814AD2A:
- mov r0, r9
- bl sub_814ADF4
- ldr r0, _0814AD40
- ldrb r0, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0814AD40: .4byte gUnknown_0203A3D2
- thumb_func_end sub_814AC58
-
- thumb_func_start sub_814AD44
-sub_814AD44: @ 814AD44
- push {r4,lr}
- ldr r4, _0814AD70
- ldrb r0, [r4]
- cmp r0, 0x40
- beq _0814AD68
- ldr r0, _0814AD74
- bl LoadTilesForSpriteSheet
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AD78
- adds r0, r1
- bl DestroySpriteAndFreeResources
- movs r0, 0x40
- strb r0, [r4]
-_0814AD68:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814AD70: .4byte gUnknown_0203A3D2
-_0814AD74: .4byte gUnknown_0842F1C0
-_0814AD78: .4byte gSprites
- thumb_func_end sub_814AD44
-
- thumb_func_start sub_814AD7C
-sub_814AD7C: @ 814AD7C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r1, _0814ADC0
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814ADB8
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814ADC4
- adds r2, r0, r1
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- adds r0, r2, 0
- adds r0, 0x28
- movs r1, 0
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- strh r5, [r2, 0x20]
- strh r4, [r2, 0x22]
-_0814ADB8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814ADC0: .4byte gUnknown_0203A3D2
-_0814ADC4: .4byte gSprites
- thumb_func_end sub_814AD7C
-
- thumb_func_start sub_814ADC8
-sub_814ADC8: @ 814ADC8
- push {lr}
- ldr r1, _0814ADEC
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814ADE8
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814ADF0
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0814ADE8:
- pop {r0}
- bx r0
- .align 2, 0
-_0814ADEC: .4byte gUnknown_0203A3D2
-_0814ADF0: .4byte gSprites
- thumb_func_end sub_814ADC8
-
- thumb_func_start sub_814ADF4
-sub_814ADF4: @ 814ADF4
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x12
- bls _0814AE00
- movs r2, 0
-_0814AE00:
- ldr r1, _0814AE24
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AE1E
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AE28
- adds r0, r1
- lsls r1, r2, 3
- ldr r2, _0814AE2C
- adds r1, r2
- bl SetSubspriteTables
-_0814AE1E:
- pop {r0}
- bx r0
- .align 2, 0
-_0814AE24: .4byte gUnknown_0203A3D2
-_0814AE28: .4byte gSprites
-_0814AE2C: .4byte gUnknown_0842F6C0
- thumb_func_end sub_814ADF4
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_8148B8C.s b/asm/rom_8148B8C.s
new file mode 100644
index 000000000..99dcbf90f
--- /dev/null
+++ b/asm/rom_8148B8C.s
@@ -0,0 +1,4476 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start load_intro_part2_graphics
+load_intro_part2_graphics: @ 8148B8C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08148BE8
+ ldr r1, _08148BEC
+ bl LZ77UnCompVram
+ ldr r0, _08148BF0
+ ldr r1, _08148BF4
+ bl LZ77UnCompVram
+ ldr r0, _08148BF8
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ cmp r4, 0
+ beq _08148BB4
+ cmp r4, 0x1
+ beq _08148C14
+_08148BB4:
+ ldr r0, _08148BFC
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148C00
+ ldr r1, _08148C04
+ bl LZ77UnCompVram
+ ldr r0, _08148C08
+ movs r1, 0
+ movs r2, 0x60
+ bl LoadPalette
+ ldr r0, _08148C0C
+ bl LoadCompressedObjectPic
+ ldr r0, _08148C10
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149248
+ b _08148C46
+ .align 2, 0
+_08148BE8: .4byte gUnknown_0841225C
+_08148BEC: .4byte 0x06004000
+_08148BF0: .4byte gUnknown_084126DC
+_08148BF4: .4byte 0x06007800
+_08148BF8: .4byte gUnknown_084121FC
+_08148BFC: .4byte gUnknown_084128D8
+_08148C00: .4byte gUnknown_08412EB4
+_08148C04: .4byte 0x06003000
+_08148C08: .4byte gUnknown_08412818
+_08148C0C: .4byte gUnknown_08416B54
+_08148C10: .4byte gUnknown_08413184
+_08148C14:
+ ldr r0, _08148C58
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148C5C
+ ldr r1, _08148C60
+ bl LZ77UnCompVram
+ ldr r0, _08148C64
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148C68
+ bl LoadCompressedObjectPic
+ ldr r0, _08148C6C
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149264
+_08148C46:
+ ldr r1, _08148C70
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _08148C74
+ movs r0, 0x8
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148C58: .4byte gUnknown_08413340
+_08148C5C: .4byte gUnknown_084139C8
+_08148C60: .4byte 0x06003000
+_08148C64: .4byte gUnknown_08413300
+_08148C68: .4byte gUnknown_08416BDC
+_08148C6C: .4byte gUnknown_08413CCC
+_08148C70: .4byte gUnknown_0203935C
+_08148C74: .4byte gReservedSpritePaletteCount
+ thumb_func_end load_intro_part2_graphics
+
+ thumb_func_start sub_8148C78
+sub_8148C78: @ 8148C78
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08148CA4
+ ldr r2, _08148CA8
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ adds r2, 0xFF
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _08148CAC
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ movs r2, 0xF2
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148CA4: .4byte REG_BG3CNT
+_08148CA8: .4byte 0x00000603
+_08148CAC: .4byte 0x00000f05
+ thumb_func_end sub_8148C78
+
+ thumb_func_start sub_8148CB0
+sub_8148CB0: @ 8148CB0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08148CD4
+ ldr r1, _08148CD8
+ bl LZ77UnCompVram
+ ldr r0, _08148CDC
+ ldr r1, _08148CE0
+ bl LZ77UnCompVram
+ cmp r4, 0x4
+ bhi _08148CFC
+ lsls r0, r4, 2
+ ldr r1, _08148CE4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08148CD4: .4byte gUnknown_0841225C
+_08148CD8: .4byte 0x06004000
+_08148CDC: .4byte gUnknown_084126DC
+_08148CE0: .4byte 0x06007800
+_08148CE4: .4byte _08148CE8
+ .align 2, 0
+_08148CE8:
+ .4byte _08148CFC
+ .4byte _08148D58
+ .4byte _08148DC4
+ .4byte _08148DC4
+ .4byte _08148E1C
+_08148CFC:
+ ldr r0, _08148D34
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148D38
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148D3C
+ ldr r1, _08148D40
+ bl LZ77UnCompVram
+ ldr r0, _08148D44
+ movs r1, 0
+ movs r2, 0x60
+ bl LoadPalette
+ ldr r0, _08148D48
+ bl LoadCompressedObjectPic
+ ldr r0, _08148D4C
+ ldr r1, _08148D50
+ bl LZ77UnCompVram
+ ldr r0, _08148D54
+ b _08148D8E
+ .align 2, 0
+_08148D34: .4byte gUnknown_084121FC
+_08148D38: .4byte gUnknown_084128D8
+_08148D3C: .4byte gUnknown_08412EB4
+_08148D40: .4byte 0x06003000
+_08148D44: .4byte gUnknown_08412818
+_08148D48: .4byte gUnknown_08416B54
+_08148D4C: .4byte gUnknown_084131C4
+_08148D50: .4byte 0x06010000
+_08148D54: .4byte gUnknown_08413184
+_08148D58:
+ ldr r0, _08148DA0
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148DA4
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148DA8
+ ldr r1, _08148DAC
+ bl LZ77UnCompVram
+ ldr r0, _08148DB0
+ movs r1, 0
+ movs r2, 0x60
+ bl LoadPalette
+ ldr r0, _08148DB4
+ bl LoadCompressedObjectPic
+ ldr r0, _08148DB8
+ ldr r1, _08148DBC
+ bl LZ77UnCompVram
+ ldr r0, _08148DC0
+_08148D8E:
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149248
+ b _08148E58
+ .align 2, 0
+_08148DA0: .4byte gUnknown_0841221C
+_08148DA4: .4byte gUnknown_084128D8
+_08148DA8: .4byte gUnknown_08412EB4
+_08148DAC: .4byte 0x06003000
+_08148DB0: .4byte gUnknown_08412878
+_08148DB4: .4byte gUnknown_08416B54
+_08148DB8: .4byte gUnknown_084131C4
+_08148DBC: .4byte 0x06010000
+_08148DC0: .4byte gUnknown_084131A4
+_08148DC4:
+ ldr r0, _08148E04
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148E08
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148E0C
+ ldr r1, _08148E10
+ bl LZ77UnCompVram
+ ldr r4, _08148E14
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148E18
+ bl LoadCompressedObjectPic
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149264
+ b _08148E58
+ .align 2, 0
+_08148E04: .4byte gUnknown_0841221C
+_08148E08: .4byte gUnknown_08413340
+_08148E0C: .4byte gUnknown_084139C8
+_08148E10: .4byte 0x06003000
+_08148E14: .4byte gUnknown_08413320
+_08148E18: .4byte gUnknown_08416BDC
+_08148E1C:
+ ldr r0, _08148E6C
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148E70
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148E74
+ ldr r1, _08148E78
+ bl LZ77UnCompVram
+ ldr r0, _08148E7C
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadPalette
+ ldr r0, _08148E80
+ bl LoadCompressedObjectPic
+ ldr r0, _08148E84
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149280
+_08148E58:
+ ldr r1, _08148E88
+ movs r0, 0x8
+ strb r0, [r1]
+ ldr r1, _08148E8C
+ movs r0, 0
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148E6C: .4byte gUnknown_0841223C
+_08148E70: .4byte gUnknown_08413E78
+_08148E74: .4byte gUnknown_08414084
+_08148E78: .4byte 0x06003000
+_08148E7C: .4byte gUnknown_08413E38
+_08148E80: .4byte gUnknown_08416C70
+_08148E84: .4byte gUnknown_08414064
+_08148E88: .4byte gReservedSpritePaletteCount
+_08148E8C: .4byte gUnknown_0203935C
+ thumb_func_end sub_8148CB0
+
+ thumb_func_start sub_8148E90
+sub_8148E90: @ 8148E90
+ ldr r1, _08148EB4
+ ldr r2, _08148EB8
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ adds r2, 0xFF
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _08148EBC
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_08148EB4: .4byte REG_BG3CNT
+_08148EB8: .4byte 0x00000603
+_08148EBC: .4byte 0x00000f05
+ thumb_func_end sub_8148E90
+
+ thumb_func_start sub_8148EC0
+sub_8148EC0: @ 8148EC0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r1, _08148F34
+ mov r9, r1
+ mov r0, r9
+ movs r1, 0
+ str r3, [sp]
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _08148F38
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ strh r5, [r0, 0x8]
+ strh r6, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ strh r2, [r0, 0xE]
+ mov r1, r8
+ strh r1, [r0, 0x10]
+ strh r2, [r0, 0x12]
+ strh r2, [r0, 0x14]
+ ldr r3, [sp]
+ strh r3, [r0, 0x16]
+ movs r1, 0x8
+ strh r1, [r0, 0x18]
+ strh r2, [r0, 0x1A]
+ adds r0, r4, 0
+ bl _call_via_r9
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08148F34: .4byte sub_8148F3C
+_08148F38: .4byte gTasks
+ thumb_func_end sub_8148EC0
+
+ thumb_func_start sub_8148F3C
+sub_8148F3C: @ 8148F3C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08148FB4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r0, [r3, 0xA]
+ lsls r4, r0, 16
+ adds r6, r1, 0
+ cmp r4, 0
+ beq _08148F7C
+ movs r1, 0xC
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ ldrh r1, [r3, 0xE]
+ adds r2, r0, r1
+ lsrs r0, r4, 12
+ subs r2, r0
+ asrs r1, r2, 16
+ strh r1, [r3, 0xC]
+ strh r2, [r3, 0xE]
+ ldr r0, _08148FB8
+ strh r1, [r0]
+ ldr r2, _08148FBC
+ ldr r1, _08148FC0
+ ldr r0, _08148FC4
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r2]
+_08148F7C:
+ ldrh r0, [r3, 0x10]
+ lsls r4, r0, 16
+ cmp r4, 0
+ beq _08148FD8
+ movs r1, 0x12
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ ldrh r1, [r3, 0x14]
+ adds r2, r0, r1
+ lsrs r0, r4, 12
+ subs r2, r0
+ asrs r1, r2, 16
+ strh r1, [r3, 0x12]
+ strh r2, [r3, 0x14]
+ ldr r0, _08148FC8
+ strh r1, [r0]
+ movs r1, 0x8
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _08148FD0
+ ldr r2, _08148FCC
+ ldr r1, _08148FC0
+ ldr r0, _08148FC4
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r2]
+ b _08148FD8
+ .align 2, 0
+_08148FB4: .4byte gTasks
+_08148FB8: .4byte REG_BG1HOFS
+_08148FBC: .4byte REG_BG1VOFS
+_08148FC0: .4byte gUnknown_02039358
+_08148FC4: .4byte gUnknown_0203935A
+_08148FC8: .4byte REG_BG2HOFS
+_08148FCC: .4byte REG_BG2VOFS
+_08148FD0:
+ ldr r0, _08149010
+ ldr r1, _08149014
+ ldrh r1, [r1]
+ strh r1, [r0]
+_08148FD8:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r6
+ ldrh r0, [r3, 0x16]
+ lsls r4, r0, 16
+ cmp r4, 0
+ beq _08149008
+ movs r1, 0x18
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ ldrh r1, [r3, 0x1A]
+ adds r2, r0, r1
+ lsrs r0, r4, 12
+ subs r2, r0
+ asrs r1, r2, 16
+ strh r1, [r3, 0x18]
+ strh r2, [r3, 0x1A]
+ ldr r0, _08149018
+ strh r1, [r0]
+ ldr r1, _0814901C
+ ldr r0, _08149014
+ ldrh r0, [r0]
+ strh r0, [r1]
+_08149008:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149010: .4byte REG_BG2VOFS
+_08149014: .4byte gUnknown_02039358
+_08149018: .4byte REG_BG3HOFS
+_0814901C: .4byte REG_BG3VOFS
+ thumb_func_end sub_8148F3C
+
+ thumb_func_start sub_8149020
+sub_8149020: @ 8149020
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08149100
+ cmp r0, 0x1
+ ble _08149034
+ cmp r0, 0x2
+ beq _08149098
+_08149034:
+ ldr r0, _08149060
+ ldr r2, [r0, 0x20]
+ movs r0, 0x3
+ ands r0, r2
+ cmp r0, 0
+ bne _08149100
+ ldr r0, _08149064
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08149100
+ movs r0, 0x4
+ ands r2, r0
+ cmp r2, 0
+ beq _0814906C
+ ldr r2, _08149068
+ ldrh r1, [r2, 0x12]
+ mov r0, sp
+ strh r1, [r0]
+ ldrh r1, [r2, 0x14]
+ b _08149076
+ .align 2, 0
+_08149060: .4byte gMain
+_08149064: .4byte gPaletteFade
+_08149068: .4byte gPlttBufferUnfaded
+_0814906C:
+ ldr r2, _08149094
+ ldrh r1, [r2, 0x14]
+ mov r0, sp
+ strh r1, [r0]
+ ldrh r1, [r2, 0x12]
+_08149076:
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r4, r0, 0
+ mov r0, sp
+ movs r1, 0x9
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0x2
+ bl LoadPalette
+ b _08149100
+ .align 2, 0
+_08149094: .4byte gPlttBufferUnfaded
+_08149098:
+ ldr r0, _081490C8
+ ldr r2, [r0, 0x20]
+ movs r0, 0x3
+ ands r0, r2
+ cmp r0, 0
+ bne _08149100
+ ldr r0, _081490CC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08149100
+ movs r0, 0x4
+ ands r2, r0
+ cmp r2, 0
+ beq _081490D8
+ mov r1, sp
+ ldr r2, _081490D0
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _081490D4
+ b _081490E6
+ .align 2, 0
+_081490C8: .4byte gMain
+_081490CC: .4byte gPaletteFade
+_081490D0: .4byte 0x00003d27
+_081490D4: .4byte 0x00000295
+_081490D8:
+ mov r1, sp
+ movs r2, 0xC7
+ lsls r2, 2
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _08149108
+_081490E6:
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r4, r1, 0
+ mov r0, sp
+ movs r1, 0xC
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0xD
+ movs r2, 0x2
+ bl LoadPalette
+_08149100:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149108: .4byte 0x00003d27
+ thumb_func_end sub_8149020
+
+ thumb_func_start sub_814910C
+sub_814910C: @ 814910C
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _08149124
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08149128
+ adds r0, r2, 0
+ bl DestroySprite
+ b _0814916C
+ .align 2, 0
+_08149124: .4byte gUnknown_0203935C
+_08149128:
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ lsls r0, 16
+ ldrh r1, [r2, 0x32]
+ orrs r0, r1
+ ldrh r1, [r2, 0x30]
+ adds r0, r1
+ asrs r1, r0, 16
+ strh r1, [r2, 0x20]
+ strh r0, [r2, 0x32]
+ cmp r1, 0xFF
+ ble _08149144
+ ldr r0, _08149158
+ strh r0, [r2, 0x20]
+_08149144:
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _08149164
+ ldr r1, _0814915C
+ ldr r0, _08149160
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ adds r0, r1
+ b _08149168
+ .align 2, 0
+_08149158: .4byte 0x0000ffe0
+_0814915C: .4byte gUnknown_02039358
+_08149160: .4byte gUnknown_0203935A
+_08149164:
+ ldr r0, _08149170
+ ldrh r0, [r0]
+_08149168:
+ negs r0, r0
+ strh r0, [r2, 0x26]
+_0814916C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149170: .4byte gUnknown_02039358
+ thumb_func_end sub_814910C
+
+ thumb_func_start sub_8149174
+sub_8149174: @ 8149174
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ movs r7, 0
+ cmp r7, r8
+ bcs _0814922A
+ ldr r0, _0814923C
+ mov r10, r0
+ movs r2, 0x3F
+ mov r9, r2
+_0814919E:
+ lsls r6, r7, 3
+ ldr r0, [sp, 0x4]
+ adds r6, r0
+ ldrb r1, [r6, 0x1]
+ ldrb r2, [r6, 0x2]
+ ldrb r3, [r6, 0x3]
+ ldr r0, _08149240
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ mov r2, r10
+ adds r4, r5, r2
+ ldrb r2, [r6]
+ lsls r1, r2, 26
+ lsrs r1, 30
+ lsrs r2, 6
+ adds r0, r4, 0
+ movs r3, 0
+ bl CalcCenterToCornerVec
+ ldrb r3, [r4, 0x5]
+ movs r0, 0xC
+ orrs r3, r0
+ strb r3, [r4, 0x5]
+ ldrb r1, [r6]
+ lsls r1, 26
+ lsrs r1, 30
+ lsls r1, 6
+ ldrb r2, [r4, 0x1]
+ mov r0, r9
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r6]
+ lsrs r1, 6
+ lsls r1, 6
+ ldrb r2, [r4, 0x3]
+ mov r0, r9
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ movs r0, 0xF
+ ands r3, r0
+ strb r3, [r4, 0x5]
+ ldr r0, _08149244
+ adds r5, r0
+ ldr r2, [sp, 0x8]
+ str r2, [r5]
+ ldrb r1, [r6]
+ lsls r1, 28
+ lsrs r1, 28
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ movs r1, 0
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, r8
+ bcc _0814919E
+_0814922A:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814923C: .4byte gSprites
+_08149240: .4byte gSpriteTemplate_8416B3C
+_08149244: .4byte gSprites + 0x8
+ thumb_func_end sub_8149174
+
+ thumb_func_start sub_8149248
+sub_8149248: @ 8149248
+ push {lr}
+ ldr r1, _0814925C
+ ldr r2, _08149260
+ movs r0, 0
+ movs r3, 0x9
+ bl sub_8149174
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814925C: .4byte gUnknown_08416B94
+_08149260: .4byte gSpriteAnimTable_8416B84
+ thumb_func_end sub_8149248
+
+ thumb_func_start sub_8149264
+sub_8149264: @ 8149264
+ push {lr}
+ ldr r1, _08149278
+ ldr r2, _0814927C
+ movs r0, 0x1
+ movs r3, 0xC
+ bl sub_8149174
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149278: .4byte gUnknown_08416C10
+_0814927C: .4byte gSpriteAnimTable_8416C04
+ thumb_func_end sub_8149264
+
+ thumb_func_start sub_8149280
+sub_8149280: @ 8149280
+ push {lr}
+ ldr r1, _08149294
+ ldr r2, _08149298
+ movs r0, 0x1
+ movs r3, 0x6
+ bl sub_8149174
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149294: .4byte gUnknown_08416C8C
+_08149298: .4byte gSpriteAnimTable_8416C88
+ thumb_func_end sub_8149280
+
+ thumb_func_start nullsub_82
+nullsub_82: @ 814929C
+ bx lr
+ thumb_func_end nullsub_82
+
+ thumb_func_start sub_81492A0
+sub_81492A0: @ 81492A0
+ push {r4,lr}
+ ldr r4, _0814930C
+ movs r1, 0x2E
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r1, [r1]
+ movs r2, 0x3E
+ adds r2, r0
+ mov r12, r2
+ movs r2, 0x4
+ ands r2, r1
+ mov r1, r12
+ ldrb r3, [r1]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ mov r2, r12
+ strb r1, [r2]
+ movs r1, 0x2E
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x20]
+ strh r1, [r0, 0x20]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x22]
+ adds r1, 0x8
+ strh r1, [r0, 0x22]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x24]
+ strh r1, [r0, 0x24]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x26]
+ strh r1, [r0, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814930C: .4byte gSprites
+ thumb_func_end sub_81492A0
+
+ thumb_func_start sub_8149310
+sub_8149310: @ 8149310
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r0, _0814935C
+ lsls r5, 16
+ asrs r5, 16
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _08149360
+ adds r4, 0x8
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08149364
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ strh r6, [r1, 0x2E]
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814935C: .4byte gSpriteTemplate_8416CDC
+_08149360: .4byte gSpriteTemplate_8416D2C
+_08149364: .4byte gSprites
+ thumb_func_end sub_8149310
+
+ thumb_func_start sub_8149368
+sub_8149368: @ 8149368
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r0, _081493B4
+ lsls r5, 16
+ asrs r5, 16
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _081493B8
+ adds r4, 0x8
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _081493BC
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ strh r6, [r1, 0x2E]
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081493B4: .4byte gSpriteTemplate_8416CF4
+_081493B8: .4byte gSpriteTemplate_8416D44
+_081493BC: .4byte gSprites
+ thumb_func_end sub_8149368
+
+ thumb_func_start nullsub_83
+nullsub_83: @ 81493C0
+ bx lr
+ thumb_func_end nullsub_83
+
+ thumb_func_start sub_81493C4
+sub_81493C4: @ 81493C4
+ push {r4,lr}
+ ldr r4, _08149420
+ movs r1, 0x2E
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r1, [r1]
+ movs r2, 0x3E
+ adds r2, r0
+ mov r12, r2
+ movs r2, 0x4
+ ands r2, r1
+ mov r1, r12
+ ldrb r3, [r1]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ mov r2, r12
+ strb r1, [r2]
+ movs r1, 0x2E
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x22]
+ strh r1, [r0, 0x22]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x24]
+ strh r1, [r0, 0x24]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x26]
+ strh r1, [r0, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149420: .4byte gSprites
+ thumb_func_end sub_81493C4
+
+ thumb_func_start sub_8149424
+sub_8149424: @ 8149424
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r2, r0, 0
+ adds r5, r1, 0
+ ldr r0, _08149490
+ mov r8, r0
+ lsls r2, 16
+ asrs r4, r2, 16
+ ldr r0, _08149494
+ adds r2, r0
+ asrs r2, 16
+ lsls r5, 16
+ asrs r5, 16
+ mov r0, r8
+ adds r1, r2, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ adds r4, 0x20
+ lsls r4, 16
+ asrs r4, 16
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08149498
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r4, r5
+ strh r6, [r0, 0x2E]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _0814949C
+ str r0, [r4]
+ adds r0, r6, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08149490: .4byte gSpriteTemplate_8416D7C
+_08149494: .4byte 0xffe00000
+_08149498: .4byte gSprites
+_0814949C: .4byte sub_81493C4
+ thumb_func_end sub_8149424
+
+ thumb_func_start sapphire_sub_81494A0
+sapphire_sub_81494A0: @ 81494A0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r2, r0, 0
+ adds r5, r1, 0
+ ldr r0, _0814950C
+ mov r8, r0
+ lsls r2, 16
+ asrs r4, r2, 16
+ ldr r0, _08149510
+ adds r2, r0
+ asrs r2, 16
+ lsls r5, 16
+ asrs r5, 16
+ mov r0, r8
+ adds r1, r2, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ adds r4, 0x20
+ lsls r4, 16
+ asrs r4, 16
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08149514
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r4, r5
+ strh r6, [r0, 0x2E]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _08149518
+ str r0, [r4]
+ adds r0, r6, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814950C: .4byte gSpriteTemplate_8416D94
+_08149510: .4byte 0xffe00000
+_08149514: .4byte gSprites
+_08149518: .4byte sub_81493C4
+ thumb_func_end sapphire_sub_81494A0
+
+ thumb_func_start nullsub_84
+nullsub_84: @ 814951C
+ bx lr
+ thumb_func_end nullsub_84
+
+ thumb_func_start sub_8149520
+sub_8149520: @ 8149520
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r4, 0
+ ldr r5, _08149554
+_08149528:
+ adds r0, r4, 0
+ adds r0, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r4, 1
+ adds r1, r5
+ ldrh r1, [r1]
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xB
+ bls _08149528
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149554: .4byte gUnknown_08416ED0
+ thumb_func_end sub_8149520
+
+ thumb_func_start sub_8149558
+sub_8149558: @ 8149558
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ ble _08149606
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ adds r1, r0, 0
+ muls r1, r0
+ adds r0, r1, 0
+ movs r1, 0x50
+ bl __divsi3
+ movs r1, 0x58
+ subs r1, r0
+ strh r1, [r4, 0x22]
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08149592
+ adds r0, 0x3
+_08149592:
+ asrs r0, 2
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x4
+ strh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x3C]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081495BC
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x1
+ strh r0, [r4, 0x38]
+_081495BC:
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ ble _081495D2
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1
+ b _081495D8
+_081495D2:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x14
+_081495D8:
+ strb r0, [r1]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bge _081495E4
+ adds r0, 0x3
+_081495E4:
+ asrs r0, 2
+ adds r0, 0x14
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1F
+ bls _081495F2
+ movs r2, 0x1F
+_081495F2:
+ movs r0, 0x1F
+ ands r2, r0
+ lsls r2, 1
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x3]
+ b _0814960C
+_08149606:
+ adds r0, r4, 0
+ bl DestroySprite
+_0814960C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8149558
+
+ thumb_func_start sub_8149614
+sub_8149614: @ 8149614
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _08149664
+ movs r1, 0x78
+ movs r2, 0x58
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0814965E
+ ldr r4, _08149668
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ adds r2, r3, r4
+ movs r1, 0
+ movs r0, 0x30
+ strh r0, [r2, 0x38]
+ strh r5, [r2, 0x3A]
+ strh r1, [r2, 0x3C]
+ ldrb r1, [r2, 0x1]
+ subs r0, 0x34
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r0, [r2, 0x3]
+ movs r1, 0x3E
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ adds r4, 0x1C
+ adds r3, r4
+ ldr r0, _0814966C
+ str r0, [r3]
+_0814965E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149664: .4byte gSpriteTemplate_8416EB8
+_08149668: .4byte gSprites
+_0814966C: .4byte sub_8149558
+ thumb_func_end sub_8149614
+
+ thumb_func_start sub_8149670
+sub_8149670: @ 8149670
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x57
+ bgt _081496D6
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ adds r1, r0, 0
+ muls r1, r0
+ adds r0, r1, 0
+ movs r1, 0x5
+ bl __divsi3
+ adds r0, 0x8
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _081496A8
+ adds r0, 0x3
+_081496A8:
+ asrs r0, 2
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ lsls r0, 26
+ lsrs r0, 24
+ movs r1, 0x28
+ bl Sin
+ adds r0, 0x8
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ b _081496DC
+_081496D6:
+ adds r0, r4, 0
+ bl DestroySprite
+_081496DC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8149670
+
+ thumb_func_start sub_81496E4
+sub_81496E4: @ 81496E4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _08149740
+ movs r1, 0x78
+ movs r2, 0x8
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0814973A
+ ldr r4, _08149744
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ adds r2, r3, r4
+ movs r1, 0
+ movs r0, 0x8
+ strh r0, [r2, 0x38]
+ strh r5, [r2, 0x3A]
+ strh r1, [r2, 0x3C]
+ ldrb r1, [r2, 0x1]
+ subs r0, 0xC
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x32
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ adds r2, 0x43
+ movs r0, 0x1
+ strb r0, [r2]
+ adds r4, 0x1C
+ adds r3, r4
+ ldr r0, _08149748
+ str r0, [r3]
+_0814973A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149740: .4byte gSpriteTemplate_8416EB8
+_08149744: .4byte gSprites
+_08149748: .4byte sub_8149670
+ thumb_func_end sub_81496E4
+
+ thumb_func_start sub_814974C
+sub_814974C: @ 814974C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ ble _08149788
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x38]
+ ldrh r1, [r4, 0x34]
+ subs r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x4
+ strh r0, [r4, 0x3A]
+ b _0814978E
+_08149788:
+ adds r0, r4, 0
+ bl DestroySprite
+_0814978E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814974C
+
+ thumb_func_start sub_8149794
+sub_8149794: @ 8149794
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _081497F0
+ movs r1, 0x78
+ movs r2, 0x38
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _081497EA
+ ldr r4, _081497F4
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ adds r2, r3, r4
+ movs r1, 0
+ strh r5, [r2, 0x34]
+ movs r0, 0x78
+ strh r0, [r2, 0x38]
+ strh r6, [r2, 0x3A]
+ strh r1, [r2, 0x3C]
+ ldrb r1, [r2, 0x1]
+ subs r0, 0x7C
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r0, [r2, 0x3]
+ movs r1, 0x3E
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ adds r2, 0x43
+ movs r0, 0x1
+ strb r0, [r2]
+ adds r4, 0x1C
+ adds r3, r4
+ ldr r0, _081497F8
+ str r0, [r3]
+_081497EA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081497F0: .4byte gSpriteTemplate_8416EB8
+_081497F4: .4byte gSprites
+_081497F8: .4byte sub_814974C
+ thumb_func_end sub_8149794
+
+ thumb_func_start sub_81497FC
+sub_81497FC: @ 81497FC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x3C]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08149810
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+_08149810:
+ ldrh r1, [r4, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x7F
+ bgt _081498C0
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r5, 0x38
+ ldrsh r1, [r4, r5]
+ bl Sin
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ muls r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ adds r0, 0x78
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x3A]
+ adds r3, r0, 0x1
+ strh r3, [r4, 0x3A]
+ movs r5, 0x3A
+ ldrsh r1, [r4, r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ cmp r0, 0
+ bge _08149854
+ adds r0, 0x7F
+_08149854:
+ asrs r0, 7
+ movs r1, 0x1F
+ subs r1, r0
+ lsls r1, 24
+ lsrs r2, r1, 24
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ ble _08149870
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1
+ strb r0, [r1]
+ b _081498A0
+_08149870:
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x14
+ strb r0, [r1]
+ ldrh r1, [r4, 0x3A]
+ movs r5, 0x3A
+ ldrsh r0, [r4, r5]
+ cmp r0, 0x70
+ ble _081498A0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081498A0
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+_081498A0:
+ cmp r2, 0x13
+ bhi _081498A6
+ movs r2, 0x14
+_081498A6:
+ movs r0, 0x1F
+ ands r2, r0
+ lsls r2, 1
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x3]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ b _081498C6
+_081498C0:
+ adds r0, r4, 0
+ bl DestroySprite
+_081498C6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81497FC
+
+ thumb_func_start sub_81498CC
+sub_81498CC: @ 81498CC
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, _08149948
+ movs r1, 0x78
+ movs r2, 0x38
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x40
+ beq _0814993C
+ bl Random
+ ldr r6, _0814994C
+ lsls r5, r4, 4
+ adds r5, r4
+ lsls r5, 2
+ adds r4, r5, r6
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x7
+ bl __umodsi3
+ movs r1, 0x3
+ subs r1, r0
+ movs r0, 0
+ mov r8, r0
+ strh r1, [r4, 0x34]
+ bl Random
+ movs r1, 0x3F
+ ands r1, r0
+ adds r1, 0x30
+ strh r1, [r4, 0x38]
+ mov r0, r8
+ strh r0, [r4, 0x3C]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3E
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ adds r4, 0x43
+ movs r0, 0x14
+ strb r0, [r4]
+ adds r6, 0x1C
+ adds r5, r6
+ ldr r0, _08149950
+ str r0, [r5]
+_0814993C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149948: .4byte gSpriteTemplate_8416EB8
+_0814994C: .4byte gSprites
+_08149950: .4byte sub_81497FC
+ thumb_func_end sub_81498CC
+
+ thumb_func_start sub_8149954
+sub_8149954: @ 8149954
+ push {lr}
+ ldr r0, _08149968
+ bl LoadCompressedObjectPic
+ ldr r0, _0814996C
+ bl LoadSpritePalettes
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149968: .4byte gUnknown_08416E84
+_0814996C: .4byte gUnknown_08416E94
+ thumb_func_end sub_8149954
+
+ thumb_func_start sub_8149970
+sub_8149970: @ 8149970
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _08149998
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0814999C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xA]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08149998: .4byte sub_81499A0
+_0814999C: .4byte gTasks
+ thumb_func_end sub_8149970
+
+ thumb_func_start sub_81499A0
+sub_81499A0: @ 81499A0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8149520
+ ldr r0, _081499E4
+ lsls r5, r4, 2
+ adds r5, r4
+ lsls r5, 3
+ adds r5, r0
+ movs r0, 0
+ strh r0, [r5, 0x26]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ movs r0, 0x3
+ lsls r0, r1
+ ldr r1, _081499E8
+ str r1, [sp]
+ movs r1, 0xA
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _081499EC
+ str r0, [r5]
+ movs r0, 0x8C
+ bl PlaySE
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081499E4: .4byte gTasks
+_081499E8: .4byte 0x00007fff
+_081499EC: .4byte sub_81499F0
+ thumb_func_end sub_81499A0
+
+ thumb_func_start sub_81499F0
+sub_81499F0: @ 81499F0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08149A48
+ lsls r3, r5, 2
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0x26]
+ movs r4, 0x26
+ ldrsh r0, [r1, r4]
+ cmp r0, 0x3F
+ bgt _08149A4C
+ movs r0, 0x7
+ ands r0, r2
+ adds r7, r3, 0
+ cmp r0, 0
+ bne _08149A36
+ movs r4, 0
+ adds r6, r1, 0
+_08149A18:
+ ldrh r1, [r6, 0x26]
+ movs r0, 0x78
+ ands r0, r1
+ lsls r0, 1
+ lsls r1, r4, 6
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8149614
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _08149A18
+_08149A36:
+ ldr r0, _08149A48
+ adds r1, r7, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _08149A54
+ .align 2, 0
+_08149A48: .4byte gTasks
+_08149A4C:
+ movs r0, 0x60
+ strh r0, [r1, 0x26]
+ ldr r0, _08149A5C
+ str r0, [r1]
+_08149A54:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149A5C: .4byte sub_8149A60
+ thumb_func_end sub_81499F0
+
+ thumb_func_start sub_8149A60
+sub_8149A60: @ 8149A60
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _08149A80
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r3, [r1, 0x26]
+ movs r4, 0x26
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ beq _08149A84
+ subs r0, r3, 0x1
+ strh r0, [r1, 0x26]
+ b _08149A8A
+ .align 2, 0
+_08149A80: .4byte gTasks
+_08149A84:
+ adds r0, r2, 0
+ bl DestroyTask
+_08149A8A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8149A60
+
+ thumb_func_start sub_8149A90
+sub_8149A90: @ 8149A90
+ push {lr}
+ ldr r0, _08149AA4
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08149AA4: .4byte sub_8149AA8
+ thumb_func_end sub_8149A90
+
+ thumb_func_start sub_8149AA8
+sub_8149AA8: @ 8149AA8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8149520
+ ldr r1, _08149AD4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x26]
+ ldr r1, _08149AD8
+ str r1, [r0]
+ movs r0, 0xB7
+ bl PlaySE
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149AD4: .4byte gTasks
+_08149AD8: .4byte sub_8149ADC
+ thumb_func_end sub_8149AA8
+
+ thumb_func_start sub_8149ADC
+sub_8149ADC: @ 8149ADC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08149B20
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r3, 0x26
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x5F
+ bgt _08149B24
+ adds r6, r2, 0
+ cmp r0, 0x5
+ bgt _08149B0E
+ movs r4, 0
+_08149AFC:
+ lsls r0, r4, 28
+ lsrs r0, 24
+ bl sub_81496E4
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x8
+ bls _08149AFC
+_08149B0E:
+ ldr r0, _08149B20
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _08149B28
+ .align 2, 0
+_08149B20: .4byte gTasks
+_08149B24:
+ ldr r0, _08149B30
+ str r0, [r1]
+_08149B28:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149B30: .4byte sub_8149B34
+ thumb_func_end sub_8149ADC
+
+ thumb_func_start sub_8149B34
+sub_8149B34: @ 8149B34
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8149B34
+
+ thumb_func_start sub_8149B44
+sub_8149B44: @ 8149B44
+ push {lr}
+ ldr r0, _08149B58
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08149B58: .4byte sub_8149B5C
+ thumb_func_end sub_8149B44
+
+ thumb_func_start sub_8149B5C
+sub_8149B5C: @ 8149B5C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8149520
+ ldr r1, _08149B88
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x26]
+ ldr r1, _08149B8C
+ str r1, [r0]
+ movs r0, 0x66
+ bl PlaySE
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149B88: .4byte gTasks
+_08149B8C: .4byte sub_8149B90
+ thumb_func_end sub_8149B5C
+
+ thumb_func_start sub_8149B90
+sub_8149B90: @ 8149B90
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08149BFC
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r3, 0x26
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x2F
+ bgt _08149C00
+ adds r6, r2, 0
+ cmp r0, 0
+ bne _08149BC4
+ movs r4, 0
+_08149BB0:
+ lsls r0, r4, 28
+ lsrs r0, 24
+ movs r1, 0x4
+ bl sub_8149794
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bls _08149BB0
+_08149BC4:
+ ldr r0, _08149BFC
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x26
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x20
+ bne _08149BEA
+ movs r4, 0
+_08149BD6:
+ lsls r0, r4, 28
+ lsrs r0, 24
+ movs r1, 0x8
+ bl sub_8149794
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bls _08149BD6
+_08149BEA:
+ ldr r0, _08149BFC
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _08149C04
+ .align 2, 0
+_08149BFC: .4byte gTasks
+_08149C00:
+ ldr r0, _08149C0C
+ str r0, [r1]
+_08149C04:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149C0C: .4byte sub_8149C10
+ thumb_func_end sub_8149B90
+
+ thumb_func_start sub_8149C10
+sub_8149C10: @ 8149C10
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8149C10
+
+ thumb_func_start sub_8149C20
+sub_8149C20: @ 8149C20
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _08149C48
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08149C4C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xC]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08149C48: .4byte sub_8149C50
+_08149C4C: .4byte gTasks
+ thumb_func_end sub_8149C20
+
+ thumb_func_start sub_8149C50
+sub_8149C50: @ 8149C50
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8149520
+ ldr r0, _08149C98
+ lsls r5, r4, 2
+ adds r5, r4
+ lsls r5, 3
+ adds r5, r0
+ movs r0, 0
+ strh r0, [r5, 0x26]
+ ldr r0, _08149C9C
+ ldr r1, _08149CA0
+ movs r2, 0x30
+ bl CpuSet
+ ldr r0, _08149CA4
+ ldr r1, _08149CA8
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08149CAC
+ str r0, [r5]
+ movs r0, 0xCA
+ bl PlaySE
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149C98: .4byte gTasks
+_08149C9C: .4byte gPlttBufferFaded + 0x40
+_08149CA0: .4byte gPlttBufferUnfaded + 0x40
+_08149CA4: .4byte 0xfff9001c
+_08149CA8: .4byte 0x00007fff
+_08149CAC: .4byte sub_8149CB0
+ thumb_func_end sub_8149C50
+
+ thumb_func_start sub_8149CB0
+sub_8149CB0: @ 8149CB0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _08149CE8
+ lsls r5, r6, 2
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r0, 0x26
+ ldrsh r2, [r1, r0]
+ cmp r2, 0x7F
+ bgt _08149D2C
+ adds r0, r2, 0
+ cmp r0, 0
+ beq _08149CEC
+ cmp r0, 0x20
+ beq _08149D00
+ cmp r2, 0x31
+ bgt _08149D10
+ bl Random
+ movs r1, 0x7
+ ands r0, r1
+ bl sub_81498CC
+ b _08149D10
+ .align 2, 0
+_08149CE8: .4byte gTasks
+_08149CEC:
+ movs r4, 0
+_08149CEE:
+ adds r0, r4, 0
+ bl sub_81498CC
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _08149CEE
+ b _08149D10
+_08149D00:
+ ldr r0, _08149D20
+ ldr r1, _08149D24
+ str r1, [sp]
+ movs r1, 0x10
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_08149D10:
+ ldr r0, _08149D28
+ adds r1, r5, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _08149D30
+ .align 2, 0
+_08149D20: .4byte 0xffff001c
+_08149D24: .4byte 0x00007fff
+_08149D28: .4byte gTasks
+_08149D2C:
+ ldr r0, _08149D38
+ str r0, [r1]
+_08149D30:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149D38: .4byte sub_8149D3C
+ thumb_func_end sub_8149CB0
+
+ thumb_func_start sub_8149D3C
+sub_8149D3C: @ 8149D3C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08149D58
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08149D54
+ adds r0, r2, 0
+ bl DestroyTask
+_08149D54:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149D58: .4byte gPaletteFade
+ thumb_func_end sub_8149D3C
+
+ thumb_func_start sub_8149D5C
+sub_8149D5C: @ 8149D5C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _08149D84
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08149D88
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xC]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08149D84: .4byte sub_8149D8C
+_08149D88: .4byte gTasks
+ thumb_func_end sub_8149D5C
+
+ thumb_func_start sub_8149D8C
+sub_8149D8C: @ 8149D8C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8149520
+ ldr r0, _08149DD4
+ lsls r5, r4, 2
+ adds r5, r4
+ lsls r5, 3
+ adds r5, r0
+ movs r0, 0
+ strh r0, [r5, 0x26]
+ ldr r0, _08149DD8
+ ldr r1, _08149DDC
+ movs r2, 0x30
+ bl CpuSet
+ ldr r0, _08149DE0
+ ldr r1, _08149DE4
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08149DE8
+ str r0, [r5]
+ movs r0, 0xCA
+ bl PlaySE
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149DD4: .4byte gTasks
+_08149DD8: .4byte gPlttBufferFaded + 0x40
+_08149DDC: .4byte gPlttBufferUnfaded + 0x40
+_08149DE0: .4byte 0xfff90001
+_08149DE4: .4byte 0x00007fff
+_08149DE8: .4byte sub_8149DEC
+ thumb_func_end sub_8149D8C
+
+ thumb_func_start sub_8149DEC
+sub_8149DEC: @ 8149DEC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _08149E24
+ lsls r5, r6, 2
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r0, 0x26
+ ldrsh r2, [r1, r0]
+ cmp r2, 0x7F
+ bgt _08149E68
+ adds r0, r2, 0
+ cmp r0, 0
+ beq _08149E28
+ cmp r0, 0x20
+ beq _08149E3C
+ cmp r2, 0x31
+ bgt _08149E4C
+ bl Random
+ movs r1, 0x7
+ ands r0, r1
+ bl sub_81498CC
+ b _08149E4C
+ .align 2, 0
+_08149E24: .4byte gTasks
+_08149E28:
+ movs r4, 0
+_08149E2A:
+ adds r0, r4, 0
+ bl sub_81498CC
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _08149E2A
+ b _08149E4C
+_08149E3C:
+ ldr r0, _08149E5C
+ ldr r1, _08149E60
+ str r1, [sp]
+ movs r1, 0x10
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_08149E4C:
+ ldr r0, _08149E64
+ adds r1, r5, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _08149E6C
+ .align 2, 0
+_08149E5C: .4byte 0xffff0001
+_08149E60: .4byte 0x00007fff
+_08149E64: .4byte gTasks
+_08149E68:
+ ldr r0, _08149E74
+ str r0, [r1]
+_08149E6C:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149E74: .4byte sub_8149D3C
+ thumb_func_end sub_8149DEC
+
+ thumb_func_start nullsub_85
+nullsub_85: @ 8149E78
+ bx lr
+ thumb_func_end nullsub_85
+
+ thumb_func_start sub_8149E7C
+sub_8149E7C: @ 8149E7C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ movs r1, 0
+ ldr r3, _08149FB0
+ ldr r2, _08149FB4
+_08149E96:
+ lsls r0, r1, 1
+ add r0, sp
+ adds r0, 0x4
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xF
+ bls _08149E96
+ adds r0, r3, 0
+ movs r1, 0
+ bl CreateTask
+ mov r8, r0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _08149FB8
+ mov r1, r8
+ lsls r6, r1, 2
+ add r6, r8
+ lsls r6, 3
+ adds r6, r0
+ strh r5, [r6, 0xA]
+ strh r7, [r6, 0xC]
+ movs r1, 0x80
+ lsls r1, 1
+ strh r1, [r6, 0xE]
+ movs r0, 0x10
+ strh r0, [r6, 0x10]
+ movs r4, 0x80
+ lsls r4, 9
+ str r1, [sp]
+ movs r0, 0x1E
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ movs r0, 0x10
+ ldrsh r1, [r6, r0]
+ adds r0, r4, 0
+ bl __divsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ movs r0, 0x1F
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ ldr r1, _08149FBC
+ mov r9, r1
+ lsls r2, r5, 4
+ adds r2, r5
+ lsls r2, 2
+ mov r3, r9
+ adds r3, 0x1C
+ adds r0, r2, r3
+ ldr r1, _08149FC0
+ str r1, [r0]
+ add r2, r9
+ ldrb r1, [r2, 0x1]
+ movs r4, 0x4
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x3C
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ movs r0, 0x3E
+ adds r0, r2
+ mov r10, r0
+ ldrb r1, [r0]
+ movs r5, 0x5
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r1
+ mov r1, r10
+ strb r0, [r1]
+ ldrb r1, [r2, 0x5]
+ lsrs r1, 4
+ lsls r1, 5
+ ldr r0, _08149FC4
+ mov r10, r0
+ add r1, r10
+ add r0, sp, 0x4
+ movs r2, 0x10
+ str r3, [sp, 0x24]
+ bl CpuSet
+ lsls r1, r7, 4
+ adds r1, r7
+ lsls r1, 2
+ ldr r3, [sp, 0x24]
+ adds r3, r1, r3
+ ldr r0, _08149FC0
+ str r0, [r3]
+ add r1, r9
+ ldrb r0, [r1, 0x1]
+ ands r4, r0
+ movs r0, 0x1
+ orrs r4, r0
+ strb r4, [r1, 0x1]
+ ldrb r0, [r1, 0x3]
+ movs r2, 0x3E
+ orrs r0, r2
+ strb r0, [r1, 0x3]
+ adds r2, r1, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ ands r5, r0
+ strb r5, [r2]
+ ldrb r1, [r1, 0x5]
+ lsrs r1, 4
+ lsls r1, 5
+ add r1, r10
+ add r0, sp, 0x4
+ movs r2, 0x10
+ bl CpuSet
+ movs r1, 0
+ strh r1, [r6, 0x18]
+ mov r0, r8
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08149FB0: .4byte sub_8149FC8
+_08149FB4: .4byte 0x00007fff
+_08149FB8: .4byte gTasks
+_08149FBC: .4byte gSprites
+_08149FC0: .4byte nullsub_85
+_08149FC4: .4byte gPlttBufferFaded + 0x200
+ thumb_func_end sub_8149E7C
+
+ thumb_func_start sub_8149FC8
+sub_8149FC8: @ 8149FC8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08149FE4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x12]
+ movs r0, 0x8
+ strh r0, [r1, 0x14]
+ ldr r0, _08149FE8
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08149FE4: .4byte gTasks
+_08149FE8: .4byte sub_8149FEC
+ thumb_func_end sub_8149FC8
+
+ thumb_func_start sub_8149FEC
+sub_8149FEC: @ 8149FEC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _0814A00C
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r1, 0x18
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _0814A010
+ adds r0, r3, 0
+ bl sub_814A208
+ b _0814A032
+ .align 2, 0
+_0814A00C: .4byte gTasks
+_0814A010:
+ ldrh r1, [r2, 0x14]
+ movs r4, 0x14
+ ldrsh r0, [r2, r4]
+ cmp r0, 0x80
+ bne _0814A022
+ adds r0, r3, 0
+ bl sub_814A158
+ b _0814A032
+_0814A022:
+ adds r0, r1, 0x2
+ strh r0, [r2, 0x14]
+ ldrh r0, [r2, 0x12]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r2, 0x12]
+ ldr r0, _0814A038
+ str r0, [r2]
+_0814A032:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814A038: .4byte sub_814A03C
+ thumb_func_end sub_8149FEC
+
+ thumb_func_start sub_814A03C
+sub_814A03C: @ 814A03C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _0814A060
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x18
+ ldrsh r0, [r2, r3]
+ adds r5, r1, 0
+ cmp r0, 0
+ beq _0814A068
+ ldr r0, _0814A064
+ str r0, [r2]
+ b _0814A14C
+ .align 2, 0
+_0814A060: .4byte gTasks
+_0814A064: .4byte sub_814A208
+_0814A068:
+ movs r6, 0
+ movs r7, 0x12
+ ldrsh r0, [r2, r7]
+ cmp r0, 0
+ bne _0814A0B8
+ movs r0, 0xE
+ ldrsh r1, [r2, r0]
+ movs r3, 0x14
+ ldrsh r0, [r2, r3]
+ movs r3, 0x80
+ lsls r3, 1
+ subs r0, r3, r0
+ cmp r1, r0
+ bge _0814A08E
+ ldrh r0, [r2, 0x14]
+ ldrh r7, [r2, 0xE]
+ adds r0, r7
+ strh r0, [r2, 0xE]
+ b _0814A092
+_0814A08E:
+ strh r3, [r2, 0xE]
+ movs r6, 0x1
+_0814A092:
+ lsls r2, r4, 2
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r3, r0, r5
+ movs r0, 0x10
+ ldrsh r1, [r3, r0]
+ movs r7, 0x14
+ ldrsh r0, [r3, r7]
+ adds r0, 0x10
+ cmp r1, r0
+ ble _0814A0B2
+ ldrh r0, [r3, 0x10]
+ ldrh r1, [r3, 0x14]
+ subs r0, r1
+ strh r0, [r3, 0x10]
+ b _0814A102
+_0814A0B2:
+ movs r0, 0x10
+ strh r0, [r3, 0x10]
+ b _0814A0FC
+_0814A0B8:
+ movs r0, 0x10
+ ldrsh r1, [r2, r0]
+ movs r3, 0x14
+ ldrsh r0, [r2, r3]
+ movs r3, 0x80
+ lsls r3, 1
+ subs r0, r3, r0
+ cmp r1, r0
+ bge _0814A0D4
+ ldrh r0, [r2, 0x14]
+ ldrh r7, [r2, 0x10]
+ adds r0, r7
+ strh r0, [r2, 0x10]
+ b _0814A0D8
+_0814A0D4:
+ strh r3, [r2, 0x10]
+ movs r6, 0x1
+_0814A0D8:
+ lsls r2, r4, 2
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r3, r0, r5
+ movs r0, 0xE
+ ldrsh r1, [r3, r0]
+ movs r7, 0x14
+ ldrsh r0, [r3, r7]
+ adds r0, 0x10
+ cmp r1, r0
+ ble _0814A0F8
+ ldrh r0, [r3, 0xE]
+ ldrh r1, [r3, 0x14]
+ subs r0, r1
+ strh r0, [r3, 0xE]
+ b _0814A102
+_0814A0F8:
+ movs r0, 0x10
+ strh r0, [r3, 0xE]
+_0814A0FC:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0814A102:
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r5, r0, r5
+ movs r0, 0xE
+ ldrsh r1, [r5, r0]
+ movs r4, 0x80
+ lsls r4, 9
+ adds r0, r4, 0
+ bl __divsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ movs r0, 0x1E
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ movs r3, 0x10
+ ldrsh r1, [r5, r3]
+ adds r0, r4, 0
+ bl __divsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ movs r0, 0x1F
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ cmp r6, 0x2
+ bne _0814A14C
+ ldr r0, _0814A154
+ str r0, [r5]
+_0814A14C:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814A154: .4byte sub_8149FEC
+ thumb_func_end sub_814A03C
+
+ thumb_func_start sub_814A158
+sub_814A158: @ 814A158
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0814A200
+ mov r8, r1
+ ldr r1, _0814A204
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ add r2, r8
+ ldrb r3, [r2, 0x1]
+ movs r6, 0x4
+ negs r6, r6
+ adds r1, r6, 0
+ ands r1, r3
+ strb r1, [r2, 0x1]
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ add r2, r8
+ ldrb r3, [r2, 0x3]
+ movs r5, 0x3F
+ negs r5, r5
+ adds r1, r5, 0
+ ands r1, r3
+ strb r1, [r2, 0x3]
+ movs r1, 0xA
+ ldrsh r2, [r4, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r8
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r3, 0x4
+ orrs r2, r3
+ strb r2, [r1]
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r8
+ ldrb r2, [r1, 0x1]
+ ands r6, r2
+ strb r6, [r1, 0x1]
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r8
+ ldrb r2, [r1, 0x3]
+ ands r5, r2
+ strb r5, [r1, 0x3]
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r8
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ ands r2, r3
+ strb r2, [r1]
+ bl DestroyTask
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814A200: .4byte gSprites
+_0814A204: .4byte gTasks
+ thumb_func_end sub_814A158
+
+ thumb_func_start sub_814A208
+sub_814A208: @ 814A208
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0814A2B0
+ mov r8, r1
+ ldr r1, _0814A2B4
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ add r2, r8
+ ldrb r3, [r2, 0x1]
+ movs r6, 0x4
+ negs r6, r6
+ adds r1, r6, 0
+ ands r1, r3
+ strb r1, [r2, 0x1]
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ add r2, r8
+ ldrb r3, [r2, 0x3]
+ movs r5, 0x3F
+ negs r5, r5
+ adds r1, r5, 0
+ ands r1, r3
+ strb r1, [r2, 0x3]
+ movs r1, 0xA
+ ldrsh r2, [r4, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r8
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ ands r2, r3
+ strb r2, [r1]
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r8
+ ldrb r2, [r1, 0x1]
+ ands r6, r2
+ strb r6, [r1, 0x1]
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r8
+ ldrb r2, [r1, 0x3]
+ ands r5, r2
+ strb r5, [r1, 0x3]
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r8
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r3, 0x4
+ orrs r2, r3
+ strb r2, [r1]
+ bl DestroyTask
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814A2B0: .4byte gSprites
+_0814A2B4: .4byte gTasks
+ thumb_func_end sub_814A208
+
+ thumb_func_start sub_814A2B8
+sub_814A2B8: @ 814A2B8
+ ldr r2, _0814A2CC
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ lsls r1, 1
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ bx lr
+ .align 2, 0
+_0814A2CC: .4byte gUnknown_08417068
+ thumb_func_end sub_814A2B8
+
+ thumb_func_start sub_814A2D0
+sub_814A2D0: @ 814A2D0
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, _0814A2E8
+ lsrs r0, 14
+ adds r0, r2
+ ldr r0, [r0]
+ lsls r2, r1, 1
+ adds r2, r1
+ lsls r2, 4
+ adds r0, r2
+ bx lr
+ .align 2, 0
+_0814A2E8: .4byte gBardMusicTable
+ thumb_func_end sub_814A2D0
+
+ thumb_func_start sub_814A2EC
+sub_814A2EC: @ 814A2EC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ mov r9, r2
+ ldr r4, _0814A370
+ adds r2, r1, 0
+ adds r3, r6, 0
+ adds r3, 0x18
+ movs r7, 0x5
+_0814A306:
+ ldrb r0, [r2]
+ strh r0, [r3]
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _0814A328
+ movs r1, 0x1
+ ldrsb r1, [r2, r1]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ adds r1, r0
+ strh r1, [r3, 0x2]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r3, 0x6]
+ ldrh r0, [r6, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x4]
+_0814A328:
+ adds r2, 0x8
+ adds r3, 0x8
+ subs r7, 0x1
+ cmp r7, 0
+ bge _0814A306
+ movs r7, 0x6
+ movs r5, 0
+ movs r0, 0x1E
+ mov r8, r0
+ adds r4, r6, 0
+_0814A33C:
+ mov r0, r8
+ add r0, r9
+ adds r1, r5, 0
+ bl sub_814A2B8
+ adds r1, r0, 0
+ strh r1, [r4, 0x1C]
+ adds r4, 0x8
+ adds r5, 0x1
+ cmp r5, r7
+ blt _0814A33C
+ ldrb r1, [r6]
+ adds r1, 0x1
+ movs r2, 0
+ strb r1, [r6]
+ strb r2, [r6, 0x1]
+ strb r2, [r6, 0x2]
+ strb r2, [r6, 0x3]
+ strh r2, [r6, 0xA]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A370: .4byte gUnknown_084170F4
+ thumb_func_end sub_814A2EC
+
+ thumb_func_start SetUpFieldMove_Teleport
+SetUpFieldMove_Teleport: @ 814A374
+ push {lr}
+ ldr r0, _0814A38C
+ ldrb r0, [r0, 0x17]
+ bl is_light_level_1_2_3_or_6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0814A390
+ movs r0, 0
+ b _0814A39E
+ .align 2, 0
+_0814A38C: .4byte gMapHeader
+_0814A390:
+ ldr r1, _0814A3A4
+ ldr r0, _0814A3A8
+ str r0, [r1]
+ ldr r1, _0814A3AC
+ ldr r0, _0814A3B0
+ str r0, [r1]
+ movs r0, 0x1
+_0814A39E:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A3A4: .4byte gUnknown_0300485C
+_0814A3A8: .4byte sub_808AB90
+_0814A3AC: .4byte gUnknown_03005CE4
+_0814A3B0: .4byte hm_teleport_run_dp02scr
+ thumb_func_end SetUpFieldMove_Teleport
+
+ thumb_func_start hm_teleport_run_dp02scr
+hm_teleport_run_dp02scr: @ 814A3B4
+ push {lr}
+ bl new_game
+ movs r0, 0x3F
+ bl FieldEffectStart
+ ldr r0, _0814A3CC
+ ldr r1, _0814A3D0
+ ldrb r1, [r1]
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814A3CC: .4byte gUnknown_0202FF84
+_0814A3D0: .4byte gUnknown_03005CE0
+ thumb_func_end hm_teleport_run_dp02scr
+
+ thumb_func_start FldEff_UseTeleport
+FldEff_UseTeleport: @ 814A3D4
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0814A3FC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _0814A400
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0x1
+ bl SetPlayerAvatarTransitionFlags
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A3FC: .4byte gTasks
+_0814A400: .4byte sub_814A404
+ thumb_func_end FldEff_UseTeleport
+
+ thumb_func_start sub_814A404
+sub_814A404: @ 814A404
+ push {lr}
+ movs r0, 0x3F
+ bl FieldEffectActiveListRemove
+ bl sub_8087BA8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814A404
+
+ thumb_func_start unref_sub_814A414
+unref_sub_814A414: @ 814A414
+ push {lr}
+ sub sp, 0x8
+ bl MenuZeroFillScreen
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0x12
+ bl MenuDrawTextWindow
+ ldr r3, _0814A458
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0x8
+ bl PrintMenuItems
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x8
+ bl InitMenu
+ ldr r1, _0814A45C
+ ldr r0, _0814A460
+ str r0, [r1]
+ movs r0, 0
+ add sp, 0x8
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A458: .4byte gUnknown_0842C29C
+_0814A45C: .4byte gCallback_03004AE8
+_0814A460: .4byte sub_814A464
+ thumb_func_end unref_sub_814A414
+
+ thumb_func_start sub_814A464
+sub_814A464: @ 814A464
+ push {lr}
+ bl ProcessMenuInput
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ lsls r0, r2, 24
+ asrs r1, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ bne _0814A480
+ movs r0, 0
+ b _0814A4B2
+_0814A480:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0814A4AC
+ ldr r0, _0814A4A0
+ strb r2, [r0]
+ ldr r2, _0814A4A4
+ ldr r0, _0814A4A8
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ movs r0, 0
+ b _0814A4B2
+ .align 2, 0
+_0814A4A0: .4byte gUnknown_02024D1E
+_0814A4A4: .4byte gCallback_03004AE8
+_0814A4A8: .4byte gUnknown_0842C29C
+_0814A4AC:
+ bl sub_8071C20
+ movs r0, 0x1
+_0814A4B2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814A464
+
+ thumb_func_start sub_814A4B8
+sub_814A4B8: @ 814A4B8
+ push {r4,lr}
+ ldr r2, _0814A4FC
+ ldr r1, _0814A500
+ adds r0, r2, r1
+ movs r1, 0x3
+ strb r1, [r0]
+ ldr r3, _0814A504
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r3, _0814A508
+ ldrb r0, [r3]
+ adds r0, 0x1
+ ldr r4, _0814A50C
+ adds r1, r2, r4
+ strh r0, [r1]
+ ldrb r0, [r3]
+ adds r0, 0x1
+ ldr r3, _0814A510
+ adds r1, r2, r3
+ strh r0, [r1]
+ subs r4, 0x4
+ adds r0, r2, r4
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _0814A514
+ adds r2, r0
+ strh r1, [r2]
+ bl sub_8071C20
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A4FC: .4byte gSaveBlock2
+_0814A500: .4byte 0x00000556
+_0814A504: .4byte 0x00000557
+_0814A508: .4byte gUnknown_02024D1E
+_0814A50C: .4byte 0x0000055c
+_0814A510: .4byte 0x0000055e
+_0814A514: .4byte 0x0000055a
+ thumb_func_end sub_814A4B8
+
+ thumb_func_start sub_814A518
+sub_814A518: @ 814A518
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ bl SkipExtCtrlCodes
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r5, 0xFC
+ bne _0814A556
+ cmp r1, 0x5
+ bhi _0814A55A
+ movs r3, 0xFC
+ movs r2, 0x7
+_0814A53A:
+ adds r0, r4, r1
+ strb r3, [r0]
+ strb r2, [r0, 0x1]
+ adds r0, r1, 0x2
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x5
+ bls _0814A53A
+ b _0814A55A
+_0814A54C:
+ adds r0, r4, r1
+ strb r5, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+_0814A556:
+ cmp r1, 0x5
+ bls _0814A54C
+_0814A55A:
+ adds r1, r4, r1
+ movs r0, 0xFF
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814A518
+
+ thumb_func_start sub_814A568
+sub_814A568: @ 814A568
+ push {r4,lr}
+ adds r4, r0, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5
+ bhi _0814A582
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ConvertInternationalString
+ b _0814A588
+_0814A582:
+ adds r0, r4, 0
+ bl SkipExtCtrlCodes
+_0814A588:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814A568
+
+ thumb_func_start sub_814A590
+sub_814A590: @ 814A590
+ ldr r0, _0814A5AC
+ movs r1, 0x40
+ strb r1, [r0]
+ ldr r0, _0814A5B0
+ strb r1, [r0]
+ ldr r0, _0814A5B4
+ strb r1, [r0]
+ ldr r0, _0814A5B8
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _0814A5BC
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_0814A5AC: .4byte gUnknown_0203A3D0
+_0814A5B0: .4byte gUnknown_0203A3D1
+_0814A5B4: .4byte gUnknown_0203A3D2
+_0814A5B8: .4byte gUnknown_0203A3D3
+_0814A5BC: .4byte gUnknown_0203A3D4
+ thumb_func_end sub_814A590
+
+ thumb_func_start sub_814A5C0
+sub_814A5C0: @ 814A5C0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r4, [sp, 0x1C]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 16
+ lsrs r7, r3, 16
+ lsls r4, 24
+ lsrs r4, 24
+ mov r9, r4
+ ldr r0, _0814A678
+ ldrb r0, [r0]
+ cmp r0, 0x40
+ bne _0814A5F2
+ ldr r0, _0814A67C
+ ldrb r0, [r0]
+ cmp r0, 0x40
+ beq _0814A5F6
+_0814A5F2:
+ bl sub_814A7FC
+_0814A5F6:
+ movs r4, 0x1
+ ldr r0, _0814A680
+ cmp r6, r0
+ bne _0814A61C
+ ldr r1, _0814A684
+ movs r0, 0xF
+ ands r0, r5
+ lsls r0, 1
+ adds r0, r1
+ strh r7, [r0]
+ ldr r0, _0814A688
+ bl LoadSpritePalette
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0814A61C
+ ldr r6, _0814A68C
+ movs r4, 0
+_0814A61C:
+ movs r7, 0xF
+ adds r0, r5, 0
+ ands r0, r7
+ lsls r0, 3
+ ldr r1, _0814A690
+ adds r0, r1
+ bl LoadSpriteSheetDeferred
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ ldr r4, _0814A694
+ adds r0, r4
+ movs r1, 0
+ movs r2, 0xA0
+ mov r3, r8
+ bl CreateSprite
+ ldr r5, _0814A678
+ strb r0, [r5]
+ adds r4, 0x30
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0xA0
+ mov r3, r8
+ bl CreateSprite
+ ldr r1, _0814A67C
+ strb r0, [r1]
+ ldrb r0, [r5]
+ cmp r0, 0x40
+ beq _0814A6AE
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814A698
+ adds r4, r0, r1
+ ldr r0, _0814A680
+ cmp r6, r0
+ bne _0814A69C
+ ldrb r1, [r4, 0x5]
+ adds r0, r7, 0
+ ands r0, r1
+ strb r0, [r4, 0x5]
+ b _0814A6AE
+ .align 2, 0
+_0814A678: .4byte gUnknown_0203A3D0
+_0814A67C: .4byte gUnknown_0203A3D1
+_0814A680: .4byte 0x0000ffff
+_0814A684: .4byte gUnknown_0203A360
+_0814A688: .4byte gUnknown_0842F240
+_0814A68C: .4byte 0x0000fff0
+_0814A690: .4byte gUnknown_0842F140
+_0814A694: .4byte gSpriteTemplate_842F250
+_0814A698: .4byte gSprites
+_0814A69C:
+ adds r0, r6, 0
+ bl IndexOfSpritePaletteTag
+ lsls r0, 4
+ ldrb r2, [r4, 0x5]
+ adds r1, r7, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+_0814A6AE:
+ ldr r1, _0814A6D4
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814A72C
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814A6D8
+ adds r4, r0, r1
+ ldr r0, _0814A6DC
+ cmp r6, r0
+ bne _0814A6E0
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ strb r0, [r4, 0x5]
+ b _0814A6F2
+ .align 2, 0
+_0814A6D4: .4byte gUnknown_0203A3D1
+_0814A6D8: .4byte gSprites
+_0814A6DC: .4byte 0x0000ffff
+_0814A6E0:
+ adds r0, r6, 0
+ bl IndexOfSpritePaletteTag
+ lsls r0, 4
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+_0814A6F2:
+ movs r3, 0x80
+ lsls r3, 19
+ ldrh r1, [r3]
+ movs r0, 0xC0
+ lsls r0, 7
+ ands r0, r1
+ cmp r0, 0
+ bne _0814A70C
+ ldr r0, _0814A744
+ ldrb r1, [r0]
+ movs r2, 0x1F
+ orrs r1, r2
+ strb r1, [r0]
+_0814A70C:
+ ldr r1, _0814A748
+ ldrh r0, [r3]
+ lsrs r0, 15
+ strb r0, [r1]
+ ldr r1, _0814A74C
+ ldr r2, _0814A750
+ ldrb r0, [r2]
+ strb r0, [r1]
+ ldrh r0, [r3]
+ movs r4, 0x80
+ lsls r4, 8
+ adds r1, r4, 0
+ orrs r0, r1
+ strh r0, [r3]
+ movs r0, 0x10
+ strb r0, [r2]
+_0814A72C:
+ mov r0, r9
+ bl sub_814A958
+ ldr r0, _0814A754
+ ldrb r0, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A744: .4byte REG_WINOUT
+_0814A748: .4byte gUnknown_0203A3D3
+_0814A74C: .4byte gUnknown_0203A3D4
+_0814A750: .4byte 0x0400004b
+_0814A754: .4byte gUnknown_0203A3D0
+ thumb_func_end sub_814A5C0
+
+ thumb_func_start sub_814A758
+sub_814A758: @ 814A758
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp]
+ movs r1, 0
+ movs r3, 0
+ bl sub_814A5C0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ cmp r4, 0x40
+ beq _0814A79A
+ ldr r0, _0814A7A4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0814A7A8
+ adds r1, r0
+ lsls r3, r5, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+_0814A79A:
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A7A4: .4byte gUnknown_0203A3D0
+_0814A7A8: .4byte gSprites
+ thumb_func_end sub_814A758
+
+ thumb_func_start unref_sub_814A7AC
+unref_sub_814A7AC: @ 814A7AC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 24
+ lsrs r7, r2, 24
+ movs r3, 0
+ movs r2, 0xF
+ movs r1, 0
+ ldr r6, _0814A7F8
+ movs r5, 0xF
+_0814A7C6:
+ lsls r0, r1, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ cmp r0, r4
+ bne _0814A7DA
+ lsrs r0, r1, 4
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r2, r1, 0
+ ands r2, r5
+_0814A7DA:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xFF
+ bls _0814A7C6
+ mov r0, r12
+ adds r1, r3, 0
+ adds r3, r7, 0
+ bl sub_814A758
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A7F8: .4byte gPlttBufferUnfaded
+ thumb_func_end unref_sub_814A7AC
+
+ thumb_func_start sub_814A7FC
+sub_814A7FC: @ 814A7FC
+ push {r4,lr}
+ ldr r4, _0814A860
+ ldrb r0, [r4]
+ cmp r0, 0x40
+ beq _0814A820
+ ldr r0, _0814A864
+ bl LoadTilesForSpriteSheet
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814A868
+ adds r0, r1
+ bl DestroySpriteAndFreeResources
+ movs r0, 0x40
+ strb r0, [r4]
+_0814A820:
+ ldr r4, _0814A86C
+ ldrb r0, [r4]
+ cmp r0, 0x40
+ beq _0814A858
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814A868
+ adds r0, r1
+ bl DestroySpriteAndFreeResources
+ movs r0, 0x40
+ strb r0, [r4]
+ ldr r0, _0814A870
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0814A850
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _0814A874
+ ands r0, r1
+ strh r0, [r2]
+_0814A850:
+ ldr r0, _0814A878
+ ldr r1, _0814A87C
+ ldrb r1, [r1]
+ strb r1, [r0]
+_0814A858:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814A860: .4byte gUnknown_0203A3D0
+_0814A864: .4byte gUnknown_0842F140
+_0814A868: .4byte gSprites
+_0814A86C: .4byte gUnknown_0203A3D1
+_0814A870: .4byte gUnknown_0203A3D3
+_0814A874: .4byte 0x00007fff
+_0814A878: .4byte 0x0400004b
+_0814A87C: .4byte gUnknown_0203A3D4
+ thumb_func_end sub_814A7FC
+
+ thumb_func_start sub_814A880
+sub_814A880: @ 814A880
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, r5, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r6, r4, 0
+ ldr r1, _0814A8F8
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814A8C0
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814A8FC
+ adds r2, r0, r1
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ adds r0, r2, 0
+ adds r0, 0x28
+ movs r1, 0
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ strh r5, [r2, 0x20]
+ strh r4, [r2, 0x22]
+_0814A8C0:
+ ldr r1, _0814A900
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814A8F2
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814A8FC
+ adds r2, r0, r1
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ adds r0, r2, 0
+ adds r0, 0x28
+ movs r1, 0
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ strh r7, [r2, 0x20]
+ strh r6, [r2, 0x22]
+_0814A8F2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814A8F8: .4byte gUnknown_0203A3D0
+_0814A8FC: .4byte gSprites
+_0814A900: .4byte gUnknown_0203A3D1
+ thumb_func_end sub_814A880
+
+ thumb_func_start sub_814A904
+sub_814A904: @ 814A904
+ push {lr}
+ ldr r1, _0814A94C
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814A926
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814A950
+ adds r0, r1
+ adds r2, r0, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_0814A926:
+ ldr r1, _0814A954
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814A946
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814A950
+ adds r0, r1
+ adds r2, r0, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_0814A946:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814A94C: .4byte gUnknown_0203A3D0
+_0814A950: .4byte gSprites
+_0814A954: .4byte gUnknown_0203A3D1
+ thumb_func_end sub_814A904
+
+ thumb_func_start sub_814A958
+sub_814A958: @ 814A958
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ ldr r4, _0814A9C4
+ ldr r2, _0814A9C8
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0
+ movs r1, 0x2
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ strh r2, [r4]
+ adds r4, 0x8
+ movs r7, 0x1
+ movs r2, 0x1
+ ldr r1, [sp]
+ subs r0, r1, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _0814AA3A
+ ldr r0, _0814A9CC
+ mov r12, r0
+ mov r8, r1
+ movs r1, 0x8
+ negs r1, r1
+ mov r10, r1
+ ldr r5, _0814A9D0
+ mov r9, r5
+_0814A99E:
+ lsls r0, r3, 16
+ asrs r3, r0, 16
+ cmp r3, 0x1F
+ ble _0814A9D4
+ mov r6, r12
+ ldr r0, [r6]
+ ldr r1, [r6, 0x4]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ strh r2, [r4]
+ lsls r0, r2, 16
+ movs r1, 0x80
+ lsls r1, 14
+ adds r0, r1
+ lsrs r2, r0, 16
+ ldr r3, [sp]
+ lsls r5, r3, 16
+ b _0814AA20
+ .align 2, 0
+_0814A9C4: .4byte gSubspriteTable_203A380
+_0814A9C8: .4byte 0x0000ffff
+_0814A9CC: .4byte gUnknown_0842F780
+_0814A9D0: .4byte gUnknown_0842F788
+_0814A9D4:
+ ldr r6, [sp]
+ lsls r5, r6, 16
+ mov r0, r8
+ cmp r0, 0x27
+ ble _0814AA0A
+ cmp r3, 0x8
+ ble _0814AA0A
+ mov r6, r12
+ ldr r0, [r6]
+ ldr r1, [r6, 0x4]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ lsls r1, r2, 16
+ asrs r1, 16
+ adds r2, r1, 0
+ subs r2, 0x20
+ adds r0, r3, 0
+ mov r6, r10
+ ands r0, r6
+ adds r2, r0
+ strh r2, [r4]
+ movs r0, 0x18
+ ands r0, r3
+ adds r1, r0
+ lsls r1, 16
+ lsrs r2, r1, 16
+ b _0814AA20
+_0814AA0A:
+ mov r3, r9
+ ldr r0, [r3]
+ ldr r1, [r3, 0x4]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ strh r2, [r4]
+ lsls r0, r2, 16
+ movs r6, 0x80
+ lsls r6, 12
+ adds r0, r6
+ lsrs r2, r0, 16
+_0814AA20:
+ adds r4, 0x8
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ asrs r1, r5, 16
+ lsls r0, r2, 16
+ asrs r0, 16
+ subs r1, r0
+ lsls r1, 16
+ lsrs r3, r1, 16
+ asrs r1, 16
+ cmp r1, 0x7
+ bgt _0814A99E
+_0814AA3A:
+ ldr r5, _0814AAA8
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ lsls r1, r2, 16
+ asrs r1, 16
+ subs r1, 0x7
+ lsls r0, r3, 16
+ asrs r0, 16
+ adds r0, r1
+ strh r0, [r4]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r6, _0814AAAC
+ ldrb r0, [r6]
+ cmp r0, 0x40
+ beq _0814AA78
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814AAB0
+ adds r2, r0, r1
+ lsls r1, r7, 3
+ ldr r0, _0814AAB4
+ adds r1, r0
+ adds r0, r2, 0
+ bl SetSubspriteTables
+_0814AA78:
+ ldr r1, _0814AAB8
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814AA98
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814AAB0
+ adds r2, r0, r1
+ lsls r1, r7, 3
+ ldr r0, _0814AAB4
+ adds r1, r0
+ adds r0, r2, 0
+ bl SetSubspriteTables
+_0814AA98:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814AAA8: .4byte gUnknown_0842F790
+_0814AAAC: .4byte gUnknown_0203A3D0
+_0814AAB0: .4byte gSprites
+_0814AAB4: .4byte gSubspriteTables_842F5C0
+_0814AAB8: .4byte gUnknown_0203A3D1
+ thumb_func_end sub_814A958
+
+ thumb_func_start sub_814AABC
+sub_814AABC: @ 814AABC
+ push {lr}
+ adds r2, r0, 0
+ ldr r1, _0814AAEC
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814AAD4
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0814AAF0
+ adds r1, r0
+ str r2, [r1, 0x1C]
+_0814AAD4:
+ ldr r1, _0814AAF4
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814AAE8
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0814AAF0
+ adds r1, r0
+ str r2, [r1, 0x1C]
+_0814AAE8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814AAEC: .4byte gUnknown_0203A3D0
+_0814AAF0: .4byte gSprites
+_0814AAF4: .4byte gUnknown_0203A3D1
+ thumb_func_end sub_814AABC
+
+ thumb_func_start sub_814AAF8
+sub_814AAF8: @ 814AAF8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ ldr r1, _0814AB70
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814AB66
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814AB74
+ adds r4, r0, r1
+ ldr r0, [r4, 0x14]
+ ldrh r1, [r0, 0x2]
+ ldr r0, _0814AB78
+ cmp r1, r0
+ bne _0814AB66
+ movs r2, 0
+ movs r3, 0xF
+ movs r1, 0
+ ldrb r5, [r4, 0x5]
+ ldr r0, _0814AB7C
+ mov r8, r0
+ ldr r7, _0814AB80
+ movs r6, 0xF
+_0814AB32:
+ lsls r0, r1, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ cmp r0, r12
+ bne _0814AB46
+ lsrs r0, r1, 4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r3, r1, 0
+ ands r3, r6
+_0814AB46:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xFF
+ bls _0814AB32
+ lsls r2, 4
+ movs r1, 0xF
+ adds r0, r1, 0
+ ands r0, r5
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ ands r3, r1
+ lsls r0, r3, 3
+ add r0, r8
+ bl RequestSpriteSheetCopy
+_0814AB66:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814AB70: .4byte gUnknown_0203A3D0
+_0814AB74: .4byte gSprites
+_0814AB78: .4byte 0x0000ffff
+_0814AB7C: .4byte gUnknown_0842F140
+_0814AB80: .4byte gPlttBufferUnfaded
+ thumb_func_end sub_814AAF8
+
+ thumb_func_start sub_814AB84
+sub_814AB84: @ 814AB84
+ push {r4,r5,lr}
+ ldr r5, _0814ABCC
+ ldrb r0, [r5]
+ cmp r0, 0x40
+ beq _0814ABC4
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0814ABD0
+ adds r4, r0
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ movs r0, 0x40
+ strb r0, [r5]
+ ldr r0, _0814ABD4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0814ABBC
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _0814ABD8
+ ands r0, r1
+ strh r0, [r2]
+_0814ABBC:
+ ldr r0, _0814ABDC
+ ldr r1, _0814ABE0
+ ldrb r1, [r1]
+ strb r1, [r0]
+_0814ABC4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814ABCC: .4byte gUnknown_0203A3D1
+_0814ABD0: .4byte gSprites
+_0814ABD4: .4byte gUnknown_0203A3D3
+_0814ABD8: .4byte 0x00007fff
+_0814ABDC: .4byte 0x0400004b
+_0814ABE0: .4byte gUnknown_0203A3D4
+ thumb_func_end sub_814AB84
+
+ thumb_func_start unref_sub_814ABE4
+unref_sub_814ABE4: @ 814ABE4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0814AC40
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _0814AC44
+ movs r2, 0x28
+ bl CpuSet
+ ldr r1, _0814AC48
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814AC18
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814AC4C
+ adds r2, r0, r1
+ lsls r1, r4, 3
+ ldr r0, _0814AC50
+ adds r1, r0
+ adds r0, r2, 0
+ bl SetSubspriteTables
+_0814AC18:
+ ldr r1, _0814AC54
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814AC38
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814AC4C
+ adds r2, r0, r1
+ lsls r1, r4, 3
+ ldr r0, _0814AC50
+ adds r1, r0
+ adds r0, r2, 0
+ bl SetSubspriteTables
+_0814AC38:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814AC40: .4byte gUnknown_0842F5BC
+_0814AC44: .4byte gSubspriteTable_203A380
+_0814AC48: .4byte gUnknown_0203A3D0
+_0814AC4C: .4byte gSprites
+_0814AC50: .4byte gUnknown_0842F758
+_0814AC54: .4byte gUnknown_0203A3D1
+ thumb_func_end unref_sub_814ABE4
+
+ thumb_func_start sub_814AC58
+sub_814AC58: @ 814AC58
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r4, [sp, 0x1C]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 16
+ lsrs r6, r3, 16
+ lsls r4, 24
+ lsrs r4, 24
+ mov r9, r4
+ ldr r0, _0814ACF8
+ ldrb r0, [r0]
+ cmp r0, 0x40
+ beq _0814AC86
+ bl sub_814AD44
+_0814AC86:
+ movs r4, 0x1
+ ldr r0, _0814ACFC
+ cmp r5, r0
+ bne _0814ACAC
+ ldr r1, _0814AD00
+ movs r0, 0xF
+ ands r0, r7
+ lsls r0, 1
+ adds r0, r1
+ strh r6, [r0]
+ ldr r0, _0814AD04
+ bl LoadSpritePalette
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0814ACAC
+ ldr r5, _0814AD08
+ movs r4, 0
+_0814ACAC:
+ movs r6, 0xF
+ adds r0, r7, 0
+ ands r0, r6
+ lsls r0, 3
+ ldr r1, _0814AD0C
+ adds r0, r1
+ bl LoadSpriteSheetDeferred
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0814AD10
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0xA0
+ mov r3, r8
+ bl CreateSprite
+ ldr r1, _0814ACF8
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0814AD2A
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814AD14
+ adds r4, r0, r1
+ ldr r0, _0814ACFC
+ cmp r5, r0
+ bne _0814AD18
+ ldrb r1, [r4, 0x5]
+ adds r0, r6, 0
+ ands r0, r1
+ strb r0, [r4, 0x5]
+ b _0814AD2A
+ .align 2, 0
+_0814ACF8: .4byte gUnknown_0203A3D2
+_0814ACFC: .4byte 0x0000ffff
+_0814AD00: .4byte gUnknown_0203A360
+_0814AD04: .4byte gUnknown_0842F248
+_0814AD08: .4byte 0x0000fff1
+_0814AD0C: .4byte gUnknown_0842F1C0
+_0814AD10: .4byte gSpriteTemplate_842F298
+_0814AD14: .4byte gSprites
+_0814AD18:
+ adds r0, r5, 0
+ bl IndexOfSpritePaletteTag
+ lsls r0, 4
+ ldrb r2, [r4, 0x5]
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+_0814AD2A:
+ mov r0, r9
+ bl sub_814ADF4
+ ldr r0, _0814AD40
+ ldrb r0, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814AD40: .4byte gUnknown_0203A3D2
+ thumb_func_end sub_814AC58
+
+ thumb_func_start sub_814AD44
+sub_814AD44: @ 814AD44
+ push {r4,lr}
+ ldr r4, _0814AD70
+ ldrb r0, [r4]
+ cmp r0, 0x40
+ beq _0814AD68
+ ldr r0, _0814AD74
+ bl LoadTilesForSpriteSheet
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814AD78
+ adds r0, r1
+ bl DestroySpriteAndFreeResources
+ movs r0, 0x40
+ strb r0, [r4]
+_0814AD68:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814AD70: .4byte gUnknown_0203A3D2
+_0814AD74: .4byte gUnknown_0842F1C0
+_0814AD78: .4byte gSprites
+ thumb_func_end sub_814AD44
+
+ thumb_func_start sub_814AD7C
+sub_814AD7C: @ 814AD7C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r1, _0814ADC0
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814ADB8
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814ADC4
+ adds r2, r0, r1
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ adds r0, r2, 0
+ adds r0, 0x28
+ movs r1, 0
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ strh r5, [r2, 0x20]
+ strh r4, [r2, 0x22]
+_0814ADB8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814ADC0: .4byte gUnknown_0203A3D2
+_0814ADC4: .4byte gSprites
+ thumb_func_end sub_814AD7C
+
+ thumb_func_start sub_814ADC8
+sub_814ADC8: @ 814ADC8
+ push {lr}
+ ldr r1, _0814ADEC
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814ADE8
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814ADF0
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_0814ADE8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814ADEC: .4byte gUnknown_0203A3D2
+_0814ADF0: .4byte gSprites
+ thumb_func_end sub_814ADC8
+
+ thumb_func_start sub_814ADF4
+sub_814ADF4: @ 814ADF4
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x12
+ bls _0814AE00
+ movs r2, 0
+_0814AE00:
+ ldr r1, _0814AE24
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814AE1E
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814AE28
+ adds r0, r1
+ lsls r1, r2, 3
+ ldr r2, _0814AE2C
+ adds r1, r2
+ bl SetSubspriteTables
+_0814AE1E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814AE24: .4byte gUnknown_0203A3D2
+_0814AE28: .4byte gSprites
+_0814AE2C: .4byte gUnknown_0842F6C0
+ thumb_func_end sub_814ADF4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index 5b5c2651a..f766f40fd 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -98,6 +98,8 @@ SECTIONS {
asm/rom_81258BC.o(.text);
src/intro.o(.text);
asm/rom_813BA94.o(.text);
+ asm/clear_save_data_menu.o(.text);
+ asm/rom_8148B8C.o(.text);
} =0
script_data :