summaryrefslogtreecommitdiff
path: root/asm/credits.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/credits.s')
-rw-r--r--asm/credits.s4182
1 files changed, 4182 insertions, 0 deletions
diff --git a/asm/credits.s b/asm/credits.s
new file mode 100644
index 000000000..1d4747034
--- /dev/null
+++ b/asm/credits.s
@@ -0,0 +1,4182 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8143948
+sub_8143948: @ 8143948
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8143948
+
+ thumb_func_start sub_814395C
+sub_814395C: @ 814395C
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ ldr r0, _081439B8 @ =gMain
+ ldrh r1, [r0, 0x2C]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081439B2
+ ldr r0, _081439BC @ =gUnknown_02039324
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081439B2
+ ldr r2, _081439C0 @ =gTasks
+ ldr r0, _081439C4 @ =gUnknown_02039322
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _081439C8 @ =sub_8143B68
+ cmp r1, r0
+ bne _081439B2
+ bl sub_8143948
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ ldr r1, _081439CC @ =gUnknown_02039325
+ movs r0, 0x1
+ strb r0, [r1]
+_081439B2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081439B8: .4byte gMain
+_081439BC: .4byte gUnknown_02039324
+_081439C0: .4byte gTasks
+_081439C4: .4byte gUnknown_02039322
+_081439C8: .4byte sub_8143B68
+_081439CC: .4byte gUnknown_02039325
+ thumb_func_end sub_814395C
+
+ thumb_func_start sub_81439D0
+sub_81439D0: @ 81439D0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ bl sub_8144130
+ movs r0, 0
+ bl SetVBlankCallback
+ bl ResetPaletteFade
+ bl ResetTasks
+ ldr r0, _08143AF0 @ =sub_8143B38
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08143AF4 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x10]
+ strh r1, [r0, 0x16]
+ strh r1, [r0, 0x1E]
+ movs r1, 0x1
+ strh r1, [r0, 0x22]
+_08143A0E:
+ movs r0, 0
+ adds r1, r7, 0
+ bl sub_8144ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08143A0E
+ ldr r6, _08143AF4 @ =gTasks
+ lsls r5, r7, 2
+ adds r5, r7
+ lsls r5, 3
+ adds r5, r6
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0
+ mov r9, r1
+ movs r2, 0
+ mov r8, r2
+ movs r1, 0x28
+ strh r1, [r0, 0x8]
+ ldr r4, _08143AF8 @ =gWindowConfig_81E7208
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ ldr r0, _08143AFC @ =gUnknown_0840B7BC
+ movs r1, 0x80
+ movs r2, 0x40
+ bl LoadPalette
+ ldr r0, _08143B00 @ =gUnknown_0840B7FC
+ ldr r1, _08143B04 @ =0x0600bee0
+ movs r2, 0x20
+ bl CpuSet
+ ldr r1, _08143B08 @ =REG_BG0VOFS
+ ldr r2, _08143B0C @ =0x0000fffc
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08143B10 @ =sub_81441B8
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ strh r7, [r1, 0xA]
+ strh r0, [r5, 0x26]
+ movs r0, 0x1
+ negs r0, r0
+ mov r1, r8
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r3, _08143B14 @ =0x04000208
+ ldrh r2, [r3]
+ mov r0, r8
+ strh r0, [r3]
+ ldr r4, _08143B18 @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08143B1C @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _08143B20 @ =sub_8143948
+ bl SetVBlankCallback
+ ldr r0, _08143B24 @ =0x000001c7
+ bl m4aSongNumStart
+ ldr r0, _08143B28 @ =sub_814395C
+ bl SetMainCallback2
+ ldr r0, _08143B2C @ =gUnknown_02039325
+ mov r1, r9
+ strb r1, [r0]
+ ldr r4, _08143B30 @ =0x0201c000
+ bl sub_81458DC
+ adds r0, r4, 0
+ adds r0, 0x88
+ mov r2, r8
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ ldr r0, _08143B34 @ =gUnknown_02039322
+ strh r7, [r0]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143AF0: .4byte sub_8143B38
+_08143AF4: .4byte gTasks
+_08143AF8: .4byte gWindowConfig_81E7208
+_08143AFC: .4byte gUnknown_0840B7BC
+_08143B00: .4byte gUnknown_0840B7FC
+_08143B04: .4byte 0x0600bee0
+_08143B08: .4byte REG_BG0VOFS
+_08143B0C: .4byte 0x0000fffc
+_08143B10: .4byte sub_81441B8
+_08143B14: .4byte 0x04000208
+_08143B18: .4byte 0x04000200
+_08143B1C: .4byte REG_DISPSTAT
+_08143B20: .4byte sub_8143948
+_08143B24: .4byte 0x000001c7
+_08143B28: .4byte sub_814395C
+_08143B2C: .4byte gUnknown_02039325
+_08143B30: .4byte 0x0201c000
+_08143B34: .4byte gUnknown_02039322
+ thumb_func_end sub_81439D0
+
+ thumb_func_start sub_8143B38
+sub_8143B38: @ 8143B38
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08143B5C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08143B58
+ ldr r0, _08143B60 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08143B64 @ =sub_8143B68
+ str r0, [r1]
+_08143B58:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143B5C: .4byte gPaletteFade
+_08143B60: .4byte gTasks
+_08143B64: .4byte sub_8143B68
+ thumb_func_end sub_8143B38
+
+ thumb_func_start sub_8143B68
+sub_8143B68: @ 8143B68
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08143B9C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ beq _08143BA4
+ movs r3, 0xA
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x1E
+ strh r1, [r0, 0x8]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0x20]
+ ldr r0, _08143BA0 @ =sub_8143EBC
+ b _08143BEE
+ .align 2, 0
+_08143B9C: .4byte gTasks
+_08143BA0: .4byte sub_8143EBC
+_08143BA4:
+ ldr r0, _08143BCC @ =gUnknown_02039320
+ strh r1, [r0]
+ ldrh r2, [r4, 0x1E]
+ movs r3, 0x1E
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _08143BD4
+ strh r2, [r4, 0x22]
+ strh r1, [r4, 0x1E]
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08143BD0 @ =sub_8143BFC
+ b _08143BEE
+ .align 2, 0
+_08143BCC: .4byte gUnknown_02039320
+_08143BD0: .4byte sub_8143BFC
+_08143BD4:
+ cmp r0, 0x2
+ bne _08143BF0
+ strh r2, [r4, 0x22]
+ strh r1, [r4, 0x1E]
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08143BF8 @ =sub_8143CC0
+_08143BEE:
+ str r0, [r4]
+_08143BF0:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143BF8: .4byte sub_8143CC0
+ thumb_func_end sub_8143B68
+
+ thumb_func_start sub_8143BFC
+sub_8143BFC: @ 8143BFC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08143C34 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08143C2C
+ movs r0, 0x80
+ lsls r0, 19
+ strh r1, [r0]
+ adds r0, r4, 0
+ bl sub_81450AC
+ ldr r1, _08143C38 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08143C3C @ =c2_080C9BFC
+ str r1, [r0]
+_08143C2C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143C34: .4byte gPaletteFade
+_08143C38: .4byte gTasks
+_08143C3C: .4byte c2_080C9BFC
+ thumb_func_end sub_8143BFC
+
+ thumb_func_start c2_080C9BFC
+c2_080C9BFC: @ 8143C40
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r1, _08143CA8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrb r0, [r5, 0x16]
+ adds r1, r4, 0
+ bl sub_8144ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08143CA0
+ movs r0, 0x1
+ negs r0, r0
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r3, _08143CAC @ =0x04000208
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _08143CB0 @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08143CB4 @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _08143CB8 @ =sub_8143948
+ bl SetVBlankCallback
+ ldr r0, _08143CBC @ =sub_8143B38
+ str r0, [r5]
+_08143CA0:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143CA8: .4byte gTasks
+_08143CAC: .4byte 0x04000208
+_08143CB0: .4byte 0x04000200
+_08143CB4: .4byte REG_DISPSTAT
+_08143CB8: .4byte sub_8143948
+_08143CBC: .4byte sub_8143B38
+ thumb_func_end c2_080C9BFC
+
+ thumb_func_start sub_8143CC0
+sub_8143CC0: @ 8143CC0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08143CF8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08143CF0
+ movs r0, 0x80
+ lsls r0, 19
+ strh r1, [r0]
+ adds r0, r4, 0
+ bl sub_81450AC
+ ldr r1, _08143CFC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08143D00 @ =sub_8143D04
+ str r1, [r0]
+_08143CF0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143CF8: .4byte gPaletteFade
+_08143CFC: .4byte gTasks
+_08143D00: .4byte sub_8143D04
+ thumb_func_end sub_8143CC0
+
+ thumb_func_start sub_8143D04
+sub_8143D04: @ 8143D04
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _08143DC8 @ =gMain
+ ldr r1, _08143DCC @ =0x0000043c
+ adds r1, r0
+ mov r8, r1
+ ldrb r7, [r1]
+ cmp r7, 0
+ beq _08143D24
+ cmp r7, 0x1
+ beq _08143E0C
+_08143D24:
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, _08143DD0 @ =gReservedSpritePaletteCount
+ movs r0, 0x8
+ strb r0, [r1]
+ ldr r0, _08143DD4 @ =gBirchHelpGfx
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08143DD8 @ =gBirchGrassTilemap
+ ldr r1, _08143DDC @ =0x06003800
+ bl LZ77UnCompVram
+ ldr r0, _08143DE0 @ =gBirchBagGrassPal + 0x2
+ movs r1, 0x1
+ movs r2, 0x3E
+ bl LoadPalette
+ movs r1, 0
+ ldr r4, _08143DE4 @ =0x0201e000
+ movs r3, 0x11
+ ldr r2, _08143DE8 @ =0x000007ff
+_08143D56:
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bls _08143D56
+ movs r1, 0
+ ldr r2, _08143DEC @ =0x0201f800
+ ldr r6, _08143DF0 @ =gUnknown_0840CAA0
+ ldr r0, _08143DF4 @ =0xfffff000
+ adds r5, r2, r0
+ movs r4, 0x22
+ ldr r3, _08143DE8 @ =0x000007ff
+_08143D72:
+ adds r0, r1, r5
+ strb r4, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r3
+ bls _08143D72
+ movs r1, 0
+ ldr r5, _08143DF8 @ =0x0201f000
+ movs r4, 0x33
+ ldr r3, _08143DE8 @ =0x000007ff
+_08143D88:
+ adds r0, r1, r5
+ strb r4, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r3
+ bls _08143D88
+ movs r0, 0
+ strh r0, [r2]
+ ldr r1, _08143DFC @ =0x000053ff
+ adds r0, r1, 0
+ strh r0, [r2, 0x2]
+ ldr r1, _08143E00 @ =0x0000529f
+ adds r0, r1, 0
+ strh r0, [r2, 0x4]
+ ldr r1, _08143E04 @ =0x00007e94
+ adds r0, r1, 0
+ strh r0, [r2, 0x6]
+ adds r0, r6, 0
+ bl LoadSpriteSheet
+ ldr r0, _08143E08 @ =gUnknown_0840CAB0
+ bl LoadSpritePalette
+ ldr r1, _08143DC8 @ =gMain
+ ldr r2, _08143DCC @ =0x0000043c
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08143E90
+ .align 2, 0
+_08143DC8: .4byte gMain
+_08143DCC: .4byte 0x0000043c
+_08143DD0: .4byte gReservedSpritePaletteCount
+_08143DD4: .4byte gBirchHelpGfx
+_08143DD8: .4byte gBirchGrassTilemap
+_08143DDC: .4byte 0x06003800
+_08143DE0: .4byte gBirchBagGrassPal + 0x2
+_08143DE4: .4byte 0x0201e000
+_08143DE8: .4byte 0x000007ff
+_08143DEC: .4byte 0x0201f800
+_08143DF0: .4byte gUnknown_0840CAA0
+_08143DF4: .4byte 0xfffff000
+_08143DF8: .4byte 0x0201f000
+_08143DFC: .4byte 0x000053ff
+_08143E00: .4byte 0x0000529f
+_08143E04: .4byte 0x00007e94
+_08143E08: .4byte gUnknown_0840CAB0
+_08143E0C:
+ ldr r0, _08143EA0 @ =sub_8144514
+ movs r1, 0
+ bl CreateTask
+ ldr r2, _08143EA4 @ =gTasks
+ lsls r4, r6, 2
+ adds r4, r6
+ lsls r4, 3
+ adds r4, r2
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ mov r9, r1
+ movs r5, 0
+ strh r0, [r4, 0xE]
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ strh r7, [r0, 0x8]
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ strh r6, [r0, 0xA]
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r4, 0x16]
+ strh r1, [r0, 0xC]
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _08143EA8 @ =REG_BG3HOFS
+ strh r5, [r0]
+ ldr r1, _08143EAC @ =REG_BG3VOFS
+ movs r0, 0x20
+ strh r0, [r1]
+ subs r1, 0x10
+ ldr r2, _08143EB0 @ =0x00000703
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xE
+ movs r2, 0xCA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ mov r1, r9
+ mov r0, r8
+ strb r1, [r0]
+ ldr r0, _08143EB4 @ =gUnknown_0203935C
+ strh r5, [r0]
+ ldr r0, _08143EB8 @ =sub_8143B38
+ str r0, [r4]
+_08143E90:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143EA0: .4byte sub_8144514
+_08143EA4: .4byte gTasks
+_08143EA8: .4byte REG_BG3HOFS
+_08143EAC: .4byte REG_BG3VOFS
+_08143EB0: .4byte 0x00000703
+_08143EB4: .4byte gUnknown_0203935C
+_08143EB8: .4byte sub_8143B38
+ thumb_func_end sub_8143D04
+
+ thumb_func_start sub_8143EBC
+sub_8143EBC: @ 8143EBC
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08143EE0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x20]
+ movs r2, 0x20
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ beq _08143EE4
+ subs r0, 0x1
+ strh r0, [r4, 0x20]
+ b _08143EF8
+ .align 2, 0
+_08143EE0: .4byte gTasks
+_08143EE4:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0xC
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08143F00 @ =sub_8143F04
+ str r0, [r4]
+_08143EF8:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143F00: .4byte sub_8143F04
+ thumb_func_end sub_8143EBC
+
+ thumb_func_start sub_8143F04
+sub_8143F04: @ 8143F04
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08143F30 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08143F2A
+ adds r0, r4, 0
+ bl sub_81450AC
+ ldr r0, _08143F34 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08143F38 @ =sub_8143F3C
+ str r0, [r1]
+_08143F2A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143F30: .4byte gPaletteFade
+_08143F34: .4byte gTasks
+_08143F38: .4byte sub_8143F3C
+ thumb_func_end sub_8143F04
+
+ thumb_func_start sub_8143F3C
+sub_8143F3C: @ 8143F3C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ bl sub_8144130
+ bl ResetPaletteFade
+ movs r1, 0xE0
+ lsls r1, 6
+ movs r0, 0
+ movs r2, 0
+ bl sub_8145128
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ movs r0, 0x1
+ negs r0, r0
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0x8
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, _08143FC4 @ =REG_BG0CNT
+ movs r2, 0xE0
+ lsls r2, 3
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r3, _08143FC8 @ =0x04000208
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _08143FCC @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08143FD0 @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _08143FD4 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x80
+ lsls r1, 1
+ strh r1, [r0, 0x8]
+ ldr r1, _08143FD8 @ =sub_8143FDC
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143FC4: .4byte REG_BG0CNT
+_08143FC8: .4byte 0x04000208
+_08143FCC: .4byte 0x04000200
+_08143FD0: .4byte REG_DISPSTAT
+_08143FD4: .4byte gTasks
+_08143FD8: .4byte sub_8143FDC
+ thumb_func_end sub_8143F3C
+
+ thumb_func_start sub_8143FDC
+sub_8143FDC: @ 8143FDC
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08144000 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ beq _08144004
+ subs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08144018
+ .align 2, 0
+_08144000: .4byte gTasks
+_08144004:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0x6
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08144020 @ =sub_8144024
+ str r0, [r4]
+_08144018:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08144020: .4byte sub_8144024
+ thumb_func_end sub_8143FDC
+
+ thumb_func_start sub_8144024
+sub_8144024: @ 8144024
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _08144074 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0814406A
+ movs r0, 0xE0
+ lsls r0, 6
+ movs r1, 0
+ bl sub_81452D0
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, _08144078 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xE1
+ lsls r1, 5
+ strh r1, [r0, 0x8]
+ ldr r1, _0814407C @ =sub_8144080
+ str r1, [r0]
+_0814406A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08144074: .4byte gPaletteFade
+_08144078: .4byte gTasks
+_0814407C: .4byte sub_8144080
+ thumb_func_end sub_8144024
+
+ thumb_func_start sub_8144080
+sub_8144080: @ 8144080
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _081440CC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08144104
+ ldr r1, _081440D0 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ beq _081440AE
+ ldr r0, _081440D4 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0
+ beq _081440E0
+_081440AE:
+ movs r0, 0x4
+ bl FadeOutBGM
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, _081440D8 @ =0x0000ffff
+ str r1, [sp]
+ movs r1, 0x8
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _081440DC @ =sub_8144114
+ str r0, [r4]
+ b _08144104
+ .align 2, 0
+_081440CC: .4byte gPaletteFade
+_081440D0: .4byte gTasks
+_081440D4: .4byte gMain
+_081440D8: .4byte 0x0000ffff
+_081440DC: .4byte sub_8144114
+_081440E0:
+ ldr r0, _0814410C @ =0x00001be8
+ cmp r1, r0
+ bne _081440EC
+ movs r0, 0x8
+ bl FadeOutBGM
+_081440EC:
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ ldr r0, _08144110 @ =0x00001ab8
+ cmp r1, r0
+ bne _081440FE
+ movs r0, 0xE4
+ lsls r0, 1
+ bl m4aSongNumStart
+_081440FE:
+ ldrh r0, [r4, 0x8]
+ subs r0, 0x1
+ strh r0, [r4, 0x8]
+_08144104:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814410C: .4byte 0x00001be8
+_08144110: .4byte 0x00001ab8
+ thumb_func_end sub_8144080
+
+ thumb_func_start sub_8144114
+sub_8144114: @ 8144114
+ push {lr}
+ ldr r0, _0814412C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08144128
+ movs r0, 0xFF
+ bl SoftReset
+_08144128:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814412C: .4byte gPaletteFade
+ thumb_func_end sub_8144114
+
+ thumb_func_start sub_8144130
+sub_8144130: @ 8144130
+ sub sp, 0x8
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x1C
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x3E
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ mov r0, sp
+ strh r1, [r0]
+ ldr r1, _081441A4 @ =0x040000d4
+ str r0, [r1]
+ movs r0, 0xC0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _081441A8 @ =0x8100c000
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r2, 0
+ str r2, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r1]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _081441AC @ =0x85000100
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, sp
+ strh r2, [r0]
+ str r0, [r1]
+ ldr r0, _081441B0 @ =0x05000002
+ str r0, [r1, 0x4]
+ ldr r0, _081441B4 @ =0x810001ff
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add sp, 0x8
+ bx lr
+ .align 2, 0
+_081441A4: .4byte 0x040000d4
+_081441A8: .4byte 0x8100c000
+_081441AC: .4byte 0x85000100
+_081441B0: .4byte 0x05000002
+_081441B4: .4byte 0x810001ff
+ thumb_func_end sub_8144130
+
+ thumb_func_start sub_81441B8
+sub_81441B8: @ 81441B8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _081441E4 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r6, r1, 0
+ cmp r0, 0xA
+ bhi _08144218
+ lsls r0, 2
+ ldr r1, _081441E8 @ =_081441EC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081441E4: .4byte gTasks
+_081441E8: .4byte _081441EC
+ .align 2, 0
+_081441EC:
+ .4byte _08144218
+ .4byte _08144258
+ .4byte _08144278
+ .4byte _08144358
+ .4byte _0814438C
+ .4byte _081443F8
+ .4byte _08144218
+ .4byte _08144218
+ .4byte _08144218
+ .4byte _08144218
+ .4byte _08144428
+_08144218:
+ ldr r0, _08144250 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _0814422A
+ b _08144446
+_0814422A:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0x1
+ strh r1, [r0, 0x8]
+ movs r1, 0x58
+ strh r1, [r0, 0xE]
+ movs r3, 0xA
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r2, [r0, 0x24]
+ ldr r0, _08144254 @ =gUnknown_02039320
+ strh r2, [r0]
+ b _08144446
+ .align 2, 0
+_08144250: .4byte gPaletteFade
+_08144254: .4byte gUnknown_02039320
+_08144258:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r6
+ ldrh r2, [r1, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08144270
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xE]
+ b _08144446
+_08144270:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _08144446
+_08144278:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _08144320 @ =0x0000feff
+ ands r0, r1
+ strh r0, [r2]
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r3, r0, r6
+ movs r0, 0xA
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r4, r0, r6
+ ldr r1, [r4]
+ ldr r0, _08144324 @ =sub_8143B68
+ mov r8, r2
+ cmp r1, r0
+ bne _08144352
+ movs r1, 0xC
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x33
+ bgt _0814434C
+ movs r4, 0
+ ldr r7, _08144328 @ =gCreditsEntryPointerTable
+ adds r6, r3, 0
+_081442B0:
+ movs r2, 0xC
+ ldrsh r1, [r6, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r7
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ lsls r2, r4, 25
+ movs r3, 0x90
+ lsls r3, 20
+ adds r2, r3
+ lsrs r2, 24
+ movs r1, 0
+ movs r3, 0xF0
+ bl sub_8072BD8
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _081442B0
+ ldr r3, _0814432C @ =gTasks
+ mov r0, r8
+ adds r1, r0, r5
+ lsls r1, 3
+ adds r1, r3
+ ldrh r0, [r1, 0xC]
+ adds r0, 0x1
+ strh r0, [r1, 0xC]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xA
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r3
+ movs r2, 0x1
+ strh r2, [r0, 0x24]
+ movs r2, 0xA
+ ldrsh r1, [r1, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ movs r3, 0x22
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x1
+ bne _08144334
+ movs r0, 0xC0
+ lsls r0, 2
+ ldr r1, _08144330 @ =0x0000328d
+ b _0814433A
+ .align 2, 0
+_08144320: .4byte 0x0000feff
+_08144324: .4byte sub_8143B68
+_08144328: .4byte gCreditsEntryPointerTable
+_0814432C: .4byte gTasks
+_08144330: .4byte 0x0000328d
+_08144334:
+ movs r0, 0xC0
+ lsls r0, 2
+ ldr r1, _08144348 @ =0x00001967
+_0814433A:
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _08144446
+ .align 2, 0
+_08144348: .4byte 0x00001967
+_0814434C:
+ movs r0, 0xA
+ strh r0, [r3, 0x8]
+ b _08144446
+_08144352:
+ movs r0, 0
+ strh r0, [r4, 0x24]
+ b _08144446
+_08144358:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 1
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _08144388 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08144446
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0x82
+ strh r1, [r0, 0xE]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _08144446
+ .align 2, 0
+_08144388: .4byte gPaletteFade
+_0814438C:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r6
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081443A4
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _08144446
+_081443A4:
+ ldrb r0, [r4, 0xC]
+ ldrb r1, [r4, 0xA]
+ bl sub_8144454
+ lsls r0, 24
+ cmp r0, 0
+ beq _081443BA
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08144446
+_081443BA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r3, 0xA
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0x22
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _081443E0
+ movs r0, 0xC0
+ lsls r0, 2
+ ldr r1, _081443DC @ =0x0000328d
+ b _081443E6
+ .align 2, 0
+_081443DC: .4byte 0x0000328d
+_081443E0:
+ movs r0, 0xC0
+ lsls r0, 2
+ ldr r1, _081443F4 @ =0x00001967
+_081443E6:
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _08144446
+ .align 2, 0
+_081443F4: .4byte 0x00001967
+_081443F8:
+ ldr r0, _08144420 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08144446
+ movs r0, 0
+ movs r1, 0x9
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r0, _08144424 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x2
+ strh r0, [r1, 0x8]
+ b _08144446
+ .align 2, 0
+_08144420: .4byte gPaletteFade
+_08144424: .4byte gTasks
+_08144428:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r6
+ movs r2, 0xA
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0x1
+ strh r1, [r0, 0x10]
+ adds r0, r5, 0
+ bl DestroyTask
+_08144446:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81441B8
+
+ thumb_func_start sub_8144454
+sub_8144454: @ 8144454
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r6, r3, 0
+ lsls r1, 24
+ lsrs r2, r1, 24
+ adds r5, r2, 0
+ ldr r4, _08144508 @ =gTasks
+ cmp r3, 0x6
+ bne _08144474
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x2
+ strh r1, [r0, 0x1E]
+_08144474:
+ cmp r3, 0xC
+ bne _08144486
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x1
+ strh r1, [r0, 0x16]
+ strh r1, [r0, 0x1E]
+_08144486:
+ cmp r3, 0x12
+ bne _08144496
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x2
+ strh r1, [r0, 0x1E]
+_08144496:
+ cmp r3, 0x18
+ bne _081444AA
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x2
+ strh r1, [r0, 0x16]
+ movs r1, 0x1
+ strh r1, [r0, 0x1E]
+_081444AA:
+ cmp r3, 0x1E
+ bne _081444BA
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x2
+ strh r1, [r0, 0x1E]
+_081444BA:
+ cmp r3, 0x23
+ bne _081444CE
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x3
+ strh r1, [r0, 0x16]
+ movs r1, 0x1
+ strh r1, [r0, 0x1E]
+_081444CE:
+ cmp r3, 0x28
+ bne _081444DE
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x2
+ strh r1, [r0, 0x1E]
+_081444DE:
+ cmp r6, 0x2E
+ bne _081444F2
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x4
+ strh r1, [r0, 0x16]
+ movs r1, 0x1
+ strh r1, [r0, 0x1E]
+_081444F2:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x1E
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0814450C
+ movs r0, 0
+ b _0814450E
+ .align 2, 0
+_08144508: .4byte gTasks
+_0814450C:
+ movs r0, 0x1
+_0814450E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8144454
+
+ thumb_func_start sub_8144514
+sub_8144514: @ 8144514
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r6, _08144548 @ =0x0201c000
+ ldr r3, _0814454C @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r2, r0, r3
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _08144550
+ cmp r0, 0x1
+ bgt _0814453C
+ b _08144658
+_0814453C:
+ cmp r0, 0x2
+ beq _08144584
+ cmp r0, 0x3
+ bne _08144546
+ b _08144644
+_08144546:
+ b _08144658
+ .align 2, 0
+_08144548: .4byte 0x0201c000
+_0814454C: .4byte gTasks
+_08144550:
+ adds r0, r6, 0
+ adds r0, 0x8A
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0814456E
+ movs r4, 0xA
+ ldrsh r0, [r2, r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ movs r4, 0x24
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ beq _08144658
+_0814456E:
+ movs r0, 0xA
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ b _08144656
+_08144584:
+ adds r0, r6, 0
+ adds r0, 0x88
+ ldrh r1, [r0]
+ mov r9, r0
+ cmp r1, 0x44
+ beq _08144658
+ movs r4, 0xA
+ ldrsh r1, [r2, r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ ldr r1, [r0]
+ ldr r0, _081445EC @ =sub_8143B68
+ cmp r1, r0
+ bne _08144658
+ adds r7, r6, 0
+ adds r7, 0x8C
+ ldrh r0, [r7]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ ldr r4, _081445F0 @ =gUnknown_0840CA00
+ adds r5, r6, 0
+ adds r5, 0x8A
+ ldrh r3, [r5]
+ lsls r2, r3, 1
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ adds r4, 0x1
+ adds r2, r4
+ ldrb r2, [r2]
+ bl sub_81456B4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrh r1, [r7]
+ adds r0, r6, 0
+ adds r0, 0x8E
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _081445F8
+ adds r0, r1, 0x1
+ strh r0, [r7]
+ ldr r1, _081445F4 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x32
+ b _0814460A
+ .align 2, 0
+_081445EC: .4byte sub_8143B68
+_081445F0: .4byte gUnknown_0840CA00
+_081445F4: .4byte gSprites
+_081445F8:
+ movs r0, 0
+ strh r0, [r7]
+ ldr r1, _08144620 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x80
+ lsls r1, 2
+_0814460A:
+ strh r1, [r0, 0x34]
+ mov r1, r9
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ ldrh r0, [r5]
+ cmp r0, 0x2
+ bne _08144624
+ movs r0, 0
+ b _08144626
+ .align 2, 0
+_08144620: .4byte gSprites
+_08144624:
+ adds r0, 0x1
+_08144626:
+ strh r0, [r5]
+ ldr r0, _08144640 @ =gTasks
+ mov r2, r8
+ lsls r1, r2, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x32
+ strh r0, [r1, 0xE]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _08144658
+ .align 2, 0
+_08144640: .4byte gTasks
+_08144644:
+ ldrh r1, [r2, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _08144654
+ subs r0, r1, 0x1
+ strh r0, [r2, 0xE]
+ b _08144658
+_08144654:
+ movs r0, 0x1
+_08144656:
+ strh r0, [r2, 0x8]
+_08144658:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8144514
+
+ thumb_func_start sub_8144664
+sub_8144664: @ 8144664
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0814468C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r6, r1, 0
+ cmp r0, 0x32
+ bls _08144680
+ b _0814492C
+_08144680:
+ lsls r0, 2
+ ldr r1, _08144690 @ =_08144694
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0814468C: .4byte gTasks
+_08144690: .4byte _08144694
+ .align 2, 0
+_08144694:
+ .4byte _08144760
+ .4byte _08144784
+ .4byte _081447D8
+ .4byte _081447F0
+ .4byte _0814482C
+ .4byte _08144850
+ .4byte _0814489C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _081448A8
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _081448C8
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _081448EC
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _08144920
+_08144760:
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r6
+ ldrh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 17
+ movs r1, 0x7F
+ ands r0, r1
+ movs r1, 0xC
+ bl Sin
+ ldr r1, _08144780 @ =gUnknown_0203935A
+ strh r0, [r1]
+ b _081447A8
+ .align 2, 0
+_08144780: .4byte gUnknown_0203935A
+_08144784:
+ ldr r7, _081447B0 @ =gUnknown_0203935A
+ movs r3, 0
+ ldrsh r4, [r7, r3]
+ cmp r4, 0
+ beq _081447B4
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r6
+ ldrh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 17
+ movs r1, 0x7F
+ ands r0, r1
+ movs r1, 0xC
+ bl Sin
+ strh r0, [r7]
+_081447A8:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ b _0814492C
+ .align 2, 0
+_081447B0: .4byte gUnknown_0203935A
+_081447B4:
+ ldr r3, _081447D4 @ =gSprites
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r6
+ movs r0, 0xC
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x2
+ strh r2, [r0, 0x2E]
+ strh r4, [r1, 0x12]
+ b _08144848
+ .align 2, 0
+_081447D4: .4byte gSprites
+_081447D8:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r6
+ ldrh r2, [r1, 0x12]
+ movs r3, 0x12
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x3F
+ bgt _08144848
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x12]
+ b _08144866
+_081447F0:
+ ldr r3, _08144828 @ =gSprites
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 3
+ adds r2, r6
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x3
+ strh r1, [r0, 0x2E]
+ movs r0, 0xE
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+ movs r0, 0x78
+ strh r0, [r2, 0x10]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _0814492C
+ .align 2, 0
+_08144828: .4byte gSprites
+_0814482C:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r6
+ ldrh r2, [r1, 0x10]
+ movs r3, 0x10
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08144844
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x10]
+ b _0814492C
+_08144844:
+ movs r0, 0x40
+ strh r0, [r1, 0x12]
+_08144848:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0814492C
+_08144850:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r6
+ ldrh r1, [r4, 0x12]
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _0814487C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x12]
+_08144866:
+ movs r1, 0x7F
+ ands r0, r1
+ movs r1, 0x14
+ bl Sin
+ ldr r1, _08144878 @ =gUnknown_0203935A
+ strh r0, [r1]
+ b _0814492C
+ .align 2, 0
+_08144878: .4byte gUnknown_0203935A
+_0814487C:
+ ldr r2, _08144898 @ =gSprites
+ movs r3, 0xC
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0814492C
+ .align 2, 0
+_08144898: .4byte gSprites
+_0814489C:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0x32
+ b _0814492A
+_081448A8:
+ ldr r3, _081448C4 @ =gSprites
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r6
+ movs r0, 0xE
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x2
+ b _081448E0
+ .align 2, 0
+_081448C4: .4byte gSprites
+_081448C8:
+ ldr r3, _081448E8 @ =gSprites
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r6
+ movs r0, 0xC
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x4
+_081448E0:
+ strh r2, [r0, 0x2E]
+ movs r0, 0x32
+ strh r0, [r1, 0x8]
+ b _0814492C
+ .align 2, 0
+_081448E8: .4byte gSprites
+_081448EC:
+ ldr r3, _0814491C @ =gSprites
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 3
+ adds r2, r6
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x5
+ strh r1, [r0, 0x2E]
+ movs r0, 0xE
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x3
+ strh r1, [r0, 0x2E]
+ movs r0, 0x32
+ strh r0, [r2, 0x8]
+ b _0814492C
+ .align 2, 0
+_0814491C: .4byte gSprites
+_08144920:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0
+_0814492A:
+ strh r1, [r0, 0x8]
+_0814492C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8144664
+
+ thumb_func_start sub_8144934
+sub_8144934: @ 8144934
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _08144958 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r3, 0x8
+ ldrsh r0, [r0, r3]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bhi _08144974
+ lsls r0, 2
+ ldr r1, _0814495C @ =_08144960
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08144958: .4byte gTasks
+_0814495C: .4byte _08144960
+ .align 2, 0
+_08144960:
+ .4byte _08144974
+ .4byte _081449B8
+ .4byte _081449C4
+ .4byte _08144A0C
+ .4byte _08144A5C
+_08144974:
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r2, r0, r4
+ movs r1, 0xA
+ ldrsh r0, [r2, r1]
+ ldr r5, _081449C0 @ =0x00007fff
+ cmp r0, r5
+ beq _081449B8
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r3, r0, r4
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x2
+ bne _081449B8
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ movs r0, 0x14
+ strh r0, [r1, 0x8]
+ strh r5, [r2, 0xA]
+_081449B8:
+ movs r0, 0
+ bl sub_8149020
+ b _08144A62
+ .align 2, 0
+_081449C0: .4byte 0x00007fff
+_081449C4:
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r2, r0, r4
+ movs r3, 0xA
+ ldrsh r0, [r2, r3]
+ ldr r5, _08144A08 @ =0x00007fff
+ cmp r0, r5
+ beq _08144A54
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r3, 0xA
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r3, r0, r4
+ ldrh r1, [r3, 0x12]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0xA0
+ lsls r1, 2
+ cmp r0, r1
+ bne _08144A54
+ movs r0, 0x1
+ strh r0, [r3, 0x8]
+ strh r5, [r2, 0xA]
+ b _08144A54
+ .align 2, 0
+_08144A08: .4byte 0x00007fff
+_08144A0C:
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r2, r0, r4
+ ldrh r3, [r2, 0xA]
+ movs r0, 0xA
+ ldrsh r1, [r2, r0]
+ ldr r5, _08144A48 @ =0x00007fff
+ cmp r1, r5
+ beq _08144A54
+ ldr r0, _08144A4C @ =0x000001f3
+ cmp r1, r0
+ bne _08144A50
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r3, 0xA
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0xA
+ strh r1, [r0, 0x8]
+ strh r5, [r2, 0xA]
+ b _08144A54
+ .align 2, 0
+_08144A48: .4byte 0x00007fff
+_08144A4C: .4byte 0x000001f3
+_08144A50:
+ adds r0, r3, 0x1
+ strh r0, [r2, 0xA]
+_08144A54:
+ movs r0, 0x1
+ bl sub_8149020
+ b _08144A62
+_08144A5C:
+ movs r0, 0x2
+ bl sub_8149020
+_08144A62:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8144934
+
+ thumb_func_start sub_8144A68
+sub_8144A68: @ 8144A68
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ cmp r0, 0x4
+ bls _08144A7E
+ b _08144DFC
+_08144A7E:
+ lsls r0, 2
+ ldr r1, _08144A88 @ =_08144A8C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08144A88: .4byte _08144A8C
+ .align 2, 0
+_08144A8C:
+ .4byte _08144AA0
+ .4byte _08144B48
+ .4byte _08144BF4
+ .4byte _08144CA0
+ .4byte _08144D50
+_08144AA0:
+ ldr r5, _08144B40 @ =gSprites
+ ldr r0, _08144B44 @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r3, 0
+ movs r2, 0x88
+ lsls r2, 1
+ strh r2, [r0, 0x20]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x20]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r2, 0x2E
+ strh r2, [r0, 0x22]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ movs r2, 0x20
+ b _08144DF0
+ .align 2, 0
+_08144B40: .4byte gSprites
+_08144B44: .4byte gTasks
+_08144B48:
+ ldr r5, _08144BEC @ =gSprites
+ ldr r0, _08144BF0 @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r3, 0
+ movs r1, 0x78
+ strh r1, [r0, 0x20]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x88
+ lsls r1, 1
+ strh r1, [r0, 0x20]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r2, 0x2E
+ strh r2, [r0, 0x22]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ movs r2, 0x20
+ b _08144DF0
+ .align 2, 0
+_08144BEC: .4byte gSprites
+_08144BF0: .4byte gTasks
+_08144BF4:
+ ldr r5, _08144C98 @ =gSprites
+ ldr r0, _08144C9C @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r3, 0
+ movs r1, 0x78
+ strh r1, [r0, 0x20]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x88
+ lsls r1, 1
+ strh r1, [r0, 0x20]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r2, 0x2E
+ strh r2, [r0, 0x22]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r2, 0x80
+ lsls r2, 2
+ movs r0, 0x1
+ b _08144DF0
+ .align 2, 0
+_08144C98: .4byte gSprites
+_08144C9C: .4byte gTasks
+_08144CA0:
+ ldr r5, _08144D44 @ =gSprites
+ ldr r0, _08144D48 @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r3, 0
+ movs r1, 0x78
+ strh r1, [r0, 0x20]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08144D4C @ =0x0000ffe0
+ strh r1, [r0, 0x20]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r2, 0x2E
+ strh r2, [r0, 0x22]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r2, 0x80
+ lsls r2, 2
+ movs r0, 0x1
+ b _08144DF0
+ .align 2, 0
+_08144D44: .4byte gSprites
+_08144D48: .4byte gTasks
+_08144D4C: .4byte 0x0000ffe0
+_08144D50:
+ ldr r5, _08144EBC @ =gSprites
+ ldr r0, _08144EC0 @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r3, 0
+ movs r1, 0x58
+ strh r1, [r0, 0x20]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x98
+ strh r1, [r0, 0x20]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r2, 0x2E
+ strh r2, [r0, 0x22]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r2, 0x80
+ lsls r2, 2
+ movs r0, 0x2
+_08144DF0:
+ movs r3, 0x8
+ bl sub_8148EC0
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x8]
+_08144DFC:
+ ldr r0, _08144EC4 @ =sub_8144934
+ movs r1, 0
+ bl CreateTask
+ ldr r6, _08144EC0 @ =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r5, r1, r6
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0
+ strh r0, [r5, 0xC]
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ mov r1, r8
+ strh r1, [r0, 0x8]
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r4, [r0, 0xA]
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r7, [r0, 0xC]
+ ldr r0, _08144EC8 @ =sub_8144664
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xA]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r4, [r0, 0x8]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r7, [r0, 0xA]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrh r1, [r5, 0x12]
+ strh r1, [r0, 0xC]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrh r1, [r5, 0x14]
+ strh r1, [r0, 0xE]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r4, [r0, 0x10]
+ mov r1, r8
+ cmp r1, 0x2
+ bne _08144EB0
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ movs r0, 0x45
+ strh r0, [r1, 0x12]
+_08144EB0:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08144EBC: .4byte gSprites
+_08144EC0: .4byte gTasks
+_08144EC4: .4byte sub_8144934
+_08144EC8: .4byte sub_8144664
+ thumb_func_end sub_8144A68
+
+ thumb_func_start sub_8144ECC
+sub_8144ECC: @ 8144ECC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _08144F28 @ =gMain
+ ldr r1, _08144F2C @ =0x0000043c
+ adds r6, r0, r1
+ ldrb r0, [r6]
+ cmp r0, 0x1
+ beq _08144F38
+ cmp r0, 0x1
+ ble _08144EF0
+ cmp r0, 0x2
+ beq _08144F5C
+ cmp r0, 0x3
+ bne _08144EF0
+ b _0814508C
+_08144EF0:
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _08144F30 @ =REG_BG3HOFS
+ movs r0, 0x8
+ strh r0, [r2]
+ ldr r0, _08144F34 @ =REG_BG3VOFS
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x3A
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ movs r0, 0x1
+ strb r0, [r6]
+ b _081450A2
+ .align 2, 0
+_08144F28: .4byte gMain
+_08144F2C: .4byte 0x0000043c
+_08144F30: .4byte REG_BG3HOFS
+_08144F34: .4byte REG_BG3VOFS
+_08144F38:
+ ldr r1, _08144F54 @ =gUnknown_02039358
+ movs r0, 0x22
+ strh r0, [r1]
+ ldr r1, _08144F58 @ =gUnknown_0203935A
+ movs r0, 0
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl sub_8148CB0
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ b _081450A2
+ .align 2, 0
+_08144F54: .4byte gUnknown_02039358
+_08144F58: .4byte gUnknown_0203935A
+_08144F5C:
+ ldr r0, _08144FBC @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _08144FE0
+ ldr r0, _08144FC0 @ =gIntro2BrendanSpriteSheet
+ bl LoadCompressedObjectPic
+ ldr r0, _08144FC4 @ =gUnknown_08416E34
+ bl LoadCompressedObjectPic
+ ldr r0, _08144FC8 @ =gIntro2BicycleSpriteSheet
+ bl LoadCompressedObjectPic
+ ldr r0, _08144FCC @ =gIntro2SpritePalettes
+ bl LoadSpritePalettes
+ movs r0, 0x78
+ movs r1, 0x2E
+ bl intro_create_brendan_sprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08144FD0 @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ strh r2, [r4, 0x12]
+ ldr r6, _08144FD4 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r6, 0
+ adds r5, 0x1C
+ adds r2, r0, r5
+ ldr r1, _08144FD8 @ =sub_8145378
+ str r1, [r2]
+ adds r6, 0x8
+ adds r0, r6
+ ldr r1, _08144FDC @ =gUnknown_0840CA54
+ str r1, [r0]
+ movs r0, 0x88
+ lsls r0, 1
+ movs r1, 0x2E
+ bl intro_create_may_sprite
+ b _08145034
+ .align 2, 0
+_08144FBC: .4byte gSaveBlock2
+_08144FC0: .4byte gIntro2BrendanSpriteSheet
+_08144FC4: .4byte gUnknown_08416E34
+_08144FC8: .4byte gIntro2BicycleSpriteSheet
+_08144FCC: .4byte gIntro2SpritePalettes
+_08144FD0: .4byte gTasks
+_08144FD4: .4byte gSprites
+_08144FD8: .4byte sub_8145378
+_08144FDC: .4byte gUnknown_0840CA54
+_08144FE0:
+ ldr r0, _0814505C @ =gIntro2MaySpriteSheet
+ bl LoadCompressedObjectPic
+ ldr r0, _08145060 @ =gUnknown_08416E24
+ bl LoadCompressedObjectPic
+ ldr r0, _08145064 @ =gIntro2BicycleSpriteSheet
+ bl LoadCompressedObjectPic
+ ldr r0, _08145068 @ =gIntro2SpritePalettes
+ bl LoadSpritePalettes
+ movs r0, 0x78
+ movs r1, 0x2E
+ bl intro_create_may_sprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0814506C @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ strh r2, [r4, 0x12]
+ ldr r6, _08145070 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r6, 0
+ adds r5, 0x1C
+ adds r2, r0, r5
+ ldr r1, _08145074 @ =sub_8145378
+ str r1, [r2]
+ adds r6, 0x8
+ adds r0, r6
+ ldr r1, _08145078 @ =gUnknown_0840CA54
+ str r1, [r0]
+ movs r0, 0x88
+ lsls r0, 1
+ movs r1, 0x2E
+ bl intro_create_brendan_sprite
+_08145034:
+ lsls r0, 24
+ lsrs r2, r0, 24
+ strh r2, [r4, 0x14]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r0, r5
+ ldr r1, _0814507C @ =sub_8145420
+ str r1, [r5]
+ adds r0, r6
+ ldr r1, _08145080 @ =gUnknown_0840CA94
+ str r1, [r0]
+ ldr r1, _08145084 @ =gMain
+ ldr r0, _08145088 @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081450A2
+ .align 2, 0
+_0814505C: .4byte gIntro2MaySpriteSheet
+_08145060: .4byte gUnknown_08416E24
+_08145064: .4byte gIntro2BicycleSpriteSheet
+_08145068: .4byte gIntro2SpritePalettes
+_0814506C: .4byte gTasks
+_08145070: .4byte gSprites
+_08145074: .4byte sub_8145378
+_08145078: .4byte gUnknown_0840CA54
+_0814507C: .4byte sub_8145420
+_08145080: .4byte gUnknown_0840CA94
+_08145084: .4byte gMain
+_08145088: .4byte 0x0000043c
+_0814508C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8144A68
+ adds r0, r4, 0
+ bl sub_8148E90
+ movs r0, 0
+ strb r0, [r6]
+ movs r0, 0x1
+ b _081450A4
+_081450A2:
+ movs r0, 0
+_081450A4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8144ECC
+
+ thumb_func_start sub_81450AC
+sub_81450AC: @ 81450AC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08145120 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081450D2
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ strh r0, [r4, 0x8]
+_081450D2:
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081450E8
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ strh r0, [r4, 0xA]
+_081450E8:
+ ldrh r1, [r4, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081450FE
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ strh r0, [r4, 0xC]
+_081450FE:
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08145114
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ strh r0, [r4, 0xE]
+_08145114:
+ ldr r1, _08145124 @ =gUnknown_0203935C
+ movs r0, 0x1
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145120: .4byte gTasks
+_08145124: .4byte gUnknown_0203935C
+ thumb_func_end sub_81450AC
+
+ thumb_func_start sub_8145128
+sub_8145128: @ 8145128
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ adds r4, r2, 0
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r4, 16
+ lsrs r5, r4, 16
+ ldr r0, _081451EC @ =gCreditsCopyrightEnd_Gfx
+ movs r6, 0xC0
+ lsls r6, 19
+ adds r3, r6
+ adds r1, r3, 0
+ bl LZ77UnCompVram
+ ldr r0, _081451F0 @ =gIntroCopyright_Pal
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl LoadPalette
+ lsrs r4, 20
+ lsls r4, 28
+ lsrs r4, 16
+ movs r2, 0
+ adds r1, r4, 0x1
+ ldr r3, _081451F4 @ =0x000003ff
+_0814515E:
+ lsls r0, r2, 1
+ adds r0, r7
+ adds r0, r6
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bls _0814515E
+ movs r2, 0
+ adds r0, r4, 0x2
+ adds r6, r4, 0
+ adds r6, 0x17
+ movs r1, 0x2B
+ adds r1, r4
+ mov r12, r1
+ adds r4, 0x42
+ ldr r5, _081451F8 @ =0x060001c8
+ adds r3, r0, 0
+_08145184:
+ lsls r0, r2, 1
+ adds r0, r7
+ adds r0, r5
+ adds r1, r2, r3
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x14
+ bls _08145184
+ movs r2, 0
+ ldr r5, _081451FC @ =0x06000248
+ adds r3, r6, 0
+_0814519E:
+ lsls r0, r2, 1
+ adds r0, r7
+ adds r0, r5
+ adds r1, r2, r3
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x13
+ bls _0814519E
+ movs r2, 0
+ ldr r5, _08145200 @ =0x060002c8
+ mov r3, r12
+_081451B8:
+ lsls r0, r2, 1
+ adds r0, r7
+ adds r0, r5
+ adds r1, r2, r3
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x16
+ bls _081451B8
+ movs r2, 0
+ ldr r3, _08145204 @ =0x06000348
+_081451D0:
+ lsls r0, r2, 1
+ adds r0, r7
+ adds r0, r3
+ adds r1, r2, r4
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xB
+ bls _081451D0
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081451EC: .4byte gCreditsCopyrightEnd_Gfx
+_081451F0: .4byte gIntroCopyright_Pal
+_081451F4: .4byte 0x000003ff
+_081451F8: .4byte 0x060001c8
+_081451FC: .4byte 0x06000248
+_08145200: .4byte 0x060002c8
+_08145204: .4byte 0x06000348
+ thumb_func_end sub_8145128
+
+ thumb_func_start sub_8145208
+sub_8145208: @ 8145208
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r3, r2, 0
+ movs r0, 0x3F
+ ands r0, r2
+ adds r1, r0, 0
+ adds r1, 0x50
+ cmp r2, 0xFF
+ bne _08145220
+ movs r0, 0x1
+ b _08145246
+_08145220:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _08145230
+ movs r2, 0x80
+ lsls r2, 4
+ adds r0, r2, 0
+ orrs r1, r0
+_08145230:
+ movs r0, 0x40
+ ands r3, r0
+ cmp r3, 0
+ beq _08145244
+ movs r2, 0x80
+ lsls r2, 3
+ adds r0, r2, 0
+ orrs r1, r0
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+_08145244:
+ adds r0, r1, 0
+_08145246:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8145208
+
+ thumb_func_start sub_814524C
+sub_814524C: @ 814524C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ str r0, [sp]
+ ldr r0, [sp, 0x2C]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x4]
+ lsls r3, 16
+ lsrs r3, 16
+ str r3, [sp, 0x8]
+ lsls r0, 16
+ lsrs r0, 20
+ lsls r0, 28
+ lsrs r0, 16
+ mov r9, r0
+ movs r5, 0
+_0814527A:
+ movs r4, 0
+ lsls r7, r5, 1
+ ldr r1, [sp, 0x4]
+ adds r0, r1, r5
+ adds r2, r5, 0x1
+ mov r8, r2
+ lsls r0, 6
+ ldr r1, [sp, 0x8]
+ adds r6, r0, r1
+_0814528C:
+ adds r0, r7, r5
+ adds r0, r4
+ ldr r2, [sp]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ bl sub_8145208
+ mov r2, r10
+ adds r1, r2, r4
+ lsls r1, 1
+ adds r1, r6
+ movs r2, 0xC0
+ lsls r2, 19
+ adds r1, r2
+ add r0, r9
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _0814528C
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _0814527A
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814524C
+
+ thumb_func_start sub_81452D0
+sub_81452D0: @ 81452D0
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsrs r1, 20
+ lsls r1, 28
+ lsrs r1, 16
+ movs r2, 0
+ ldr r7, _08145360 @ =gUnknown_0840B83C
+ movs r4, 0xC0
+ lsls r4, 19
+ adds r1, 0x1
+ ldr r3, _08145364 @ =0x000003ff
+_081452EE:
+ lsls r0, r2, 1
+ adds r0, r5
+ adds r0, r4
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bls _081452EE
+ str r6, [sp]
+ adds r0, r7, 0
+ movs r1, 0x3
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ ldr r0, _08145368 @ =gUnknown_0840B84B
+ str r6, [sp]
+ movs r1, 0x7
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ ldr r4, _0814536C @ =gUnknown_0840B85A
+ str r6, [sp]
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ str r6, [sp]
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ ldr r0, _08145370 @ =gUnknown_0840B869
+ str r6, [sp]
+ movs r1, 0x14
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ ldr r0, _08145374 @ =gUnknown_0840B878
+ str r6, [sp]
+ movs r1, 0x18
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145360: .4byte gUnknown_0840B83C
+_08145364: .4byte 0x000003ff
+_08145368: .4byte gUnknown_0840B84B
+_0814536C: .4byte gUnknown_0840B85A
+_08145370: .4byte gUnknown_0840B869
+_08145374: .4byte gUnknown_0840B878
+ thumb_func_end sub_81452D0
+
+ thumb_func_start sub_8145378
+sub_8145378: @ 8145378
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _08145390 @ =gUnknown_0203935C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08145394
+ adds r0, r4, 0
+ bl DestroySprite
+ b _08145418
+ .align 2, 0
+_08145390: .4byte gUnknown_0203935C
+_08145394:
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x5
+ bhi _08145418
+ lsls r0, 2
+ ldr r1, _081453A8 @ =_081453AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081453A8: .4byte _081453AC
+ .align 2, 0
+_081453AC:
+ .4byte _081453C4
+ .4byte _081453CE
+ .4byte _081453D4
+ .4byte _081453DE
+ .4byte _081453E8
+ .4byte _081453FE
+_081453C4:
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ b _08145418
+_081453CE:
+ adds r0, r4, 0
+ movs r1, 0x1
+ b _08145402
+_081453D4:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnimIfDifferent
+ b _08145418
+_081453DE:
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl StartSpriteAnimIfDifferent
+ b _08145418
+_081453E8:
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ ldrh r1, [r4, 0x20]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x78
+ ble _08145418
+ subs r0, r1, 0x1
+ b _08145416
+_081453FE:
+ adds r0, r4, 0
+ movs r1, 0
+_08145402:
+ bl StartSpriteAnimIfDifferent
+ ldrh r2, [r4, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r0, 0x20
+ negs r0, r0
+ cmp r1, r0
+ ble _08145418
+ subs r0, r2, 0x1
+_08145416:
+ strh r0, [r4, 0x20]
+_08145418:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8145378
+
+ thumb_func_start sub_8145420
+sub_8145420: @ 8145420
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _08145438 @ =gUnknown_0203935C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0814543C
+ adds r0, r4, 0
+ bl DestroySprite
+ b _081454D8
+ .align 2, 0
+_08145438: .4byte gUnknown_0203935C
+_0814543C:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08145464
+ cmp r0, 0x1
+ bgt _0814544E
+ cmp r0, 0
+ beq _08145458
+ b _081454D8
+_0814544E:
+ cmp r0, 0x2
+ beq _081454A0
+ cmp r0, 0x3
+ beq _081454BE
+ b _081454D8
+_08145458:
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ b _081454D8
+_08145464:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xC8
+ ble _08145476
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnimIfDifferent
+ b _0814547E
+_08145476:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnimIfDifferent
+_0814547E:
+ ldrh r2, [r4, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r0, 0x20
+ negs r0, r0
+ cmp r1, r0
+ ble _08145490
+ subs r0, r2, 0x2
+ strh r0, [r4, 0x20]
+_08145490:
+ ldr r0, _0814549C @ =gUnknown_0203935A
+ ldrh r0, [r0]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ b _081454D8
+ .align 2, 0
+_0814549C: .4byte gUnknown_0203935A
+_081454A0:
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ ldrh r1, [r4, 0x3C]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _081454D8
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ b _081454D6
+_081454BE:
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ ldrh r2, [r4, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r0, 0x20
+ negs r0, r0
+ cmp r1, r0
+ ble _081454D8
+ subs r0, r2, 0x1
+_081454D6:
+ strh r0, [r4, 0x20]
+_081454D8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8145420
+
+ thumb_func_start sub_81454E0
+sub_81454E0: @ 81454E0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r0, _081454F8 @ =gUnknown_0203935C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _081454FC
+ adds r0, r5, 0
+ bl DestroySprite
+ b _081456A6
+ .align 2, 0
+_081454F8: .4byte gUnknown_0203935C
+_081454FC:
+ ldrh r0, [r5, 0x3C]
+ adds r0, 0x1
+ strh r0, [r5, 0x3C]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0xA
+ bhi _08145544
+ lsls r0, 2
+ ldr r1, _08145514 @ =_08145518
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08145514: .4byte _08145518
+ .align 2, 0
+_08145518:
+ .4byte _08145544
+ .4byte _0814559E
+ .4byte _08145620
+ .4byte _08145660
+ .4byte _08145544
+ .4byte _08145544
+ .4byte _08145544
+ .4byte _08145544
+ .4byte _08145544
+ .4byte _08145544
+ .4byte _08145696
+_08145544:
+ ldrb r1, [r5, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r5, 0x1]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ movs r0, 0x1F
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r5, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ movs r0, 0x10
+ strh r0, [r5, 0x32]
+ ldrh r4, [r5, 0x30]
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x80
+ lsls r0, 9
+ movs r1, 0x10
+ bl __divsi3
+ adds r1, r0, 0
+ str r1, [sp]
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _081456A6
+_0814559E:
+ ldrh r1, [r5, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ cmp r0, 0xFF
+ bgt _081455D4
+ adds r0, r1, 0
+ adds r0, 0x8
+ strh r0, [r5, 0x32]
+ ldrh r4, [r5, 0x30]
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x32
+ ldrsh r1, [r5, r0]
+ movs r0, 0x80
+ lsls r0, 9
+ bl __divsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ b _081455DA
+_081455D4:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_081455DA:
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ cmp r1, 0x2
+ beq _081456A6
+ cmp r1, 0x2
+ bgt _081455EC
+ cmp r1, 0x1
+ beq _081455F2
+ b _081456A6
+_081455EC:
+ cmp r1, 0x3
+ beq _0814560A
+ b _081456A6
+_081455F2:
+ ldrh r1, [r5, 0x3C]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08145602
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x1
+ strh r0, [r5, 0x22]
+_08145602:
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x2
+ strh r0, [r5, 0x20]
+ b _081456A6
+_0814560A:
+ ldrh r0, [r5, 0x3C]
+ ands r1, r0
+ cmp r1, 0
+ bne _08145618
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x1
+ strh r0, [r5, 0x22]
+_08145618:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x2
+ strh r0, [r5, 0x20]
+ b _081456A6
+_08145620:
+ ldrh r1, [r5, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _08145630
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x34]
+ b _081456A6
+_08145630:
+ ldr r1, _0814565C @ =REG_BLDCNT
+ movs r2, 0xF4
+ lsls r2, 4
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x10
+ strh r0, [r1]
+ ldrb r1, [r5, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r5, 0x1]
+ movs r0, 0x10
+ strh r0, [r5, 0x34]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _081456A6
+ .align 2, 0
+_0814565C: .4byte REG_BLDCNT
+_08145660:
+ ldrh r1, [r5, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _08145684
+ subs r1, 0x1
+ strh r1, [r5, 0x34]
+ ldr r3, _08145680 @ =REG_BLDALPHA
+ movs r0, 0x34
+ ldrsh r2, [r5, r0]
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ adds r1, r0
+ strh r1, [r3]
+ b _081456A6
+ .align 2, 0
+_08145680: .4byte REG_BLDALPHA
+_08145684:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0xA
+ strh r0, [r5, 0x2E]
+ b _081456A6
+_08145696:
+ ldr r0, _081456B0 @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r5, 0
+ bl DestroySprite
+_081456A6:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081456B0: .4byte REG_BLDCNT
+ thumb_func_end sub_81454E0
+
+ thumb_func_start sub_81456B4
+sub_81456B4: @ 81456B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp, 0x10]
+ lsls r3, 16
+ lsrs r3, 16
+ mov r9, r3
+ adds r0, r6, 0
+ bl NationalPokedexNumToSpecies
+ adds r6, r0, 0
+ cmp r6, 0xC9
+ beq _081456F8
+ movs r0, 0x9A
+ lsls r0, 1
+ cmp r6, r0
+ beq _081456EE
+ movs r7, 0
+ b _081456FC
+_081456EE:
+ ldr r0, _081456F4 @ =gSaveBlock2
+ ldr r7, [r0, 0x20]
+ b _081456FC
+ .align 2, 0
+_081456F4: .4byte gSaveBlock2
+_081456F8:
+ ldr r0, _081457E8 @ =gSaveBlock2
+ ldr r7, [r0, 0x1C]
+_081456FC:
+ lsls r0, r6, 3
+ ldr r1, _081457EC @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _081457F0 @ =gMonFrontPicCoords
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _081457F4 @ =gUnknown_0840B5A0
+ mov r8, r4
+ mov r5, r9
+ lsls r4, r5, 2
+ add r4, r8
+ ldr r4, [r4]
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r4, 0x1
+ str r4, [sp, 0xC]
+ bl sub_800D378
+ ldr r2, _081457F8 @ =0x0000ffff
+ adds r0, r6, 0
+ movs r1, 0
+ bl species_and_otid_get_pal
+ lsls r5, 4
+ mov r8, r5
+ movs r1, 0x80
+ lsls r1, 1
+ add r1, r8
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ mov r7, r9
+ lsls r6, r7, 24
+ lsrs r6, 24
+ mov r0, r9
+ adds r1, r6, 0
+ bl sub_8143648
+ ldr r0, _081457FC @ =gUnknown_02024E8C
+ mov r2, r10
+ lsls r1, r2, 16
+ asrs r1, 16
+ ldr r3, [sp, 0x10]
+ lsls r2, r3, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08145800 @ =gSprites
+ lsls r2, r4, 4
+ adds r2, r4
+ lsls r2, 2
+ adds r3, r2, r5
+ ldrb r1, [r3, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ mov r7, r8
+ orrs r0, r7
+ movs r1, 0xD
+ negs r1, r1
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ mov r0, r9
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r8, r0
+ ldrb r0, [r0]
+ orrs r0, r1
+ mov r1, r8
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x1C
+ adds r2, r0
+ ldr r0, _08145804 @ =sub_81454E0
+ str r0, [r2]
+ ldr r0, _08145808 @ =gSpriteTemplate_840CAEC
+ movs r2, 0x20
+ ldrsh r1, [r3, r2]
+ movs r7, 0x22
+ ldrsh r2, [r3, r7]
+ movs r3, 0x1
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r4, [r0, 0x2E]
+ adds r1, r6, 0
+ bl StartSpriteAnimIfDifferent
+ adds r0, r4, 0
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081457E8: .4byte gSaveBlock2
+_081457EC: .4byte gMonFrontPicTable
+_081457F0: .4byte gMonFrontPicCoords
+_081457F4: .4byte gUnknown_0840B5A0
+_081457F8: .4byte 0x0000ffff
+_081457FC: .4byte gUnknown_02024E8C
+_08145800: .4byte gSprites
+_08145804: .4byte sub_81454E0
+_08145808: .4byte gSpriteTemplate_840CAEC
+ thumb_func_end sub_81456B4
+
+ thumb_func_start sub_814580C
+sub_814580C: @ 814580C
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r4, _08145838 @ =gSprites
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0xA
+ beq _08145830
+ ldr r0, _0814583C @ =gUnknown_0203935C
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ beq _08145840
+_08145830:
+ adds r0, r3, 0
+ bl DestroySprite
+ b _081458D4
+ .align 2, 0
+_08145838: .4byte gSprites
+_0814583C: .4byte gUnknown_0203935C
+_08145840:
+ adds r0, r1, 0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ movs r1, 0x4
+ ands r1, r0
+ mov r0, r12
+ ldrb r2, [r0]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ movs r2, 0x2E
+ ldrsh r1, [r3, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ movs r0, 0xC
+ ands r0, r1
+ ldrb r2, [r3, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x1]
+ movs r0, 0x2E
+ ldrsh r2, [r3, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x1]
+ lsls r0, 30
+ lsrs r0, 30
+ movs r2, 0x4
+ negs r2, r2
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x1]
+ movs r2, 0x2E
+ ldrsh r1, [r3, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x3]
+ movs r1, 0x3E
+ ands r1, r0
+ ldrb r2, [r3, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x20]
+ strh r0, [r3, 0x20]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x22]
+ strh r0, [r3, 0x22]
+_081458D4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814580C
+
+ thumb_func_start sub_81458DC
+sub_81458DC: @ 81458DC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r7, _0814597C @ =0x0201c000
+ ldr r0, _08145980 @ =0x00004023
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetStarterPokemon
+ lsls r0, 16
+ lsrs r0, 16
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ movs r4, 0x1
+ movs r5, 0
+ ldr r0, _08145984 @ =0x00000181
+ mov r8, r0
+_0814590E:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ adds r6, r7, 0
+ adds r6, 0x90
+ cmp r0, 0
+ beq _0814592C
+ lsls r0, r5, 1
+ adds r0, r6, r0
+ strh r4, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_0814592C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r8
+ bls _0814590E
+ adds r4, r5, 0
+ ldr r0, _08145984 @ =0x00000181
+ lsls r1, r4, 16
+ mov r9, r1
+ movs r2, 0x8E
+ adds r2, r7
+ mov r8, r2
+ adds r1, r7, 0
+ adds r1, 0x86
+ str r1, [sp]
+ cmp r4, r0
+ bhi _08145964
+ adds r1, r6, 0
+ movs r3, 0
+ adds r2, r0, 0
+_08145954:
+ lsls r0, r4, 1
+ adds r0, r1, r0
+ strh r3, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r2
+ bls _08145954
+_08145964:
+ movs r2, 0xE5
+ lsls r2, 2
+ adds r0, r7, r2
+ strh r5, [r0]
+ mov r1, r9
+ lsrs r0, r1, 16
+ cmp r0, 0x43
+ bhi _08145988
+ mov r2, r8
+ strh r5, [r2]
+ b _0814598E
+ .align 2, 0
+_0814597C: .4byte 0x0201c000
+_08145980: .4byte 0x00004023
+_08145984: .4byte 0x00000181
+_08145988:
+ movs r0, 0x44
+ mov r1, r8
+ strh r0, [r1]
+_0814598E:
+ movs r5, 0
+ movs r2, 0xE5
+ lsls r2, 2
+ adds r4, r7, r2
+ mov r9, r5
+ b _0814599E
+_0814599A:
+ cmp r5, 0x43
+ bhi _081459EE
+_0814599E:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r4]
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r1, r5, 1
+ adds r1, r7, r1
+ lsls r0, r2, 1
+ adds r3, r6, r0
+ ldrh r0, [r3]
+ strh r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r0, r9
+ strh r0, [r3]
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r2, r0
+ beq _081459E8
+ ldrh r0, [r4]
+ lsls r0, 1
+ adds r0, r6, r0
+ ldrh r0, [r0]
+ strh r0, [r3]
+ ldrh r0, [r4]
+ lsls r0, 1
+ adds r0, r6, r0
+ mov r1, r9
+ strh r1, [r0]
+_081459E8:
+ ldrh r0, [r4]
+ cmp r0, 0
+ bne _0814599A
+_081459EE:
+ mov r2, r8
+ ldrh r0, [r2]
+ cmp r0, 0x43
+ bhi _08145A26
+ adds r5, r0, 0
+ movs r2, 0
+ cmp r5, 0x43
+ bhi _08145A5C
+ mov r3, r8
+_08145A00:
+ lsls r1, r5, 1
+ adds r1, r7, r1
+ lsls r0, r2, 1
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r0, [r3]
+ cmp r2, r0
+ bne _08145A1A
+ movs r2, 0
+_08145A1A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x43
+ bls _08145A00
+ b _08145A5C
+_08145A26:
+ movs r4, 0
+ ldrh r0, [r7]
+ cmp r0, r10
+ beq _08145A42
+_08145A2E:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 1
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ cmp r0, r10
+ beq _08145A42
+ cmp r4, 0x43
+ bls _08145A2E
+_08145A42:
+ mov r1, r8
+ ldrh r0, [r1]
+ subs r0, 0x1
+ cmp r4, r0
+ bge _08145A5C
+ lsls r0, r4, 1
+ adds r0, r7, r0
+ ldr r2, [sp]
+ ldrh r1, [r2]
+ strh r1, [r0]
+ mov r0, r10
+ strh r0, [r2]
+ b _08145A62
+_08145A5C:
+ mov r2, r10
+ ldr r1, [sp]
+ strh r2, [r1]
+_08145A62:
+ movs r0, 0x44
+ mov r1, r8
+ strh r0, [r1]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81458DC
+
+ .align 2, 0 @ Don't pad with nop.