summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-12-30 13:11:16 -0800
committerYamaArashi <shadow962@live.com>2016-12-30 13:12:35 -0800
commit8f18812cfded3711d0fc1c6d08ac25b655be5f9e (patch)
tree85f03da1f3309af15219277d4b16db0442c1661e
parent9e5c4ef564135e098d7d89c3a980e4077a03b9f8 (diff)
split out pokeblock feeding code
-rw-r--r--asm/pokeblock_feed.s1836
-rw-r--r--asm/rom_81473B8.s1827
-rw-r--r--ld_script.txt1
3 files changed, 1837 insertions, 1827 deletions
diff --git a/asm/pokeblock_feed.s b/asm/pokeblock_feed.s
new file mode 100644
index 000000000..fafc452a3
--- /dev/null
+++ b/asm/pokeblock_feed.s
@@ -0,0 +1,1836 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8147890
+sub_8147890: @ 8147890
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTasks
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8147890
+
+ thumb_func_start sub_81478A8
+sub_81478A8: @ 81478A8
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81478A8
+
+ thumb_func_start sub_81478BC
+sub_81478BC: @ 81478BC
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _081478D8 @ =gMain
+ ldr r1, _081478DC @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0xD
+ bls _081478CE
+ b _08147AD0
+_081478CE:
+ lsls r0, 2
+ ldr r1, _081478E0 @ =_081478E4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081478D8: .4byte gMain
+_081478DC: .4byte 0x0000043c
+_081478E0: .4byte _081478E4
+ .align 2, 0
+_081478E4:
+ .4byte _0814791C
+ .4byte _08147938
+ .4byte _0814794C
+ .4byte _08147960
+ .4byte _08147966
+ .4byte _08147980
+ .4byte _0814798C
+ .4byte _081479B8
+ .4byte _081479DC
+ .4byte _081479F4
+ .4byte _08147A20
+ .4byte _08147A3C
+ .4byte _08147A5C
+ .4byte _08147A8C
+_0814791C:
+ bl sub_80F9438
+ bl sub_80F9368
+ bl sub_8147B04
+ ldr r1, _08147930 @ =gMain
+ ldr r2, _08147934 @ =0x0000043c
+ adds r1, r2
+ b _08147A4A
+ .align 2, 0
+_08147930: .4byte gMain
+_08147934: .4byte 0x0000043c
+_08147938:
+ bl ResetPaletteFade
+ ldr r2, _08147948 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ b _08147A44
+ .align 2, 0
+_08147948: .4byte gPaletteFade
+_0814794C:
+ bl ResetSpriteData
+ ldr r1, _08147958 @ =gMain
+ ldr r2, _0814795C @ =0x0000043c
+ adds r1, r2
+ b _08147A4A
+ .align 2, 0
+_08147958: .4byte gMain
+_0814795C: .4byte 0x0000043c
+_08147960:
+ bl FreeAllSpritePalettes
+ b _08147A44
+_08147966:
+ ldr r0, _08147974 @ =gWindowConfig_81E6E50
+ bl SetUpWindowConfig
+ ldr r1, _08147978 @ =gMain
+ ldr r2, _0814797C @ =0x0000043c
+ adds r1, r2
+ b _08147A4A
+ .align 2, 0
+_08147974: .4byte gWindowConfig_81E6E50
+_08147978: .4byte gMain
+_0814797C: .4byte 0x0000043c
+_08147980:
+ ldr r0, _08147988 @ =gWindowConfig_81E6E50
+ bl MultistepInitMenuWindowBegin
+ b _08147A44
+ .align 2, 0
+_08147988: .4byte gWindowConfig_81E6E50
+_0814798C:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _08147996
+ b _08147AD0
+_08147996:
+ ldr r0, _081479A8 @ =0x02000000
+ ldr r1, _081479AC @ =0x0001ffff
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _081479B0 @ =gMain
+ ldr r2, _081479B4 @ =0x0000043c
+ adds r1, r2
+ b _08147A4A
+ .align 2, 0
+_081479A8: .4byte 0x02000000
+_081479AC: .4byte 0x0001ffff
+_081479B0: .4byte gMain
+_081479B4: .4byte 0x0000043c
+_081479B8:
+ ldr r0, _081479D4 @ =gUnknown_02039310
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _081479D8 @ =gPlayerParty
+ adds r0, r1
+ bl sub_8147B20
+ lsls r0, 24
+ cmp r0, 0
+ bne _081479D0
+ b _08147AD0
+_081479D0:
+ b _08147A44
+ .align 2, 0
+_081479D4: .4byte gUnknown_02039310
+_081479D8: .4byte gPlayerParty
+_081479DC:
+ bl sub_81480B4
+ ldr r1, _081479EC @ =0x02000000
+ ldr r2, _081479F0 @ =0x0001fffd
+ adds r1, r2
+ strb r0, [r1]
+ b _08147A44
+ .align 2, 0
+_081479EC: .4byte 0x02000000
+_081479F0: .4byte 0x0001fffd
+_081479F4:
+ ldr r0, _08147A10 @ =gUnknown_02039310
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08147A14 @ =gPlayerParty
+ adds r0, r1
+ bl sub_8147F84
+ ldr r1, _08147A18 @ =0x02000000
+ ldr r2, _08147A1C @ =0x0001fffe
+ adds r1, r2
+ strb r0, [r1]
+ b _08147A44
+ .align 2, 0
+_08147A10: .4byte gUnknown_02039310
+_08147A14: .4byte gPlayerParty
+_08147A18: .4byte 0x02000000
+_08147A1C: .4byte 0x0001fffe
+_08147A20:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r1, _08147A34 @ =gMain
+ ldr r2, _08147A38 @ =0x0000043c
+ adds r1, r2
+ b _08147A4A
+ .align 2, 0
+_08147A34: .4byte gMain
+_08147A38: .4byte 0x0000043c
+_08147A3C:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _08147AD0
+_08147A44:
+ ldr r1, _08147A54 @ =gMain
+ ldr r0, _08147A58 @ =0x0000043c
+ adds r1, r0
+_08147A4A:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08147AD0
+ .align 2, 0
+_08147A54: .4byte gMain
+_08147A58: .4byte 0x0000043c
+_08147A5C:
+ ldr r3, _08147AB0 @ =0x04000208
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _08147AB4 @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08147AB8 @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _08147ABC @ =sub_81478A8
+ bl SetVBlankCallback
+ ldr r1, _08147AC0 @ =gMain
+ ldr r2, _08147AC4 @ =0x0000043c
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08147A8C:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, _08147AC8 @ =gPaletteFade
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _08147ACC @ =sub_8147890
+ bl SetMainCallback2
+ movs r0, 0x1
+ b _08147AD2
+ .align 2, 0
+_08147AB0: .4byte 0x04000208
+_08147AB4: .4byte 0x04000200
+_08147AB8: .4byte REG_DISPSTAT
+_08147ABC: .4byte sub_81478A8
+_08147AC0: .4byte gMain
+_08147AC4: .4byte 0x0000043c
+_08147AC8: .4byte gPaletteFade
+_08147ACC: .4byte sub_8147890
+_08147AD0:
+ movs r0, 0
+_08147AD2:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81478BC
+
+ thumb_func_start sub_8147ADC
+sub_8147ADC: @ 8147ADC
+ push {lr}
+_08147ADE:
+ bl sub_81478BC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08147AF2
+ movs r0, 0x1
+ bl sub_8147DDC
+ b _08147AFE
+_08147AF2:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08147ADE
+_08147AFE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8147ADC
+
+ thumb_func_start sub_8147B04
+sub_8147B04: @ 8147B04
+ ldr r1, _08147B18 @ =REG_BG1CNT
+ ldr r2, _08147B1C @ =0x00001d02
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ movs r2, 0x9A
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_08147B18: .4byte REG_BG1CNT
+_08147B1C: .4byte 0x00001d02
+ thumb_func_end sub_8147B04
+
+ thumb_func_start sub_8147B20
+sub_8147B20: @ 8147B20
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ ldr r0, _08147B40 @ =0x02000000
+ ldr r1, _08147B44 @ =0x0001ffff
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bls _08147B34
+ b _08147C84
+_08147B34:
+ lsls r0, 2
+ ldr r1, _08147B48 @ =_08147B4C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08147B40: .4byte 0x02000000
+_08147B44: .4byte 0x0001ffff
+_08147B48: .4byte _08147B4C
+ .align 2, 0
+_08147B4C:
+ .4byte _08147B70
+ .4byte _08147BB8
+ .4byte _08147BF0
+ .4byte _08147BFC
+ .4byte _08147C08
+ .4byte _08147C14
+ .4byte _08147C2C
+ .4byte _08147C38
+ .4byte _08147C60
+_08147B70:
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r0, r5, 3
+ ldr r1, _08147BAC @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _08147BB0 @ =gMonFrontPicCoords
+ lsls r2, r5, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08147BB4 @ =gUnknown_081FAF4C
+ ldr r4, [r4, 0x4]
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ bl sub_800D334
+ b _08147C40
+ .align 2, 0
+_08147BAC: .4byte gMonFrontPicTable
+_08147BB0: .4byte gMonFrontPicCoords
+_08147BB4: .4byte gUnknown_081FAF4C
+_08147BB8:
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r6, r0, 0
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl sub_80409C8
+ adds r4, r0, 0
+ bl LoadCompressedObjectPalette
+ ldrh r0, [r4, 0x4]
+ movs r1, 0x1
+ bl GetMonSpriteTemplate_803C56C
+ b _08147C40
+_08147BF0:
+ ldr r0, _08147BF8 @ =gUnknown_083F7F74
+ bl LoadCompressedObjectPic
+ b _08147C40
+ .align 2, 0
+_08147BF8: .4byte gUnknown_083F7F74
+_08147BFC:
+ ldr r0, _08147C04 @ =gUnknown_083F7F7C
+ bl LoadCompressedObjectPalette
+ b _08147C40
+ .align 2, 0
+_08147C04: .4byte gUnknown_083F7F7C
+_08147C08:
+ ldr r0, _08147C10 @ =gUnknown_084121DC
+ bl LoadCompressedObjectPic
+ b _08147C40
+ .align 2, 0
+_08147C10: .4byte gUnknown_084121DC
+_08147C14:
+ ldr r0, _08147C24 @ =gScriptItemId
+ ldrb r0, [r0]
+ bl sub_8147C90
+ ldr r0, _08147C28 @ =gUnknown_02039350
+ bl LoadCompressedObjectPalette
+ b _08147C40
+ .align 2, 0
+_08147C24: .4byte gScriptItemId
+_08147C28: .4byte gUnknown_02039350
+_08147C2C:
+ ldr r0, _08147C34 @ =gBattleTerrainTiles_Building
+ movs r1, 0xC0
+ lsls r1, 19
+ b _08147C3C
+ .align 2, 0
+_08147C34: .4byte gBattleTerrainTiles_Building
+_08147C38:
+ ldr r0, _08147C50 @ =gUnknown_08E782FC
+ ldr r1, _08147C54 @ =0x0600e800
+_08147C3C:
+ bl LZDecompressVram
+_08147C40:
+ ldr r1, _08147C58 @ =0x02000000
+ ldr r0, _08147C5C @ =0x0001ffff
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08147C84
+ .align 2, 0
+_08147C50: .4byte gUnknown_08E782FC
+_08147C54: .4byte 0x0600e800
+_08147C58: .4byte 0x02000000
+_08147C5C: .4byte 0x0001ffff
+_08147C60:
+ ldr r0, _08147C78 @ =gBattleTerrainPalette_BattleTower
+ movs r1, 0x20
+ movs r2, 0x60
+ bl LoadCompressedPalette
+ ldr r0, _08147C7C @ =0x02000000
+ ldr r1, _08147C80 @ =0x0001ffff
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ b _08147C86
+ .align 2, 0
+_08147C78: .4byte gBattleTerrainPalette_BattleTower
+_08147C7C: .4byte 0x02000000
+_08147C80: .4byte 0x0001ffff
+_08147C84:
+ movs r0, 0
+_08147C86:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8147B20
+
+ thumb_func_start sub_8147C90
+sub_8147C90: @ 8147C90
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 21
+ ldr r1, _08147CB8 @ =gSaveBlock1 + 0x7F8
+ adds r0, r1
+ movs r1, 0
+ bl sub_810CA9C
+ lsls r0, 24
+ ldr r2, _08147CBC @ =gUnknown_02039350
+ ldr r1, _08147CC0 @ =gUnknown_084120A4
+ lsrs r0, 22
+ subs r0, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, _08147CC4 @ =0x000039e2
+ strh r0, [r2, 0x4]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147CB8: .4byte gSaveBlock1 + 0x7F8
+_08147CBC: .4byte gUnknown_02039350
+_08147CC0: .4byte gUnknown_084120A4
+_08147CC4: .4byte 0x000039e2
+ thumb_func_end sub_8147C90
+
+ thumb_func_start sub_8147CC8
+sub_8147CC8: @ 8147CC8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08147D00 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08147CDC
+ b _08147DCE
+_08147CDC:
+ ldr r0, _08147D04 @ =gTasks
+ lsls r2, r4, 2
+ adds r1, r2, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x8
+ ldrsh r3, [r1, r0]
+ ldr r0, _08147D08 @ =0x0000010d
+ adds r5, r2, 0
+ cmp r3, r0
+ beq _08147D50
+ cmp r3, r0
+ bgt _08147D0C
+ cmp r3, 0
+ beq _08147D20
+ cmp r3, 0xFF
+ beq _08147D38
+ b _08147D8C
+ .align 2, 0
+_08147D00: .4byte gPaletteFade
+_08147D04: .4byte gTasks
+_08147D08: .4byte 0x0000010d
+_08147D0C:
+ ldr r0, _08147D1C @ =0x00000119
+ cmp r3, r0
+ beq _08147D68
+ adds r0, 0x10
+ cmp r3, r0
+ beq _08147D80
+ b _08147D8C
+ .align 2, 0
+_08147D1C: .4byte 0x00000119
+_08147D20:
+ ldr r0, _08147D30 @ =gUnknown_03005F3C
+ strb r3, [r0]
+ ldr r0, _08147D34 @ =gUnknown_03005F94
+ strh r3, [r0]
+ bl sub_81481DC
+ b _08147D8C
+ .align 2, 0
+_08147D30: .4byte gUnknown_03005F3C
+_08147D34: .4byte gUnknown_03005F94
+_08147D38:
+ ldr r0, _08147D48 @ =0x02000000
+ ldr r2, _08147D4C @ =0x0001fffd
+ adds r0, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1, 0xA]
+ bl sub_8148108
+ b _08147D8C
+ .align 2, 0
+_08147D48: .4byte 0x02000000
+_08147D4C: .4byte 0x0001fffd
+_08147D50:
+ bl sub_814817C
+ ldr r1, _08147D60 @ =0x02000000
+ ldr r2, _08147D64 @ =0x0001fffc
+ adds r1, r2
+ strb r0, [r1]
+ b _08147D8C
+ .align 2, 0
+_08147D60: .4byte 0x02000000
+_08147D64: .4byte 0x0001fffc
+_08147D68:
+ ldr r0, _08147D78 @ =0x02000000
+ ldr r1, _08147D7C @ =0x0001fffe
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8148044
+ b _08147D8C
+ .align 2, 0
+_08147D78: .4byte 0x02000000
+_08147D7C: .4byte 0x0001fffe
+_08147D80:
+ ldr r0, _08147D88 @ =sub_8147E40
+ str r0, [r1]
+ b _08147DCE
+ .align 2, 0
+_08147D88: .4byte sub_8147E40
+_08147D8C:
+ ldr r0, _08147DA0 @ =gUnknown_03005F94
+ ldr r1, _08147DA4 @ =gUnknown_03005F34
+ ldrh r2, [r0]
+ ldrh r0, [r1]
+ cmp r2, r0
+ bcs _08147DA8
+ bl sub_814825C
+ b _08147DB8
+ .align 2, 0
+_08147DA0: .4byte gUnknown_03005F94
+_08147DA4: .4byte gUnknown_03005F34
+_08147DA8:
+ cmp r2, r0
+ bne _08147DB8
+ ldr r0, _08147DD4 @ =gTasks
+ adds r1, r5, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0xFE
+ strh r0, [r1, 0x8]
+_08147DB8:
+ ldr r1, _08147DD8 @ =gUnknown_03005F94
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ ldr r0, _08147DD4 @ =gTasks
+ adds r1, r5, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_08147DCE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147DD4: .4byte gTasks
+_08147DD8: .4byte gUnknown_03005F94
+ thumb_func_end sub_8147CC8
+
+ thumb_func_start sub_8147DDC
+sub_8147DDC: @ 8147DDC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08147E08 @ =sub_8147CC8
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08147E0C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147E08: .4byte sub_8147CC8
+_08147E0C: .4byte gTasks
+ thumb_func_end sub_8147DDC
+
+ thumb_func_start sub_8147E10
+sub_8147E10: @ 8147E10
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08147E30
+ ldr r0, _08147E38 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08147E3C @ =sub_8147F4C
+ str r0, [r1]
+_08147E30:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147E38: .4byte gTasks
+_08147E3C: .4byte sub_8147F4C
+ thumb_func_end sub_8147E10
+
+ thumb_func_start sub_8147E40
+sub_8147E40: @ 8147E40
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _08147E94 @ =gUnknown_02039310
+ ldrb r1, [r0]
+ movs r0, 0x64
+ adds r5, r1, 0
+ muls r5, r0
+ ldr r0, _08147E98 @ =gPlayerParty
+ adds r5, r0
+ ldr r0, _08147E9C @ =gScriptItemId
+ ldrh r4, [r0]
+ lsls r4, 3
+ ldr r0, _08147EA0 @ =gSaveBlock1 + 0x7F8
+ adds r4, r0
+ adds r0, r5, 0
+ bl GetNature
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ bl sub_810CAE4
+ ldr r6, _08147EA4 @ =gUnknown_02039312
+ strh r0, [r6]
+ ldr r1, _08147EA8 @ =gStringVar1
+ adds r0, r5, 0
+ bl GetMonNickname
+ ldr r1, _08147EAC @ =gStringVar2
+ adds r0, r4, 0
+ bl sub_810CB44
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _08147EB8
+ ldr r0, _08147EB0 @ =gStringVar4
+ ldr r1, _08147EB4 @ =gContestStatsText_NormallyAte
+ bl StringExpandPlaceholders
+ b _08147ED8
+ .align 2, 0
+_08147E94: .4byte gUnknown_02039310
+_08147E98: .4byte gPlayerParty
+_08147E9C: .4byte gScriptItemId
+_08147EA0: .4byte gSaveBlock1 + 0x7F8
+_08147EA4: .4byte gUnknown_02039312
+_08147EA8: .4byte gStringVar1
+_08147EAC: .4byte gStringVar2
+_08147EB0: .4byte gStringVar4
+_08147EB4: .4byte gContestStatsText_NormallyAte
+_08147EB8:
+ cmp r0, 0
+ ble _08147ED0
+ ldr r0, _08147EC8 @ =gStringVar4
+ ldr r1, _08147ECC @ =gContestStatsText_HappilyAte
+ bl StringExpandPlaceholders
+ b _08147ED8
+ .align 2, 0
+_08147EC8: .4byte gStringVar4
+_08147ECC: .4byte gContestStatsText_HappilyAte
+_08147ED0:
+ ldr r0, _08147EF8 @ =gStringVar4
+ ldr r1, _08147EFC @ =gContestStatsText_DisdainfullyAte
+ bl StringExpandPlaceholders
+_08147ED8:
+ ldr r0, _08147EF8 @ =gStringVar4
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrintMessage
+ ldr r1, _08147F00 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08147F04 @ =sub_8147E10
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147EF8: .4byte gStringVar4
+_08147EFC: .4byte gContestStatsText_DisdainfullyAte
+_08147F00: .4byte gTasks
+_08147F04: .4byte sub_8147E10
+ thumb_func_end sub_8147E40
+
+ thumb_func_start sub_8147F08
+sub_8147F08: @ 8147F08
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08147F3C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08147F34
+ ldr r0, _08147F40 @ =gMPlay_BGM
+ ldr r1, _08147F44 @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+ ldr r0, _08147F48 @ =gMain
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08147F34:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147F3C: .4byte gPaletteFade
+_08147F40: .4byte gMPlay_BGM
+_08147F44: .4byte 0x0000ffff
+_08147F48: .4byte gMain
+ thumb_func_end sub_8147F08
+
+ thumb_func_start sub_8147F4C
+sub_8147F4C: @ 8147F4C
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08147F7C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08147F80 @ =sub_8147F08
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147F7C: .4byte gTasks
+_08147F80: .4byte sub_8147F08
+ thumb_func_end sub_8147F4C
+
+ thumb_func_start sub_8147F84
+sub_8147F84: @ 8147F84
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ movs r1, 0x41
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _08148024 @ =gUnknown_02024E8C
+ movs r1, 0x30
+ movs r2, 0x50
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _08148028 @ =gUnknown_03005F24
+ strh r4, [r0]
+ ldr r0, _0814802C @ =gUnknown_03005F2C
+ mov r1, r8
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl GetNature
+ ldr r1, _08148030 @ =gUnknown_03005F30
+ strb r0, [r1]
+ ldr r7, _08148034 @ =gSprites
+ mov r1, r8
+ lsls r0, r1, 4
+ add r0, r8
+ lsls r5, r0, 2
+ adds r6, r5, r7
+ strh r4, [r6, 0x32]
+ adds r0, r7, 0
+ adds r0, 0x1C
+ adds r0, r5, r0
+ ldr r1, _08148038 @ =SpriteCallbackDummy
+ str r1, [r0]
+ ldr r0, _0814803C @ =gUnknown_03005F28
+ mov r9, r0
+ movs r0, 0x1
+ mov r1, r9
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl sub_8040A3C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08148016
+ adds r0, r7, 0
+ adds r0, 0x10
+ adds r0, r5, r0
+ ldr r1, _08148040 @ =gSpriteAffineAnimTable_84120EC
+ str r1, [r0]
+ ldrb r3, [r6, 0x1]
+ movs r0, 0x3
+ orrs r3, r0
+ strb r3, [r6, 0x1]
+ lsrs r1, r3, 6
+ ldrb r2, [r6, 0x3]
+ lsrs r2, 6
+ lsls r3, 30
+ lsrs r3, 30
+ adds r0, r6, 0
+ bl CalcCenterToCornerVec
+ movs r0, 0
+ mov r1, r9
+ strb r0, [r1]
+_08148016:
+ mov r0, r8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08148024: .4byte gUnknown_02024E8C
+_08148028: .4byte gUnknown_03005F24
+_0814802C: .4byte gUnknown_03005F2C
+_08148030: .4byte gUnknown_03005F30
+_08148034: .4byte gSprites
+_08148038: .4byte SpriteCallbackDummy
+_0814803C: .4byte gUnknown_03005F28
+_08148040: .4byte gSpriteAffineAnimTable_84120EC
+ thumb_func_end sub_8147F84
+
+ thumb_func_start sub_8148044
+sub_8148044: @ 8148044
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0814806C @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r2, r1, r3
+ movs r0, 0x30
+ strh r0, [r2, 0x20]
+ movs r0, 0x50
+ strh r0, [r2, 0x22]
+ ldr r0, _08148070 @ =0x0000fff8
+ strh r0, [r2, 0x2E]
+ movs r0, 0x1
+ strh r0, [r2, 0x30]
+ adds r3, 0x1C
+ adds r1, r3
+ ldr r0, _08148074 @ =sub_8148078
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0814806C: .4byte gSprites
+_08148070: .4byte 0x0000fff8
+_08148074: .4byte sub_8148078
+ thumb_func_end sub_8148044
+
+ thumb_func_start sub_8148078
+sub_8148078: @ 8148078
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x4
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x2E]
+ ldrh r2, [r4, 0x22]
+ adds r1, r0, r2
+ strh r1, [r4, 0x22]
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0814809E
+ ldrh r0, [r4, 0x32]
+ movs r1, 0
+ bl PlayCry1
+_0814809E:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x9
+ bne _081480AA
+ ldr r0, _081480B0 @ =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+_081480AA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081480B0: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8148078
+
+ thumb_func_start sub_81480B4
+sub_81480B4: @ 81480B4
+ push {r4,r5,lr}
+ movs r0, 0xBC
+ movs r1, 0x64
+ movs r2, 0x2
+ bl sub_810BA50
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _081480FC @ =gSprites
+ lsls r3, r4, 4
+ adds r3, r4
+ lsls r3, 2
+ adds r0, r3, r5
+ ldrb r2, [r0, 0x1]
+ movs r1, 0x4
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ adds r1, r5, 0
+ adds r1, 0x10
+ adds r1, r3, r1
+ ldr r2, _08148100 @ =gSpriteAffineAnimTable_84121A0
+ str r2, [r1]
+ adds r5, 0x1C
+ adds r3, r5
+ ldr r1, _08148104 @ =SpriteCallbackDummy
+ str r1, [r3]
+ bl InitSpriteAffineAnim
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081480FC: .4byte gSprites
+_08148100: .4byte gSpriteAffineAnimTable_84121A0
+_08148104: .4byte SpriteCallbackDummy
+ thumb_func_end sub_81480B4
+
+ thumb_func_start sub_8148108
+sub_8148108: @ 8148108
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _08148148 @ =gSprites
+ mov r8, r0
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r6, r0, 2
+ mov r0, r8
+ adds r4, r6, r0
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ cmp r5, 0
+ bne _08148150
+ mov r0, r8
+ adds r0, 0x10
+ adds r0, r6, r0
+ ldr r1, _0814814C @ =gSpriteAffineAnimTable_84121A4
+ b _08148158
+ .align 2, 0
+_08148148: .4byte gSprites
+_0814814C: .4byte gSpriteAffineAnimTable_84121A4
+_08148150:
+ mov r0, r8
+ adds r0, 0x10
+ adds r0, r6, r0
+ ldr r1, _08148174 @ =gSpriteAffineAnimTable_84121A8
+_08148158:
+ str r1, [r0]
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ ldr r1, _08148178 @ =gSprites
+ adds r0, r1
+ bl InitSpriteAffineAnim
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148174: .4byte gSpriteAffineAnimTable_84121A8
+_08148178: .4byte gSprites
+ thumb_func_end sub_8148108
+
+ thumb_func_start sub_814817C
+sub_814817C: @ 814817C
+ push {lr}
+ ldr r0, _081481A4 @ =gSpriteTemplate_84121E4
+ movs r1, 0xAE
+ movs r2, 0x54
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _081481A8 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldr r2, _081481AC @ =0x0000fff4
+ strh r2, [r1, 0x2E]
+ movs r2, 0x1
+ strh r2, [r1, 0x30]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081481A4: .4byte gSpriteTemplate_84121E4
+_081481A8: .4byte gSprites
+_081481AC: .4byte 0x0000fff4
+ thumb_func_end sub_814817C
+
+ thumb_func_start sub_81481B0
+sub_81481B0: @ 81481B0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x20]
+ subs r0, 0x4
+ strh r0, [r2, 0x20]
+ ldrh r0, [r2, 0x2E]
+ ldrh r3, [r2, 0x22]
+ adds r1, r0, r3
+ strh r1, [r2, 0x22]
+ ldrh r1, [r2, 0x30]
+ adds r0, r1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _081481D6
+ adds r0, r2, 0
+ bl DestroySprite
+_081481D6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81481B0
+
+ thumb_func_start sub_81481DC
+sub_81481DC: @ 81481DC
+ push {r4-r7,lr}
+ ldr r6, _0814824C @ =gUnknown_03005F34
+ movs r0, 0x1
+ strh r0, [r6]
+ ldr r1, _08148250 @ =gNatureToMonPokeblockAnim
+ ldr r0, _08148254 @ =gUnknown_03005F30
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrb r3, [r0]
+ movs r4, 0
+ ldr r2, _08148258 @ =gMonPokeblockAnims
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+ adds r7, r2, 0
+ adds r7, 0x8
+ adds r0, r1, r7
+ ldrh r0, [r0]
+ adds r0, 0x1
+ strh r0, [r6]
+ adds r5, r2, 0
+ adds r5, 0x12
+ adds r1, r5
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _08148244
+ adds r2, r6, 0
+ adds r6, r5, 0
+ adds r5, r7, 0
+_0814821A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r4, 0x7
+ bhi _08148244
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ ldrh r7, [r2]
+ adds r0, r7
+ strh r0, [r2]
+ adds r1, r6
+ movs r7, 0
+ ldrsh r0, [r1, r7]
+ cmp r0, 0x1
+ bne _0814821A
+_08148244:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814824C: .4byte gUnknown_03005F34
+_08148250: .4byte gNatureToMonPokeblockAnim
+_08148254: .4byte gUnknown_03005F30
+_08148258: .4byte gMonPokeblockAnims
+ thumb_func_end sub_81481DC
+
+ thumb_func_start sub_814825C
+sub_814825C: @ 814825C
+ push {lr}
+ ldr r0, _08148274 @ =gUnknown_03005F3C
+ ldrb r0, [r0]
+ cmp r0, 0x5A
+ bls _08148268
+ b _08148532
+_08148268:
+ lsls r0, 2
+ ldr r1, _08148278 @ =_0814827C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08148274: .4byte gUnknown_03005F3C
+_08148278: .4byte _0814827C
+ .align 2, 0
+_0814827C:
+ .4byte _081483E8
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _0814843C
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _0814847A
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _081484CC
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148524
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+_081483E8:
+ ldr r2, _0814841C @ =gUnknown_03005F40
+ ldr r1, _08148420 @ =gNatureToMonPokeblockAnim
+ ldr r0, _08148424 @ =gUnknown_03005F30
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r2, _08148428 @ =gUnknown_03005F20
+ ldr r0, _0814842C @ =gUnknown_03005F2C
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08148430 @ =gSprites
+ adds r1, r0
+ str r1, [r2]
+ ldr r0, _08148434 @ =gUnknown_03005F50
+ movs r2, 0x44
+ bl memcpy
+ ldr r1, _08148438 @ =gUnknown_03005F3C
+ movs r0, 0xA
+ strb r0, [r1]
+ b _08148532
+ .align 2, 0
+_0814841C: .4byte gUnknown_03005F40
+_08148420: .4byte gNatureToMonPokeblockAnim
+_08148424: .4byte gUnknown_03005F30
+_08148428: .4byte gUnknown_03005F20
+_0814842C: .4byte gUnknown_03005F2C
+_08148430: .4byte gSprites
+_08148434: .4byte gUnknown_03005F50
+_08148438: .4byte gUnknown_03005F3C
+_0814843C:
+ bl sub_8148540
+ ldr r1, _081484A4 @ =gNatureToMonPokeblockAnim
+ ldr r0, _081484A8 @ =gUnknown_03005F30
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08148474
+ ldr r3, _081484AC @ =gUnknown_03005F20
+ ldr r2, [r3]
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x3]
+ ldr r0, [r3]
+ ldr r1, _081484B0 @ =gSpriteAffineAnimTable_8412050
+ str r1, [r0, 0x10]
+ bl InitSpriteAffineAnim
+_08148474:
+ ldr r1, _081484B4 @ =gUnknown_03005F3C
+ movs r0, 0x32
+ strb r0, [r1]
+_0814847A:
+ ldr r1, _081484A4 @ =gNatureToMonPokeblockAnim
+ ldr r0, _081484A8 @ =gUnknown_03005F30
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r1, 0x1
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ cmp r1, 0
+ beq _081484EE
+ ldr r0, _081484B8 @ =gUnknown_03005F28
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081484BC
+ ldr r0, _081484AC @ =gUnknown_03005F20
+ ldr r0, [r0]
+ adds r1, 0xA
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAffineAnim
+ b _081484EE
+ .align 2, 0
+_081484A4: .4byte gNatureToMonPokeblockAnim
+_081484A8: .4byte gUnknown_03005F30
+_081484AC: .4byte gUnknown_03005F20
+_081484B0: .4byte gSpriteAffineAnimTable_8412050
+_081484B4: .4byte gUnknown_03005F3C
+_081484B8: .4byte gUnknown_03005F28
+_081484BC:
+ ldr r0, _081484C8 @ =gUnknown_03005F20
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ bl StartSpriteAffineAnim
+ b _081484EE
+ .align 2, 0
+_081484C8: .4byte gUnknown_03005F20
+_081484CC:
+ bl sub_81485CC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08148532
+ ldr r0, _081484F8 @ =gUnknown_03005FA0
+ movs r1, 0x12
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08148504
+ ldr r1, _081484FC @ =gUnknown_03005F40
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ bl sub_8148540
+_081484EE:
+ ldr r1, _08148500 @ =gUnknown_03005F3C
+ movs r0, 0x3C
+ strb r0, [r1]
+ b _08148532
+ .align 2, 0
+_081484F8: .4byte gUnknown_03005FA0
+_081484FC: .4byte gUnknown_03005F40
+_08148500: .4byte gUnknown_03005F3C
+_08148504:
+ ldr r0, _0814851C @ =gUnknown_03005F20
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldr r1, _08148520 @ =gUnknown_03005F3C
+ movs r0, 0x46
+ strb r0, [r1]
+ b _08148532
+ .align 2, 0
+_0814851C: .4byte gUnknown_03005F20
+_08148520: .4byte gUnknown_03005F3C
+_08148524:
+ bl sub_8148618
+ ldr r0, _08148538 @ =gUnknown_03005F40
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _0814853C @ =gUnknown_03005F3C
+ strb r1, [r0]
+_08148532:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148538: .4byte gUnknown_03005F40
+_0814853C: .4byte gUnknown_03005F3C
+ thumb_func_end sub_814825C
+
+ thumb_func_start sub_8148540
+sub_8148540: @ 8148540
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r5, _081485B4 @ =gUnknown_03005FA0
+ mov r12, r5
+ ldr r7, _081485B8 @ =gMonPokeblockAnims
+ ldr r6, _081485BC @ =gUnknown_03005F40
+_0814854C:
+ lsls r2, r4, 1
+ mov r0, r12
+ adds r3, r2, r0
+ ldrb r1, [r6]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _0814854C
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _081485C4
+ movs r2, 0
+ ldrsh r0, [r5, r2]
+ movs r2, 0x4
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r5, 0x14]
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r2, 0x6
+ ldrsh r1, [r5, r2]
+ bl Cos
+ strh r0, [r5, 0x16]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r5, 0x18]
+ ldr r0, _081485C0 @ =gUnknown_03005F20
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x24]
+ strh r0, [r5, 0x1A]
+ ldrh r0, [r1, 0x26]
+ strh r0, [r5, 0x1C]
+ bl sub_8148710
+ ldrh r0, [r5, 0x18]
+ strh r0, [r5, 0x8]
+ bl sub_814862C
+ ldrh r0, [r5, 0x18]
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ b _081485C6
+ .align 2, 0
+_081485B4: .4byte gUnknown_03005FA0
+_081485B8: .4byte gMonPokeblockAnims
+_081485BC: .4byte gUnknown_03005F40
+_081485C0: .4byte gUnknown_03005F20
+_081485C4:
+ movs r0, 0x1
+_081485C6:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8148540
+
+ thumb_func_start sub_81485CC
+sub_81485CC: @ 81485CC
+ push {r4,lr}
+ ldr r3, _08148604 @ =gUnknown_03005FA0
+ ldrh r0, [r3, 0x18]
+ ldrh r1, [r3, 0x8]
+ subs r0, r1
+ lsls r0, 16
+ ldr r1, _08148608 @ =gUnknown_03005F20
+ ldr r4, [r1]
+ lsrs r0, 15
+ ldr r1, _0814860C @ =0x0201d000
+ adds r2, r0, r1
+ ldrh r2, [r2]
+ strh r2, [r4, 0x24]
+ movs r2, 0x80
+ lsls r2, 3
+ adds r1, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r4, 0x26]
+ ldrh r0, [r3, 0x8]
+ subs r0, 0x1
+ strh r0, [r3, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ beq _08148610
+ movs r0, 0
+ b _08148612
+ .align 2, 0
+_08148604: .4byte gUnknown_03005FA0
+_08148608: .4byte gUnknown_03005F20
+_0814860C: .4byte 0x0201d000
+_08148610:
+ movs r0, 0x1
+_08148612:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81485CC
+
+ thumb_func_start sub_8148618
+sub_8148618: @ 8148618
+ push {lr}
+ ldr r0, _08148628 @ =gUnknown_03005F20
+ ldr r0, [r0]
+ bl FreeSpriteOamMatrix
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08148628: .4byte gUnknown_03005F20
+ thumb_func_end sub_8148618
+
+ thumb_func_start sub_814862C
+sub_814862C: @ 814862C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ ldr r1, _08148700 @ =gUnknown_03005FA0
+ ldrh r0, [r1, 0x10]
+ mov r8, r0
+ ldrh r0, [r1, 0x18]
+ mov r2, r8
+ subs r0, r2
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldrh r0, [r1, 0xC]
+ ldrh r3, [r1, 0x1A]
+ adds r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp]
+ ldrh r0, [r1, 0xE]
+ ldrh r1, [r1, 0x1C]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r6, 0
+ subs r0, r7, 0x1
+ ldr r4, _08148704 @ =0x0201cffe
+ mov r10, r4
+ cmp r6, r0
+ bge _081486D4
+ ldr r1, [sp]
+ lsls r0, r1, 16
+ asrs r0, 16
+ str r0, [sp, 0x4]
+_08148674:
+ mov r2, r8
+ adds r5, r2, r6
+ lsls r5, 1
+ ldr r4, _08148708 @ =0x0201d000
+ adds r3, r5, r4
+ ldrh r2, [r3]
+ ldr r0, [sp, 0x4]
+ subs r1, r2, r0
+ ldr r4, _0814870C @ =0x0201d400
+ adds r5, r4
+ ldrh r0, [r5]
+ mov r12, r0
+ mov r4, r9
+ lsls r0, r4, 16
+ asrs r0, 16
+ mov r4, r12
+ subs r0, r4, r0
+ lsls r4, r0, 16
+ lsrs r4, 16
+ lsls r1, 16
+ asrs r1, 16
+ adds r6, 0x1
+ adds r0, r1, 0
+ muls r0, r6
+ adds r1, r7, 0
+ str r2, [sp, 0x8]
+ str r3, [sp, 0xC]
+ bl __divsi3
+ ldr r2, [sp, 0x8]
+ subs r2, r0
+ ldr r3, [sp, 0xC]
+ strh r2, [r3]
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ muls r0, r6
+ adds r1, r7, 0
+ bl __divsi3
+ ldrh r1, [r5]
+ subs r1, r0
+ strh r1, [r5]
+ lsls r6, 16
+ lsrs r6, 16
+ subs r0, r7, 0x1
+ cmp r6, r0
+ blt _08148674
+_081486D4:
+ mov r1, r8
+ adds r0, r1, r7
+ lsls r0, 1
+ mov r2, r10
+ adds r1, r0, r2
+ mov r3, sp
+ ldrh r3, [r3]
+ strh r3, [r1]
+ movs r1, 0x80
+ lsls r1, 3
+ add r1, r10
+ adds r0, r1
+ mov r4, r9
+ strh r4, [r0]
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148700: .4byte gUnknown_03005FA0
+_08148704: .4byte 0x0201cffe
+_08148708: .4byte 0x0201d000
+_0814870C: .4byte 0x0201d400
+ thumb_func_end sub_814862C
+
+ thumb_func_start sub_8148710
+sub_8148710: @ 8148710
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ ldr r1, _081487A4 @ =gUnknown_03005FA0
+ ldrh r2, [r1, 0x1A]
+ ldrh r0, [r1, 0x14]
+ subs r2, r0
+ ldrh r3, [r1, 0x1C]
+ ldrh r0, [r1, 0x16]
+ subs r3, r0
+ adds r6, r1, 0
+ ldr r1, _081487A8 @ =0x0201d000
+ mov r9, r1
+ lsls r2, 16
+ asrs r2, 16
+ mov r8, r2
+ movs r2, 0x80
+ lsls r2, 3
+ add r2, r9
+ mov r10, r2
+ lsls r3, 16
+ asrs r7, r3, 16
+_08148746:
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bge _08148750
+ negs r0, r0
+_08148750:
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r2, [r6, 0x6]
+ adds r0, r2
+ lsls r5, r0, 16
+ strh r0, [r6, 0x6]
+ ldrh r2, [r6, 0x4]
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bge _0814876A
+ movs r0, 0x1
+ str r0, [sp]
+_0814876A:
+ ldrh r0, [r6, 0x18]
+ ldrh r1, [r6, 0x8]
+ subs r0, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r1, 0
+ beq _081487F0
+ ldr r1, [sp]
+ cmp r1, 0
+ bne _081487AC
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ lsrs r5, 24
+ adds r1, r2, r5
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ lsls r4, 1
+ mov r2, r9
+ adds r1, r4, r2
+ add r0, r8
+ strh r0, [r1]
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ ldrh r1, [r6, 0x6]
+ adds r1, r5
+ b _081487CE
+ .align 2, 0
+_081487A4: .4byte gUnknown_03005FA0
+_081487A8: .4byte 0x0201d000
+_081487AC:
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ lsrs r5, 24
+ subs r1, r2, r5
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ lsls r4, 1
+ mov r2, r9
+ adds r1, r4, r2
+ add r0, r8
+ strh r0, [r1]
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ ldrh r1, [r6, 0x6]
+ subs r1, r5
+_081487CE:
+ lsls r1, 16
+ asrs r1, 16
+ bl Cos
+ add r4, r10
+ adds r0, r7, r0
+ strh r0, [r4]
+ ldrh r0, [r6, 0x2]
+ ldrh r2, [r6]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r6]
+ ldrh r0, [r6, 0x8]
+ subs r0, 0x1
+ strh r0, [r6, 0x8]
+ b _08148746
+_081487F0:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8148710
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_81473B8.s b/asm/rom_81473B8.s
index 6c26c034a..4b39758b0 100644
--- a/asm/rom_81473B8.s
+++ b/asm/rom_81473B8.s
@@ -603,1831 +603,4 @@ _08147884:
_0814788C: .4byte gTasks
thumb_func_end sub_814782C
- thumb_func_start sub_8147890
-sub_8147890: @ 8147890
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8147890
-
- thumb_func_start sub_81478A8
-sub_81478A8: @ 81478A8
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_81478A8
-
- thumb_func_start sub_81478BC
-sub_81478BC: @ 81478BC
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _081478D8 @ =gMain
- ldr r1, _081478DC @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xD
- bls _081478CE
- b _08147AD0
-_081478CE:
- lsls r0, 2
- ldr r1, _081478E0 @ =_081478E4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081478D8: .4byte gMain
-_081478DC: .4byte 0x0000043c
-_081478E0: .4byte _081478E4
- .align 2, 0
-_081478E4:
- .4byte _0814791C
- .4byte _08147938
- .4byte _0814794C
- .4byte _08147960
- .4byte _08147966
- .4byte _08147980
- .4byte _0814798C
- .4byte _081479B8
- .4byte _081479DC
- .4byte _081479F4
- .4byte _08147A20
- .4byte _08147A3C
- .4byte _08147A5C
- .4byte _08147A8C
-_0814791C:
- bl sub_80F9438
- bl sub_80F9368
- bl sub_8147B04
- ldr r1, _08147930 @ =gMain
- ldr r2, _08147934 @ =0x0000043c
- adds r1, r2
- b _08147A4A
- .align 2, 0
-_08147930: .4byte gMain
-_08147934: .4byte 0x0000043c
-_08147938:
- bl ResetPaletteFade
- ldr r2, _08147948 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- b _08147A44
- .align 2, 0
-_08147948: .4byte gPaletteFade
-_0814794C:
- bl ResetSpriteData
- ldr r1, _08147958 @ =gMain
- ldr r2, _0814795C @ =0x0000043c
- adds r1, r2
- b _08147A4A
- .align 2, 0
-_08147958: .4byte gMain
-_0814795C: .4byte 0x0000043c
-_08147960:
- bl FreeAllSpritePalettes
- b _08147A44
-_08147966:
- ldr r0, _08147974 @ =gWindowConfig_81E6E50
- bl SetUpWindowConfig
- ldr r1, _08147978 @ =gMain
- ldr r2, _0814797C @ =0x0000043c
- adds r1, r2
- b _08147A4A
- .align 2, 0
-_08147974: .4byte gWindowConfig_81E6E50
-_08147978: .4byte gMain
-_0814797C: .4byte 0x0000043c
-_08147980:
- ldr r0, _08147988 @ =gWindowConfig_81E6E50
- bl MultistepInitMenuWindowBegin
- b _08147A44
- .align 2, 0
-_08147988: .4byte gWindowConfig_81E6E50
-_0814798C:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _08147996
- b _08147AD0
-_08147996:
- ldr r0, _081479A8 @ =0x02000000
- ldr r1, _081479AC @ =0x0001ffff
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r1, _081479B0 @ =gMain
- ldr r2, _081479B4 @ =0x0000043c
- adds r1, r2
- b _08147A4A
- .align 2, 0
-_081479A8: .4byte 0x02000000
-_081479AC: .4byte 0x0001ffff
-_081479B0: .4byte gMain
-_081479B4: .4byte 0x0000043c
-_081479B8:
- ldr r0, _081479D4 @ =gUnknown_02039310
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081479D8 @ =gPlayerParty
- adds r0, r1
- bl sub_8147B20
- lsls r0, 24
- cmp r0, 0
- bne _081479D0
- b _08147AD0
-_081479D0:
- b _08147A44
- .align 2, 0
-_081479D4: .4byte gUnknown_02039310
-_081479D8: .4byte gPlayerParty
-_081479DC:
- bl sub_81480B4
- ldr r1, _081479EC @ =0x02000000
- ldr r2, _081479F0 @ =0x0001fffd
- adds r1, r2
- strb r0, [r1]
- b _08147A44
- .align 2, 0
-_081479EC: .4byte 0x02000000
-_081479F0: .4byte 0x0001fffd
-_081479F4:
- ldr r0, _08147A10 @ =gUnknown_02039310
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08147A14 @ =gPlayerParty
- adds r0, r1
- bl sub_8147F84
- ldr r1, _08147A18 @ =0x02000000
- ldr r2, _08147A1C @ =0x0001fffe
- adds r1, r2
- strb r0, [r1]
- b _08147A44
- .align 2, 0
-_08147A10: .4byte gUnknown_02039310
-_08147A14: .4byte gPlayerParty
-_08147A18: .4byte 0x02000000
-_08147A1C: .4byte 0x0001fffe
-_08147A20:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r1, _08147A34 @ =gMain
- ldr r2, _08147A38 @ =0x0000043c
- adds r1, r2
- b _08147A4A
- .align 2, 0
-_08147A34: .4byte gMain
-_08147A38: .4byte 0x0000043c
-_08147A3C:
- bl sub_8055870
- cmp r0, 0x1
- beq _08147AD0
-_08147A44:
- ldr r1, _08147A54 @ =gMain
- ldr r0, _08147A58 @ =0x0000043c
- adds r1, r0
-_08147A4A:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08147AD0
- .align 2, 0
-_08147A54: .4byte gMain
-_08147A58: .4byte 0x0000043c
-_08147A5C:
- ldr r3, _08147AB0 @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _08147AB4 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08147AB8 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08147ABC @ =sub_81478A8
- bl SetVBlankCallback
- ldr r1, _08147AC0 @ =gMain
- ldr r2, _08147AC4 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08147A8C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _08147AC8 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _08147ACC @ =sub_8147890
- bl SetMainCallback2
- movs r0, 0x1
- b _08147AD2
- .align 2, 0
-_08147AB0: .4byte 0x04000208
-_08147AB4: .4byte 0x04000200
-_08147AB8: .4byte REG_DISPSTAT
-_08147ABC: .4byte sub_81478A8
-_08147AC0: .4byte gMain
-_08147AC4: .4byte 0x0000043c
-_08147AC8: .4byte gPaletteFade
-_08147ACC: .4byte sub_8147890
-_08147AD0:
- movs r0, 0
-_08147AD2:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81478BC
-
- thumb_func_start sub_8147ADC
-sub_8147ADC: @ 8147ADC
- push {lr}
-_08147ADE:
- bl sub_81478BC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08147AF2
- movs r0, 0x1
- bl sub_8147DDC
- b _08147AFE
-_08147AF2:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08147ADE
-_08147AFE:
- pop {r0}
- bx r0
- thumb_func_end sub_8147ADC
-
- thumb_func_start sub_8147B04
-sub_8147B04: @ 8147B04
- ldr r1, _08147B18 @ =REG_BG1CNT
- ldr r2, _08147B1C @ =0x00001d02
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08147B18: .4byte REG_BG1CNT
-_08147B1C: .4byte 0x00001d02
- thumb_func_end sub_8147B04
-
- thumb_func_start sub_8147B20
-sub_8147B20: @ 8147B20
- push {r4-r6,lr}
- sub sp, 0xC
- adds r4, r0, 0
- ldr r0, _08147B40 @ =0x02000000
- ldr r1, _08147B44 @ =0x0001ffff
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x8
- bls _08147B34
- b _08147C84
-_08147B34:
- lsls r0, 2
- ldr r1, _08147B48 @ =_08147B4C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08147B40: .4byte 0x02000000
-_08147B44: .4byte 0x0001ffff
-_08147B48: .4byte _08147B4C
- .align 2, 0
-_08147B4C:
- .4byte _08147B70
- .4byte _08147BB8
- .4byte _08147BF0
- .4byte _08147BFC
- .4byte _08147C08
- .4byte _08147C14
- .4byte _08147C2C
- .4byte _08147C38
- .4byte _08147C60
-_08147B70:
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- lsls r0, r5, 3
- ldr r1, _08147BAC @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _08147BB0 @ =gMonFrontPicCoords
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08147BB4 @ =gUnknown_081FAF4C
- ldr r4, [r4, 0x4]
- str r4, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- bl sub_800D334
- b _08147C40
- .align 2, 0
-_08147BAC: .4byte gMonFrontPicTable
-_08147BB0: .4byte gMonFrontPicCoords
-_08147BB4: .4byte gUnknown_081FAF4C
-_08147BB8:
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- adds r1, r0, 0
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_80409C8
- adds r4, r0, 0
- bl LoadCompressedObjectPalette
- ldrh r0, [r4, 0x4]
- movs r1, 0x1
- bl GetMonSpriteTemplate_803C56C
- b _08147C40
-_08147BF0:
- ldr r0, _08147BF8 @ =gUnknown_083F7F74
- bl LoadCompressedObjectPic
- b _08147C40
- .align 2, 0
-_08147BF8: .4byte gUnknown_083F7F74
-_08147BFC:
- ldr r0, _08147C04 @ =gUnknown_083F7F7C
- bl LoadCompressedObjectPalette
- b _08147C40
- .align 2, 0
-_08147C04: .4byte gUnknown_083F7F7C
-_08147C08:
- ldr r0, _08147C10 @ =gUnknown_084121DC
- bl LoadCompressedObjectPic
- b _08147C40
- .align 2, 0
-_08147C10: .4byte gUnknown_084121DC
-_08147C14:
- ldr r0, _08147C24 @ =gScriptItemId
- ldrb r0, [r0]
- bl sub_8147C90
- ldr r0, _08147C28 @ =gUnknown_02039350
- bl LoadCompressedObjectPalette
- b _08147C40
- .align 2, 0
-_08147C24: .4byte gScriptItemId
-_08147C28: .4byte gUnknown_02039350
-_08147C2C:
- ldr r0, _08147C34 @ =gBattleTerrainTiles_Building
- movs r1, 0xC0
- lsls r1, 19
- b _08147C3C
- .align 2, 0
-_08147C34: .4byte gBattleTerrainTiles_Building
-_08147C38:
- ldr r0, _08147C50 @ =gUnknown_08E782FC
- ldr r1, _08147C54 @ =0x0600e800
-_08147C3C:
- bl LZDecompressVram
-_08147C40:
- ldr r1, _08147C58 @ =0x02000000
- ldr r0, _08147C5C @ =0x0001ffff
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08147C84
- .align 2, 0
-_08147C50: .4byte gUnknown_08E782FC
-_08147C54: .4byte 0x0600e800
-_08147C58: .4byte 0x02000000
-_08147C5C: .4byte 0x0001ffff
-_08147C60:
- ldr r0, _08147C78 @ =gBattleTerrainPalette_BattleTower
- movs r1, 0x20
- movs r2, 0x60
- bl LoadCompressedPalette
- ldr r0, _08147C7C @ =0x02000000
- ldr r1, _08147C80 @ =0x0001ffff
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _08147C86
- .align 2, 0
-_08147C78: .4byte gBattleTerrainPalette_BattleTower
-_08147C7C: .4byte 0x02000000
-_08147C80: .4byte 0x0001ffff
-_08147C84:
- movs r0, 0
-_08147C86:
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8147B20
-
- thumb_func_start sub_8147C90
-sub_8147C90: @ 8147C90
- push {lr}
- lsls r0, 24
- lsrs r0, 21
- ldr r1, _08147CB8 @ =gSaveBlock1 + 0x7F8
- adds r0, r1
- movs r1, 0
- bl sub_810CA9C
- lsls r0, 24
- ldr r2, _08147CBC @ =gUnknown_02039350
- ldr r1, _08147CC0 @ =gUnknown_084120A4
- lsrs r0, 22
- subs r0, 0x4
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, _08147CC4 @ =0x000039e2
- strh r0, [r2, 0x4]
- pop {r0}
- bx r0
- .align 2, 0
-_08147CB8: .4byte gSaveBlock1 + 0x7F8
-_08147CBC: .4byte gUnknown_02039350
-_08147CC0: .4byte gUnknown_084120A4
-_08147CC4: .4byte 0x000039e2
- thumb_func_end sub_8147C90
-
- thumb_func_start sub_8147CC8
-sub_8147CC8: @ 8147CC8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08147D00 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08147CDC
- b _08147DCE
-_08147CDC:
- ldr r0, _08147D04 @ =gTasks
- lsls r2, r4, 2
- adds r1, r2, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x8
- ldrsh r3, [r1, r0]
- ldr r0, _08147D08 @ =0x0000010d
- adds r5, r2, 0
- cmp r3, r0
- beq _08147D50
- cmp r3, r0
- bgt _08147D0C
- cmp r3, 0
- beq _08147D20
- cmp r3, 0xFF
- beq _08147D38
- b _08147D8C
- .align 2, 0
-_08147D00: .4byte gPaletteFade
-_08147D04: .4byte gTasks
-_08147D08: .4byte 0x0000010d
-_08147D0C:
- ldr r0, _08147D1C @ =0x00000119
- cmp r3, r0
- beq _08147D68
- adds r0, 0x10
- cmp r3, r0
- beq _08147D80
- b _08147D8C
- .align 2, 0
-_08147D1C: .4byte 0x00000119
-_08147D20:
- ldr r0, _08147D30 @ =gUnknown_03005F3C
- strb r3, [r0]
- ldr r0, _08147D34 @ =gUnknown_03005F94
- strh r3, [r0]
- bl sub_81481DC
- b _08147D8C
- .align 2, 0
-_08147D30: .4byte gUnknown_03005F3C
-_08147D34: .4byte gUnknown_03005F94
-_08147D38:
- ldr r0, _08147D48 @ =0x02000000
- ldr r2, _08147D4C @ =0x0001fffd
- adds r0, r2
- ldrb r0, [r0]
- ldrb r1, [r1, 0xA]
- bl sub_8148108
- b _08147D8C
- .align 2, 0
-_08147D48: .4byte 0x02000000
-_08147D4C: .4byte 0x0001fffd
-_08147D50:
- bl sub_814817C
- ldr r1, _08147D60 @ =0x02000000
- ldr r2, _08147D64 @ =0x0001fffc
- adds r1, r2
- strb r0, [r1]
- b _08147D8C
- .align 2, 0
-_08147D60: .4byte 0x02000000
-_08147D64: .4byte 0x0001fffc
-_08147D68:
- ldr r0, _08147D78 @ =0x02000000
- ldr r1, _08147D7C @ =0x0001fffe
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8148044
- b _08147D8C
- .align 2, 0
-_08147D78: .4byte 0x02000000
-_08147D7C: .4byte 0x0001fffe
-_08147D80:
- ldr r0, _08147D88 @ =sub_8147E40
- str r0, [r1]
- b _08147DCE
- .align 2, 0
-_08147D88: .4byte sub_8147E40
-_08147D8C:
- ldr r0, _08147DA0 @ =gUnknown_03005F94
- ldr r1, _08147DA4 @ =gUnknown_03005F34
- ldrh r2, [r0]
- ldrh r0, [r1]
- cmp r2, r0
- bcs _08147DA8
- bl sub_814825C
- b _08147DB8
- .align 2, 0
-_08147DA0: .4byte gUnknown_03005F94
-_08147DA4: .4byte gUnknown_03005F34
-_08147DA8:
- cmp r2, r0
- bne _08147DB8
- ldr r0, _08147DD4 @ =gTasks
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0xFE
- strh r0, [r1, 0x8]
-_08147DB8:
- ldr r1, _08147DD8 @ =gUnknown_03005F94
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- ldr r0, _08147DD4 @ =gTasks
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_08147DCE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08147DD4: .4byte gTasks
-_08147DD8: .4byte gUnknown_03005F94
- thumb_func_end sub_8147CC8
-
- thumb_func_start sub_8147DDC
-sub_8147DDC: @ 8147DDC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08147E08 @ =sub_8147CC8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08147E0C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r4, [r1, 0xA]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08147E08: .4byte sub_8147CC8
-_08147E0C: .4byte gTasks
- thumb_func_end sub_8147DDC
-
- thumb_func_start sub_8147E10
-sub_8147E10: @ 8147E10
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl MenuUpdateWindowText
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08147E30
- ldr r0, _08147E38 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08147E3C @ =sub_8147F4C
- str r0, [r1]
-_08147E30:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08147E38: .4byte gTasks
-_08147E3C: .4byte sub_8147F4C
- thumb_func_end sub_8147E10
-
- thumb_func_start sub_8147E40
-sub_8147E40: @ 8147E40
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08147E94 @ =gUnknown_02039310
- ldrb r1, [r0]
- movs r0, 0x64
- adds r5, r1, 0
- muls r5, r0
- ldr r0, _08147E98 @ =gPlayerParty
- adds r5, r0
- ldr r0, _08147E9C @ =gScriptItemId
- ldrh r4, [r0]
- lsls r4, 3
- ldr r0, _08147EA0 @ =gSaveBlock1 + 0x7F8
- adds r4, r0
- adds r0, r5, 0
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl sub_810CAE4
- ldr r6, _08147EA4 @ =gUnknown_02039312
- strh r0, [r6]
- ldr r1, _08147EA8 @ =gStringVar1
- adds r0, r5, 0
- bl GetMonNickname
- ldr r1, _08147EAC @ =gStringVar2
- adds r0, r4, 0
- bl sub_810CB44
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08147EB8
- ldr r0, _08147EB0 @ =gStringVar4
- ldr r1, _08147EB4 @ =gContestStatsText_NormallyAte
- bl StringExpandPlaceholders
- b _08147ED8
- .align 2, 0
-_08147E94: .4byte gUnknown_02039310
-_08147E98: .4byte gPlayerParty
-_08147E9C: .4byte gScriptItemId
-_08147EA0: .4byte gSaveBlock1 + 0x7F8
-_08147EA4: .4byte gUnknown_02039312
-_08147EA8: .4byte gStringVar1
-_08147EAC: .4byte gStringVar2
-_08147EB0: .4byte gStringVar4
-_08147EB4: .4byte gContestStatsText_NormallyAte
-_08147EB8:
- cmp r0, 0
- ble _08147ED0
- ldr r0, _08147EC8 @ =gStringVar4
- ldr r1, _08147ECC @ =gContestStatsText_HappilyAte
- bl StringExpandPlaceholders
- b _08147ED8
- .align 2, 0
-_08147EC8: .4byte gStringVar4
-_08147ECC: .4byte gContestStatsText_HappilyAte
-_08147ED0:
- ldr r0, _08147EF8 @ =gStringVar4
- ldr r1, _08147EFC @ =gContestStatsText_DisdainfullyAte
- bl StringExpandPlaceholders
-_08147ED8:
- ldr r0, _08147EF8 @ =gStringVar4
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrintMessage
- ldr r1, _08147F00 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _08147F04 @ =sub_8147E10
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08147EF8: .4byte gStringVar4
-_08147EFC: .4byte gContestStatsText_DisdainfullyAte
-_08147F00: .4byte gTasks
-_08147F04: .4byte sub_8147E10
- thumb_func_end sub_8147E40
-
- thumb_func_start sub_8147F08
-sub_8147F08: @ 8147F08
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08147F3C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08147F34
- ldr r0, _08147F40 @ =gMPlay_BGM
- ldr r1, _08147F44 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- ldr r0, _08147F48 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08147F34:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08147F3C: .4byte gPaletteFade
-_08147F40: .4byte gMPlay_BGM
-_08147F44: .4byte 0x0000ffff
-_08147F48: .4byte gMain
- thumb_func_end sub_8147F08
-
- thumb_func_start sub_8147F4C
-sub_8147F4C: @ 8147F4C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08147F7C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08147F80 @ =sub_8147F08
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08147F7C: .4byte gTasks
-_08147F80: .4byte sub_8147F08
- thumb_func_end sub_8147F4C
-
- thumb_func_start sub_8147F84
-sub_8147F84: @ 8147F84
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- movs r1, 0x41
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08148024 @ =gUnknown_02024E8C
- movs r1, 0x30
- movs r2, 0x50
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _08148028 @ =gUnknown_03005F24
- strh r4, [r0]
- ldr r0, _0814802C @ =gUnknown_03005F2C
- mov r1, r8
- strb r1, [r0]
- adds r0, r5, 0
- bl GetNature
- ldr r1, _08148030 @ =gUnknown_03005F30
- strb r0, [r1]
- ldr r7, _08148034 @ =gSprites
- mov r1, r8
- lsls r0, r1, 4
- add r0, r8
- lsls r5, r0, 2
- adds r6, r5, r7
- strh r4, [r6, 0x32]
- adds r0, r7, 0
- adds r0, 0x1C
- adds r0, r5, r0
- ldr r1, _08148038 @ =SpriteCallbackDummy
- str r1, [r0]
- ldr r0, _0814803C @ =gUnknown_03005F28
- mov r9, r0
- movs r0, 0x1
- mov r1, r9
- strb r0, [r1]
- adds r0, r4, 0
- bl sub_8040A3C
- lsls r0, 24
- cmp r0, 0
- bne _08148016
- adds r0, r7, 0
- adds r0, 0x10
- adds r0, r5, r0
- ldr r1, _08148040 @ =gSpriteAffineAnimTable_84120EC
- str r1, [r0]
- ldrb r3, [r6, 0x1]
- movs r0, 0x3
- orrs r3, r0
- strb r3, [r6, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r6, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r6, 0
- bl CalcCenterToCornerVec
- movs r0, 0
- mov r1, r9
- strb r0, [r1]
-_08148016:
- mov r0, r8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08148024: .4byte gUnknown_02024E8C
-_08148028: .4byte gUnknown_03005F24
-_0814802C: .4byte gUnknown_03005F2C
-_08148030: .4byte gUnknown_03005F30
-_08148034: .4byte gSprites
-_08148038: .4byte SpriteCallbackDummy
-_0814803C: .4byte gUnknown_03005F28
-_08148040: .4byte gSpriteAffineAnimTable_84120EC
- thumb_func_end sub_8147F84
-
- thumb_func_start sub_8148044
-sub_8148044: @ 8148044
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0814806C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r3
- movs r0, 0x30
- strh r0, [r2, 0x20]
- movs r0, 0x50
- strh r0, [r2, 0x22]
- ldr r0, _08148070 @ =0x0000fff8
- strh r0, [r2, 0x2E]
- movs r0, 0x1
- strh r0, [r2, 0x30]
- adds r3, 0x1C
- adds r1, r3
- ldr r0, _08148074 @ =sub_8148078
- str r0, [r1]
- bx lr
- .align 2, 0
-_0814806C: .4byte gSprites
-_08148070: .4byte 0x0000fff8
-_08148074: .4byte sub_8148078
- thumb_func_end sub_8148044
-
- thumb_func_start sub_8148078
-sub_8148078: @ 8148078
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- adds r0, 0x4
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x2E]
- ldrh r2, [r4, 0x22]
- adds r1, r0, r2
- strh r1, [r4, 0x22]
- ldrh r1, [r4, 0x30]
- adds r0, r1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _0814809E
- ldrh r0, [r4, 0x32]
- movs r1, 0
- bl PlayCry1
-_0814809E:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x9
- bne _081480AA
- ldr r0, _081480B0 @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_081480AA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081480B0: .4byte SpriteCallbackDummy
- thumb_func_end sub_8148078
-
- thumb_func_start sub_81480B4
-sub_81480B4: @ 81480B4
- push {r4,r5,lr}
- movs r0, 0xBC
- movs r1, 0x64
- movs r2, 0x2
- bl sub_810BA50
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _081480FC @ =gSprites
- lsls r3, r4, 4
- adds r3, r4
- lsls r3, 2
- adds r0, r3, r5
- ldrb r2, [r0, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x1]
- adds r1, r5, 0
- adds r1, 0x10
- adds r1, r3, r1
- ldr r2, _08148100 @ =gSpriteAffineAnimTable_84121A0
- str r2, [r1]
- adds r5, 0x1C
- adds r3, r5
- ldr r1, _08148104 @ =SpriteCallbackDummy
- str r1, [r3]
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_081480FC: .4byte gSprites
-_08148100: .4byte gSpriteAffineAnimTable_84121A0
-_08148104: .4byte SpriteCallbackDummy
- thumb_func_end sub_81480B4
-
- thumb_func_start sub_8148108
-sub_8148108: @ 8148108
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _08148148 @ =gSprites
- mov r8, r0
- lsls r0, r7, 4
- adds r0, r7
- lsls r6, r0, 2
- mov r0, r8
- adds r4, r6, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- cmp r5, 0
- bne _08148150
- mov r0, r8
- adds r0, 0x10
- adds r0, r6, r0
- ldr r1, _0814814C @ =gSpriteAffineAnimTable_84121A4
- b _08148158
- .align 2, 0
-_08148148: .4byte gSprites
-_0814814C: .4byte gSpriteAffineAnimTable_84121A4
-_08148150:
- mov r0, r8
- adds r0, 0x10
- adds r0, r6, r0
- ldr r1, _08148174 @ =gSpriteAffineAnimTable_84121A8
-_08148158:
- str r1, [r0]
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- ldr r1, _08148178 @ =gSprites
- adds r0, r1
- bl InitSpriteAffineAnim
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08148174: .4byte gSpriteAffineAnimTable_84121A8
-_08148178: .4byte gSprites
- thumb_func_end sub_8148108
-
- thumb_func_start sub_814817C
-sub_814817C: @ 814817C
- push {lr}
- ldr r0, _081481A4 @ =gSpriteTemplate_84121E4
- movs r1, 0xAE
- movs r2, 0x54
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081481A8 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r2, _081481AC @ =0x0000fff4
- strh r2, [r1, 0x2E]
- movs r2, 0x1
- strh r2, [r1, 0x30]
- pop {r1}
- bx r1
- .align 2, 0
-_081481A4: .4byte gSpriteTemplate_84121E4
-_081481A8: .4byte gSprites
-_081481AC: .4byte 0x0000fff4
- thumb_func_end sub_814817C
-
- thumb_func_start sub_81481B0
-sub_81481B0: @ 81481B0
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x20]
- subs r0, 0x4
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x2E]
- ldrh r3, [r2, 0x22]
- adds r1, r0, r3
- strh r1, [r2, 0x22]
- ldrh r1, [r2, 0x30]
- adds r0, r1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _081481D6
- adds r0, r2, 0
- bl DestroySprite
-_081481D6:
- pop {r0}
- bx r0
- thumb_func_end sub_81481B0
-
- thumb_func_start sub_81481DC
-sub_81481DC: @ 81481DC
- push {r4-r7,lr}
- ldr r6, _0814824C @ =gUnknown_03005F34
- movs r0, 0x1
- strh r0, [r6]
- ldr r1, _08148250 @ =gNatureToMonPokeblockAnim
- ldr r0, _08148254 @ =gUnknown_03005F30
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrb r3, [r0]
- movs r4, 0
- ldr r2, _08148258 @ =gMonPokeblockAnims
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r7, r2, 0
- adds r7, 0x8
- adds r0, r1, r7
- ldrh r0, [r0]
- adds r0, 0x1
- strh r0, [r6]
- adds r5, r2, 0
- adds r5, 0x12
- adds r1, r5
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _08148244
- adds r2, r6, 0
- adds r6, r5, 0
- adds r5, r7, 0
-_0814821A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r4, 0x7
- bhi _08148244
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- ldrh r7, [r2]
- adds r0, r7
- strh r0, [r2]
- adds r1, r6
- movs r7, 0
- ldrsh r0, [r1, r7]
- cmp r0, 0x1
- bne _0814821A
-_08148244:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814824C: .4byte gUnknown_03005F34
-_08148250: .4byte gNatureToMonPokeblockAnim
-_08148254: .4byte gUnknown_03005F30
-_08148258: .4byte gMonPokeblockAnims
- thumb_func_end sub_81481DC
-
- thumb_func_start sub_814825C
-sub_814825C: @ 814825C
- push {lr}
- ldr r0, _08148274 @ =gUnknown_03005F3C
- ldrb r0, [r0]
- cmp r0, 0x5A
- bls _08148268
- b _08148532
-_08148268:
- lsls r0, 2
- ldr r1, _08148278 @ =_0814827C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08148274: .4byte gUnknown_03005F3C
-_08148278: .4byte _0814827C
- .align 2, 0
-_0814827C:
- .4byte _081483E8
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _0814843C
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _0814847A
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _081484CC
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148524
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
-_081483E8:
- ldr r2, _0814841C @ =gUnknown_03005F40
- ldr r1, _08148420 @ =gNatureToMonPokeblockAnim
- ldr r0, _08148424 @ =gUnknown_03005F30
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r2, _08148428 @ =gUnknown_03005F20
- ldr r0, _0814842C @ =gUnknown_03005F2C
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08148430 @ =gSprites
- adds r1, r0
- str r1, [r2]
- ldr r0, _08148434 @ =gUnknown_03005F50
- movs r2, 0x44
- bl memcpy
- ldr r1, _08148438 @ =gUnknown_03005F3C
- movs r0, 0xA
- strb r0, [r1]
- b _08148532
- .align 2, 0
-_0814841C: .4byte gUnknown_03005F40
-_08148420: .4byte gNatureToMonPokeblockAnim
-_08148424: .4byte gUnknown_03005F30
-_08148428: .4byte gUnknown_03005F20
-_0814842C: .4byte gUnknown_03005F2C
-_08148430: .4byte gSprites
-_08148434: .4byte gUnknown_03005F50
-_08148438: .4byte gUnknown_03005F3C
-_0814843C:
- bl sub_8148540
- ldr r1, _081484A4 @ =gNatureToMonPokeblockAnim
- ldr r0, _081484A8 @ =gUnknown_03005F30
- ldrb r0, [r0]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08148474
- ldr r3, _081484AC @ =gUnknown_03005F20
- ldr r2, [r3]
- ldrb r0, [r2, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldr r2, [r3]
- ldrb r1, [r2, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x3]
- ldr r0, [r3]
- ldr r1, _081484B0 @ =gSpriteAffineAnimTable_8412050
- str r1, [r0, 0x10]
- bl InitSpriteAffineAnim
-_08148474:
- ldr r1, _081484B4 @ =gUnknown_03005F3C
- movs r0, 0x32
- strb r0, [r1]
-_0814847A:
- ldr r1, _081484A4 @ =gNatureToMonPokeblockAnim
- ldr r0, _081484A8 @ =gUnknown_03005F30
- ldrb r0, [r0]
- lsls r0, 1
- adds r1, 0x1
- adds r2, r0, r1
- ldrb r1, [r2]
- cmp r1, 0
- beq _081484EE
- ldr r0, _081484B8 @ =gUnknown_03005F28
- ldrb r0, [r0]
- cmp r0, 0
- bne _081484BC
- ldr r0, _081484AC @ =gUnknown_03005F20
- ldr r0, [r0]
- adds r1, 0xA
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAffineAnim
- b _081484EE
- .align 2, 0
-_081484A4: .4byte gNatureToMonPokeblockAnim
-_081484A8: .4byte gUnknown_03005F30
-_081484AC: .4byte gUnknown_03005F20
-_081484B0: .4byte gSpriteAffineAnimTable_8412050
-_081484B4: .4byte gUnknown_03005F3C
-_081484B8: .4byte gUnknown_03005F28
-_081484BC:
- ldr r0, _081484C8 @ =gUnknown_03005F20
- ldr r0, [r0]
- ldrb r1, [r2]
- bl StartSpriteAffineAnim
- b _081484EE
- .align 2, 0
-_081484C8: .4byte gUnknown_03005F20
-_081484CC:
- bl sub_81485CC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08148532
- ldr r0, _081484F8 @ =gUnknown_03005FA0
- movs r1, 0x12
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08148504
- ldr r1, _081484FC @ =gUnknown_03005F40
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl sub_8148540
-_081484EE:
- ldr r1, _08148500 @ =gUnknown_03005F3C
- movs r0, 0x3C
- strb r0, [r1]
- b _08148532
- .align 2, 0
-_081484F8: .4byte gUnknown_03005FA0
-_081484FC: .4byte gUnknown_03005F40
-_08148500: .4byte gUnknown_03005F3C
-_08148504:
- ldr r0, _0814851C @ =gUnknown_03005F20
- ldr r0, [r0]
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r1, _08148520 @ =gUnknown_03005F3C
- movs r0, 0x46
- strb r0, [r1]
- b _08148532
- .align 2, 0
-_0814851C: .4byte gUnknown_03005F20
-_08148520: .4byte gUnknown_03005F3C
-_08148524:
- bl sub_8148618
- ldr r0, _08148538 @ =gUnknown_03005F40
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0814853C @ =gUnknown_03005F3C
- strb r1, [r0]
-_08148532:
- pop {r0}
- bx r0
- .align 2, 0
-_08148538: .4byte gUnknown_03005F40
-_0814853C: .4byte gUnknown_03005F3C
- thumb_func_end sub_814825C
-
- thumb_func_start sub_8148540
-sub_8148540: @ 8148540
- push {r4-r7,lr}
- movs r4, 0
- ldr r5, _081485B4 @ =gUnknown_03005FA0
- mov r12, r5
- ldr r7, _081485B8 @ =gMonPokeblockAnims
- ldr r6, _081485BC @ =gUnknown_03005F40
-_0814854C:
- lsls r2, r4, 1
- mov r0, r12
- adds r3, r2, r0
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, r0
- adds r2, r7
- ldrh r0, [r2]
- strh r0, [r3]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _0814854C
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _081485C4
- movs r2, 0
- ldrsh r0, [r5, r2]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x14]
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- bl Cos
- strh r0, [r5, 0x16]
- ldrh r0, [r5, 0x8]
- strh r0, [r5, 0x18]
- ldr r0, _081485C0 @ =gUnknown_03005F20
- ldr r1, [r0]
- ldrh r0, [r1, 0x24]
- strh r0, [r5, 0x1A]
- ldrh r0, [r1, 0x26]
- strh r0, [r5, 0x1C]
- bl sub_8148710
- ldrh r0, [r5, 0x18]
- strh r0, [r5, 0x8]
- bl sub_814862C
- ldrh r0, [r5, 0x18]
- strh r0, [r5, 0x8]
- movs r0, 0
- b _081485C6
- .align 2, 0
-_081485B4: .4byte gUnknown_03005FA0
-_081485B8: .4byte gMonPokeblockAnims
-_081485BC: .4byte gUnknown_03005F40
-_081485C0: .4byte gUnknown_03005F20
-_081485C4:
- movs r0, 0x1
-_081485C6:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8148540
-
- thumb_func_start sub_81485CC
-sub_81485CC: @ 81485CC
- push {r4,lr}
- ldr r3, _08148604 @ =gUnknown_03005FA0
- ldrh r0, [r3, 0x18]
- ldrh r1, [r3, 0x8]
- subs r0, r1
- lsls r0, 16
- ldr r1, _08148608 @ =gUnknown_03005F20
- ldr r4, [r1]
- lsrs r0, 15
- ldr r1, _0814860C @ =0x0201d000
- adds r2, r0, r1
- ldrh r2, [r2]
- strh r2, [r4, 0x24]
- movs r2, 0x80
- lsls r2, 3
- adds r1, r2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r4, 0x26]
- ldrh r0, [r3, 0x8]
- subs r0, 0x1
- strh r0, [r3, 0x8]
- lsls r0, 16
- cmp r0, 0
- beq _08148610
- movs r0, 0
- b _08148612
- .align 2, 0
-_08148604: .4byte gUnknown_03005FA0
-_08148608: .4byte gUnknown_03005F20
-_0814860C: .4byte 0x0201d000
-_08148610:
- movs r0, 0x1
-_08148612:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81485CC
-
- thumb_func_start sub_8148618
-sub_8148618: @ 8148618
- push {lr}
- ldr r0, _08148628 @ =gUnknown_03005F20
- ldr r0, [r0]
- bl FreeSpriteOamMatrix
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08148628: .4byte gUnknown_03005F20
- thumb_func_end sub_8148618
-
- thumb_func_start sub_814862C
-sub_814862C: @ 814862C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r1, _08148700 @ =gUnknown_03005FA0
- ldrh r0, [r1, 0x10]
- mov r8, r0
- ldrh r0, [r1, 0x18]
- mov r2, r8
- subs r0, r2
- lsls r0, 16
- lsrs r7, r0, 16
- ldrh r0, [r1, 0xC]
- ldrh r3, [r1, 0x1A]
- adds r0, r3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- ldrh r0, [r1, 0xE]
- ldrh r1, [r1, 0x1C]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r6, 0
- subs r0, r7, 0x1
- ldr r4, _08148704 @ =0x0201cffe
- mov r10, r4
- cmp r6, r0
- bge _081486D4
- ldr r1, [sp]
- lsls r0, r1, 16
- asrs r0, 16
- str r0, [sp, 0x4]
-_08148674:
- mov r2, r8
- adds r5, r2, r6
- lsls r5, 1
- ldr r4, _08148708 @ =0x0201d000
- adds r3, r5, r4
- ldrh r2, [r3]
- ldr r0, [sp, 0x4]
- subs r1, r2, r0
- ldr r4, _0814870C @ =0x0201d400
- adds r5, r4
- ldrh r0, [r5]
- mov r12, r0
- mov r4, r9
- lsls r0, r4, 16
- asrs r0, 16
- mov r4, r12
- subs r0, r4, r0
- lsls r4, r0, 16
- lsrs r4, 16
- lsls r1, 16
- asrs r1, 16
- adds r6, 0x1
- adds r0, r1, 0
- muls r0, r6
- adds r1, r7, 0
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- bl __divsi3
- ldr r2, [sp, 0x8]
- subs r2, r0
- ldr r3, [sp, 0xC]
- strh r2, [r3]
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- muls r0, r6
- adds r1, r7, 0
- bl __divsi3
- ldrh r1, [r5]
- subs r1, r0
- strh r1, [r5]
- lsls r6, 16
- lsrs r6, 16
- subs r0, r7, 0x1
- cmp r6, r0
- blt _08148674
-_081486D4:
- mov r1, r8
- adds r0, r1, r7
- lsls r0, 1
- mov r2, r10
- adds r1, r0, r2
- mov r3, sp
- ldrh r3, [r3]
- strh r3, [r1]
- movs r1, 0x80
- lsls r1, 3
- add r1, r10
- adds r0, r1
- mov r4, r9
- strh r4, [r0]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08148700: .4byte gUnknown_03005FA0
-_08148704: .4byte 0x0201cffe
-_08148708: .4byte 0x0201d000
-_0814870C: .4byte 0x0201d400
- thumb_func_end sub_814862C
-
- thumb_func_start sub_8148710
-sub_8148710: @ 8148710
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- ldr r1, _081487A4 @ =gUnknown_03005FA0
- ldrh r2, [r1, 0x1A]
- ldrh r0, [r1, 0x14]
- subs r2, r0
- ldrh r3, [r1, 0x1C]
- ldrh r0, [r1, 0x16]
- subs r3, r0
- adds r6, r1, 0
- ldr r1, _081487A8 @ =0x0201d000
- mov r9, r1
- lsls r2, 16
- asrs r2, 16
- mov r8, r2
- movs r2, 0x80
- lsls r2, 3
- add r2, r9
- mov r10, r2
- lsls r3, 16
- asrs r7, r3, 16
-_08148746:
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bge _08148750
- negs r0, r0
-_08148750:
- lsls r0, 16
- lsrs r0, 16
- ldrh r2, [r6, 0x6]
- adds r0, r2
- lsls r5, r0, 16
- strh r0, [r6, 0x6]
- ldrh r2, [r6, 0x4]
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bge _0814876A
- movs r0, 0x1
- str r0, [sp]
-_0814876A:
- ldrh r0, [r6, 0x18]
- ldrh r1, [r6, 0x8]
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r1, 0
- beq _081487F0
- ldr r1, [sp]
- cmp r1, 0
- bne _081487AC
- movs r1, 0
- ldrsh r0, [r6, r1]
- lsrs r5, 24
- adds r1, r2, r5
- lsls r1, 16
- asrs r1, 16
- bl Sin
- lsls r4, 1
- mov r2, r9
- adds r1, r4, r2
- add r0, r8
- strh r0, [r1]
- movs r1, 0
- ldrsh r0, [r6, r1]
- ldrh r1, [r6, 0x6]
- adds r1, r5
- b _081487CE
- .align 2, 0
-_081487A4: .4byte gUnknown_03005FA0
-_081487A8: .4byte 0x0201d000
-_081487AC:
- movs r1, 0
- ldrsh r0, [r6, r1]
- lsrs r5, 24
- subs r1, r2, r5
- lsls r1, 16
- asrs r1, 16
- bl Sin
- lsls r4, 1
- mov r2, r9
- adds r1, r4, r2
- add r0, r8
- strh r0, [r1]
- movs r1, 0
- ldrsh r0, [r6, r1]
- ldrh r1, [r6, 0x6]
- subs r1, r5
-_081487CE:
- lsls r1, 16
- asrs r1, 16
- bl Cos
- add r4, r10
- adds r0, r7, r0
- strh r0, [r4]
- ldrh r0, [r6, 0x2]
- ldrh r2, [r6]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r6]
- ldrh r0, [r6, 0x8]
- subs r0, 0x1
- strh r0, [r6, 0x8]
- b _08148746
-_081487F0:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8148710
-
.align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index fbab390f3..cf42e2aaf 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -204,6 +204,7 @@ SECTIONS {
src/mystery_event_menu.o(.text);
src/save_failed_screen.o(.text);
asm/rom_81473B8.o(.text);
+ asm/pokeblock_feed.o(.text);
src/clear_save_data_menu.o(.text);
asm/rom_8148B8C.o(.text);
src/menu_cursor.o(.text);