summaryrefslogtreecommitdiff
path: root/asm/rom3.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/rom3.s')
-rw-r--r--asm/rom3.s19203
1 files changed, 747 insertions, 18456 deletions
diff --git a/asm/rom3.s b/asm/rom3.s
index 0b329b8f7..707ba0df6 100644
--- a/asm/rom3.s
+++ b/asm/rom3.s
@@ -6,4242 +6,6 @@
.text
- thumb_func_start CB2_MainMenu
-CB2_MainMenu: @ 80096C4
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end CB2_MainMenu
-
- thumb_func_start VBlankCB_MainMenu
-VBlankCB_MainMenu: @ 80096DC
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end VBlankCB_MainMenu
-
- thumb_func_start CB2_InitMainMenu
-CB2_InitMainMenu: @ 80096F0
- push {lr}
- movs r0, 0
- bl InitMainMenu
- pop {r0}
- bx r0
- thumb_func_end CB2_InitMainMenu
-
- thumb_func_start sub_80096FC
-sub_80096FC: @ 80096FC
- push {lr}
- movs r0, 0x1
- bl InitMainMenu
- pop {r0}
- bx r0
- thumb_func_end sub_80096FC
-
- thumb_func_start InitMainMenu
-InitMainMenu: @ 8009708
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0xC
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x10
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- add r0, sp, 0x4
- strh r1, [r0]
- ldr r1, _080097BC
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080097C0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r5, 0
- str r5, [sp, 0x8]
- add r0, sp, 0x8
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080097C4
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0x4
- strh r5, [r0]
- str r0, [r1]
- ldr r0, _080097C8
- str r0, [r1, 0x4]
- ldr r0, _080097CC
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- ldr r0, _080097D0
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- bl remove_some_task
- bl ResetTasks
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r0, _080097D4
- bl SetUpWindowConfig
- ldr r0, _080097D8
- bl sub_8071C4C
- cmp r4, 0
- beq _080097DC
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _080097EE
- .align 2, 0
-_080097BC: .4byte 0x040000d4
-_080097C0: .4byte 0x8100c000
-_080097C4: .4byte 0x85000100
-_080097C8: .4byte 0x05000002
-_080097CC: .4byte 0x810001ff
-_080097D0: .4byte gUnknown_081E797C
-_080097D4: .4byte gWindowConfig_81E6C3C
-_080097D8: .4byte gWindowConfig_81E6CE4
-_080097DC:
- movs r0, 0x1
- negs r0, r0
- ldr r1, _08009858
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_080097EE:
- ldr r0, _0800985C
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r3, _08009860
- ldrh r2, [r3]
- strh r1, [r3]
- ldr r4, _08009864
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r0, _08009868
- bl SetVBlankCallback
- ldr r0, _0800986C
- bl SetMainCallback2
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xC5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08009870
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08009874
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0xA]
- add sp, 0xC
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08009858: .4byte 0x0000ffff
-_0800985C: .4byte REG_WIN0H
-_08009860: .4byte 0x04000208
-_08009864: .4byte 0x04000200
-_08009868: .4byte VBlankCB_MainMenu
-_0800986C: .4byte CB2_MainMenu
-_08009870: .4byte Task_CheckSave
-_08009874: .4byte 0x03004b20
- thumb_func_end InitMainMenu
-
- thumb_func_start Task_CheckSave
-Task_CheckSave: @ 8009878
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080098D4
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _08009894
- b _080099FC
-_08009894:
- ldr r7, _080098D8
- strh r6, [r7]
- ldr r0, _080098DC
- mov r8, r0
- strh r6, [r0]
- ldr r1, _080098E0
- ldr r2, _080098E4
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x31
- strh r0, [r1]
- adds r1, 0x6
- movs r0, 0xF1
- strh r0, [r1]
- ldr r0, _080098E8
- strh r6, [r0]
- adds r1, 0x4
- movs r0, 0x7
- strh r0, [r1]
- ldr r0, _080098EC
- ldrh r4, [r0]
- cmp r4, 0x2
- beq _0800993C
- cmp r4, 0x2
- bgt _080098F0
- cmp r4, 0
- beq _080099AC
- cmp r4, 0x1
- beq _080098FA
- b _080099AC
- .align 2, 0
-_080098D4: .4byte 0x0202f388
-_080098D8: .4byte REG_WIN0H
-_080098DC: .4byte REG_WIN0V
-_080098E0: .4byte REG_WININ
-_080098E4: .4byte 0x00001111
-_080098E8: .4byte REG_BLDALPHA
-_080098EC: .4byte 0x03005eb8
-_080098F0:
- cmp r4, 0x4
- beq _080099C8
- cmp r4, 0xFF
- beq _08009950
- b _080099AC
-_080098FA:
- bl sub_806918C
- cmp r0, 0x1
- bne _0800991C
- ldr r2, _08009918
- lsls r3, r5, 2
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x8]
- adds r1, r2, 0
- adds r2, r3, 0
- b _0800992A
- .align 2, 0
-_08009918: .4byte 0x03004b20
-_0800991C:
- ldr r0, _08009934
- lsls r2, r5, 2
- adds r1, r2, r5
- lsls r1, 3
- adds r1, r0
- strh r4, [r1, 0x8]
- adds r1, r0, 0
-_0800992A:
- adds r0, r2, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08009938
- b _080099FA
- .align 2, 0
-_08009934: .4byte 0x03004b20
-_08009938: .4byte Task_CheckRtc
-_0800993C:
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl DrawDefaultWindow
- ldr r0, _0800994C
- b _080099D6
- .align 2, 0
-_0800994C: .4byte gUnknown_0840DEC2
-_08009950:
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl DrawDefaultWindow
- ldr r0, _08009994
- movs r1, 0x3
- movs r2, 0xF
- bl AddTextPrinterWithCallbackForMessage
- ldr r2, _08009998
- adds r0, r2, 0
- strh r0, [r7]
- ldr r1, _0800999C
- adds r0, r1, 0
- mov r2, r8
- strh r0, [r2]
- ldr r1, _080099A0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r5, 0x1
- strh r5, [r4, 0x8]
- ldr r0, _080099A4
- str r0, [r4]
- bl sub_806918C
- cmp r0, 0x1
- bne _080099A8
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080099FC
- .align 2, 0
-_08009994: .4byte gUnknown_0840DE81
-_08009998: .4byte 0x000011df
-_0800999C: .4byte 0x0000719f
-_080099A0: .4byte 0x03004b20
-_080099A4: .4byte Task_WaitForSaveErrorAck
-_080099A8:
- strh r5, [r4, 0x8]
- b _080099FC
-_080099AC:
- ldr r1, _080099C0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r1, _080099C4
- b _080099FA
- .align 2, 0
-_080099C0: .4byte 0x03004b20
-_080099C4: .4byte Task_CheckRtc
-_080099C8:
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl DrawDefaultWindow
- ldr r0, _08009A08
-_080099D6:
- movs r1, 0x3
- movs r2, 0xF
- bl AddTextPrinterWithCallbackForMessage
- ldr r1, _08009A0C
- adds r0, r1, 0
- strh r0, [r7]
- ldr r2, _08009A10
- adds r0, r2, 0
- mov r1, r8
- strh r0, [r1]
- ldr r1, _08009A14
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0x8]
- ldr r1, _08009A18
-_080099FA:
- str r1, [r0]
-_080099FC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08009A08: .4byte gUnknown_0840DEE5
-_08009A0C: .4byte 0x000011df
-_08009A10: .4byte 0x0000719f
-_08009A14: .4byte 0x03004b20
-_08009A18: .4byte Task_WaitForSaveErrorAck
- thumb_func_end Task_CheckSave
-
- thumb_func_start Task_WaitForSaveErrorAck
-Task_WaitForSaveErrorAck: @ 8009A1C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8072080
- lsls r0, 24
- cmp r0, 0
- beq _08009A52
- ldr r0, _08009A58
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08009A52
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl Reset
- ldr r0, _08009A5C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08009A60
- str r0, [r1]
-_08009A52:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08009A58: .4byte 0x03001770
-_08009A5C: .4byte 0x03004b20
-_08009A60: .4byte Task_CheckRtc
- thumb_func_end Task_WaitForSaveErrorAck
-
- thumb_func_start Task_CheckRtc
-Task_CheckRtc: @ 8009A64
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, _08009AC0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _08009B10
- ldr r6, _08009AC4
- strh r2, [r6]
- ldr r7, _08009AC8
- strh r2, [r7]
- ldr r1, _08009ACC
- ldr r3, _08009AD0
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x31
- strh r0, [r1]
- adds r1, 0x6
- movs r0, 0xF1
- strh r0, [r1]
- ldr r0, _08009AD4
- strh r2, [r0]
- adds r1, 0x4
- movs r0, 0x7
- strh r0, [r1]
- bl RtcGetErrorStatus
- movs r1, 0xFF
- lsls r1, 4
- ands r1, r0
- cmp r1, 0
- bne _08009AE0
- ldr r0, _08009AD8
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08009ADC
- str r0, [r1]
- b _08009B10
- .align 2, 0
-_08009AC0: .4byte 0x0202f388
-_08009AC4: .4byte REG_WIN0H
-_08009AC8: .4byte REG_WIN0V
-_08009ACC: .4byte REG_WININ
-_08009AD0: .4byte 0x00001111
-_08009AD4: .4byte REG_BLDALPHA
-_08009AD8: .4byte 0x03004b20
-_08009ADC: .4byte Task_DrawMainMenu
-_08009AE0:
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl DrawDefaultWindow
- ldr r0, _08009B18
- movs r1, 0x3
- movs r2, 0xF
- bl AddTextPrinterWithCallbackForMessage
- ldr r1, _08009B1C
- adds r0, r1, 0
- strh r0, [r6]
- ldr r3, _08009B20
- adds r0, r3, 0
- strh r0, [r7]
- ldr r1, _08009B24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08009B28
- str r1, [r0]
-_08009B10:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08009B18: .4byte gUnknown_0840DF10
-_08009B1C: .4byte 0x000011df
-_08009B20: .4byte 0x0000719f
-_08009B24: .4byte 0x03004b20
-_08009B28: .4byte Task_WaitForRtcErrorAck
- thumb_func_end Task_CheckRtc
-
- thumb_func_start Task_WaitForRtcErrorAck
-Task_WaitForRtcErrorAck: @ 8009B2C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8072080
- lsls r0, 24
- cmp r0, 0
- beq _08009B62
- ldr r0, _08009B68
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08009B62
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl Reset
- ldr r0, _08009B6C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08009B70
- str r0, [r1]
-_08009B62:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08009B68: .4byte 0x03001770
-_08009B6C: .4byte 0x03004b20
-_08009B70: .4byte Task_DrawMainMenu
- thumb_func_end Task_WaitForRtcErrorAck
-
- thumb_func_start Task_DrawMainMenu
-Task_DrawMainMenu: @ 8009B74
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08009BDC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08009B8E
- b _08009D20
-_08009B8E:
- ldr r0, _08009BE0
- strh r2, [r0]
- adds r0, 0x4
- strh r2, [r0]
- ldr r1, _08009BE4
- ldr r3, _08009BE8
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x31
- strh r0, [r1]
- adds r1, 0x6
- movs r0, 0xF1
- strh r0, [r1]
- ldr r0, _08009BEC
- strh r2, [r0]
- adds r1, 0x4
- movs r0, 0x7
- strh r0, [r1]
- mov r0, sp
- strh r2, [r0]
- movs r1, 0xFE
- movs r2, 0x2
- bl LoadPalette
- ldr r0, _08009BF0
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08009BF8
- mov r1, sp
- ldr r2, _08009BF4
- adds r0, r2, 0
- strh r0, [r1]
- mov r0, sp
- movs r1, 0xF1
- movs r2, 0x2
- bl LoadPalette
- b _08009C0A
- .align 2, 0
-_08009BDC: .4byte 0x0202f388
-_08009BE0: .4byte REG_WIN0H
-_08009BE4: .4byte REG_WININ
-_08009BE8: .4byte 0x00001111
-_08009BEC: .4byte REG_BLDALPHA
-_08009BF0: .4byte gSaveBlock2
-_08009BF4: .4byte 0x00007e04
-_08009BF8:
- mov r1, sp
- ldr r3, _08009C54
- adds r0, r3, 0
- strh r0, [r1]
- mov r0, sp
- movs r1, 0xF1
- movs r2, 0x2
- bl LoadPalette
-_08009C0A:
- ldr r2, _08009C58
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r5, r1, 0
- cmp r0, 0x1
- beq _08009C64
- cmp r0, 0x1
- ble _08009C26
- cmp r0, 0x2
- beq _08009CB8
-_08009C26:
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1C
- movs r3, 0x3
- bl DrawDefaultWindow
- ldr r0, _08009C5C
- movs r1, 0x2
- movs r2, 0x1
- bl PrintMainMenuItem
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1C
- movs r3, 0x7
- bl DrawDefaultWindow
- ldr r0, _08009C60
- movs r1, 0x2
- movs r2, 0x5
- bl PrintMainMenuItem
- b _08009D14
- .align 2, 0
-_08009C54: .4byte 0x0000547f
-_08009C58: .4byte 0x03004b20
-_08009C5C: .4byte gUnknown_0840DCD0
-_08009C60: .4byte gUnknown_0840DCE2
-_08009C64:
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1C
- movs r3, 0x7
- bl DrawDefaultWindow
- ldr r0, _08009CAC
- movs r1, 0x2
- movs r2, 0x1
- bl PrintMainMenuItem
- movs r0, 0x1
- movs r1, 0x8
- movs r2, 0x1C
- movs r3, 0xB
- bl DrawDefaultWindow
- ldr r0, _08009CB0
- movs r1, 0x2
- movs r2, 0x9
- bl PrintMainMenuItem
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0xF
- bl DrawDefaultWindow
- ldr r0, _08009CB4
- movs r1, 0x2
- movs r2, 0xD
- bl PrintMainMenuItem
- bl PrintSaveFileInfo
- b _08009D14
- .align 2, 0
-_08009CAC: .4byte gUnknown_0840DCD9
-_08009CB0: .4byte gUnknown_0840DCD0
-_08009CB4: .4byte gUnknown_0840DCE2
-_08009CB8:
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1C
- movs r3, 0x7
- bl DrawDefaultWindow
- ldr r0, _08009D28
- movs r1, 0x2
- movs r2, 0x1
- bl PrintMainMenuItem
- movs r0, 0x1
- movs r1, 0x8
- movs r2, 0x1C
- movs r3, 0xB
- bl DrawDefaultWindow
- ldr r0, _08009D2C
- movs r1, 0x2
- movs r2, 0x9
- bl PrintMainMenuItem
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0xF
- bl DrawDefaultWindow
- ldr r0, _08009D30
- movs r1, 0x2
- movs r2, 0xD
- bl PrintMainMenuItem
- movs r0, 0x1
- movs r1, 0x10
- movs r2, 0x1C
- movs r3, 0x13
- bl DrawDefaultWindow
- ldr r0, _08009D34
- movs r1, 0x2
- movs r2, 0x11
- bl PrintMainMenuItem
- bl PrintSaveFileInfo
-_08009D14:
- ldr r0, _08009D38
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08009D3C
- str r0, [r1]
-_08009D20:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08009D28: .4byte gUnknown_0840DCD9
-_08009D2C: .4byte gUnknown_0840DCD0
-_08009D30: .4byte gUnknown_0840DCE9
-_08009D34: .4byte gUnknown_0840DCE2
-_08009D38: .4byte 0x03004b20
-_08009D3C: .4byte Task_HighlightCurrentMenuItem
- thumb_func_end Task_DrawMainMenu
-
- thumb_func_start Task_HighlightCurrentMenuItem
-Task_HighlightCurrentMenuItem: @ 8009D40
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08009D64
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrb r0, [r4, 0x8]
- ldrb r1, [r4, 0xA]
- bl HighlightCurrentMenuItem
- ldr r0, _08009D68
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08009D64: .4byte 0x03004b20
-_08009D68: .4byte Task_MainMenuProcessKeyInput
- thumb_func_end Task_HighlightCurrentMenuItem
-
- thumb_func_start MainMenuProcessKeyInput
-MainMenuProcessKeyInput: @ 8009D6C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08009DA8
- ldrh r2, [r1, 0x2E]
- movs r0, 0x1
- ands r0, r2
- mov r12, r1
- cmp r0, 0
- beq _08009DB4
- movs r0, 0x5
- bl audio_play
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08009DAC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08009DB0
- str r1, [r0]
- b _08009E74
- .align 2, 0
-_08009DA8: .4byte 0x03001770
-_08009DAC: .4byte 0x03004b20
-_08009DB0: .4byte MainMenuPressedA
-_08009DB4:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _08009E00
- movs r0, 0x5
- bl audio_play
- movs r0, 0x1
- negs r0, r0
- ldr r1, _08009DF0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08009DF4
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0xA0
- strh r0, [r1]
- ldr r1, _08009DF8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08009DFC
- str r1, [r0]
- b _08009E74
- .align 2, 0
-_08009DF0: .4byte 0x0000ffff
-_08009DF4: .4byte REG_WIN0H
-_08009DF8: .4byte 0x03004b20
-_08009DFC: .4byte MainMenuPressedB
-_08009E00:
- ldr r0, _08009E20
- lsls r2, r4, 2
- adds r1, r2, r4
- lsls r1, 3
- adds r1, r0
- movs r3, 0x8
- ldrsh r1, [r1, r3]
- adds r6, r0, 0
- cmp r1, 0x1
- beq _08009E24
- cmp r1, 0x1
- ble _08009E1C
- cmp r1, 0x2
- beq _08009E28
-_08009E1C:
- movs r5, 0x2
- b _08009E2A
- .align 2, 0
-_08009E20: .4byte 0x03004b20
-_08009E24:
- movs r5, 0x3
- b _08009E2A
-_08009E28:
- movs r5, 0x4
-_08009E2A:
- mov r7, r12
- ldrh r1, [r7, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08009E4E
- adds r0, r2, r4
- lsls r0, 3
- adds r1, r0, r6
- ldrh r3, [r1, 0xA]
- movs r7, 0xA
- ldrsh r0, [r1, r7]
- cmp r0, 0
- ble _08009E4E
- subs r0, r3, 0x1
- strh r0, [r1, 0xA]
- movs r0, 0x1
- b _08009E76
-_08009E4E:
- mov r0, r12
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08009E74
- adds r0, r2, r4
- lsls r0, 3
- adds r2, r0, r6
- movs r3, 0xA
- ldrsh r1, [r2, r3]
- subs r0, r5, 0x1
- cmp r1, r0
- bge _08009E74
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- movs r0, 0x1
- b _08009E76
-_08009E74:
- movs r0, 0
-_08009E76:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end MainMenuProcessKeyInput
-
- thumb_func_start Task_MainMenuProcessKeyInput
-Task_MainMenuProcessKeyInput: @ 8009E80
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MainMenuProcessKeyInput
- lsls r0, 24
- cmp r0, 0
- beq _08009EA0
- ldr r0, _08009EA8
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08009EAC
- str r0, [r1]
-_08009EA0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08009EA8: .4byte 0x03004b20
-_08009EAC: .4byte Task_HighlightCurrentMenuItem
- thumb_func_end Task_MainMenuProcessKeyInput
-
- thumb_func_start MainMenuPressedA
-MainMenuPressedA: @ 8009EB0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08009EEC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08009FA4
- ldr r0, _08009EF0
- lsls r2, r4, 2
- adds r1, r2, r4
- lsls r1, 3
- adds r1, r0
- movs r5, 0x8
- ldrsh r3, [r1, r5]
- adds r5, r0, 0
- cmp r3, 0x1
- beq _08009EF4
- cmp r3, 0x1
- ble _08009EDE
- cmp r3, 0x2
- beq _08009F06
-_08009EDE:
- movs r0, 0xA
- ldrsh r1, [r1, r0]
- cmp r1, 0
- beq _08009F1E
- cmp r1, 0x1
- bne _08009F1E
- b _08009F26
- .align 2, 0
-_08009EEC: .4byte 0x0202f388
-_08009EF0: .4byte 0x03004b20
-_08009EF4:
- movs r0, 0xA
- ldrsh r1, [r1, r0]
- cmp r1, 0x1
- beq _08009F1E
- cmp r1, 0x1
- ble _08009F1A
- cmp r1, 0x2
- bne _08009F1A
- b _08009F26
-_08009F06:
- movs r0, 0xA
- ldrsh r1, [r1, r0]
- cmp r1, 0x1
- beq _08009F1E
- cmp r1, 0x1
- ble _08009F1A
- cmp r1, 0x2
- beq _08009F22
- cmp r1, 0x3
- beq _08009F26
-_08009F1A:
- movs r0, 0x1
- b _08009F28
-_08009F1E:
- movs r0, 0
- b _08009F28
-_08009F22:
- movs r0, 0x3
- b _08009F28
-_08009F26:
- movs r0, 0x2
-_08009F28:
- cmp r0, 0x1
- beq _08009F5C
- cmp r0, 0x1
- ble _08009F38
- cmp r0, 0x2
- beq _08009F78
- cmp r0, 0x3
- beq _08009F98
-_08009F38:
- ldr r0, _08009F50
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08009F54
- strh r1, [r0]
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r5
- ldr r1, _08009F58
- str r1, [r0]
- b _08009FA4
- .align 2, 0
-_08009F50: .4byte 0x0202eac8
-_08009F54: .4byte 0x0202eec8
-_08009F58: .4byte Task_Birch1
-_08009F5C:
- ldr r0, _08009F6C
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08009F70
- strh r1, [r0]
- ldr r0, _08009F74
- b _08009F80
- .align 2, 0
-_08009F6C: .4byte 0x0202eac8
-_08009F70: .4byte 0x0202eec8
-_08009F74: .4byte CB2_ContinueSavedGame
-_08009F78:
- ldr r0, _08009F8C
- ldr r1, _08009F90
- str r1, [r0, 0x8]
- ldr r0, _08009F94
-_08009F80:
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
- b _08009FA4
- .align 2, 0
-_08009F8C: .4byte 0x03001770
-_08009F90: .4byte sub_80096FC
-_08009F94: .4byte CB2_InitOptionMenu
-_08009F98:
- ldr r0, _08009FAC
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08009FA4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08009FAC: .4byte CB2_InitMysteryEventMenu
- thumb_func_end MainMenuPressedA
-
- thumb_func_start MainMenuPressedB
-MainMenuPressedB: @ 8009FB0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08009FD4
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08009FCE
- ldr r0, _08009FD8
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08009FCE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08009FD4: .4byte 0x0202f388
-_08009FD8: .4byte CB2_InitTitleScreen
- thumb_func_end MainMenuPressedB
-
- thumb_func_start HighlightCurrentMenuItem
-HighlightCurrentMenuItem: @ 8009FDC
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- ldr r1, _0800A008
- ldr r4, _0800A00C
- adds r0, r4, 0
- strh r0, [r1]
- cmp r3, 0x1
- beq _0800A028
- cmp r3, 0x1
- ble _08009FFA
- cmp r3, 0x2
- beq _0800A064
-_08009FFA:
- cmp r2, 0
- beq _0800A002
- cmp r2, 0x1
- beq _0800A018
-_0800A002:
- ldr r1, _0800A010
- ldr r2, _0800A014
- b _0800A0A8
- .align 2, 0
-_0800A008: .4byte REG_WIN0H
-_0800A00C: .4byte 0x000009e7
-_0800A010: .4byte REG_WIN0V
-_0800A014: .4byte 0x0000011f
-_0800A018:
- ldr r1, _0800A020
- ldr r4, _0800A024
- adds r0, r4, 0
- b _0800A0AA
- .align 2, 0
-_0800A020: .4byte REG_WIN0V
-_0800A024: .4byte 0x0000213f
-_0800A028:
- cmp r2, 0x1
- beq _0800A044
- cmp r2, 0x1
- ble _0800A034
- cmp r2, 0x2
- beq _0800A054
-_0800A034:
- ldr r1, _0800A03C
- ldr r2, _0800A040
- b _0800A0A8
- .align 2, 0
-_0800A03C: .4byte REG_WIN0V
-_0800A040: .4byte 0x0000013f
-_0800A044:
- ldr r1, _0800A04C
- ldr r4, _0800A050
- adds r0, r4, 0
- b _0800A0AA
- .align 2, 0
-_0800A04C: .4byte REG_WIN0V
-_0800A050: .4byte 0x0000415f
-_0800A054:
- ldr r1, _0800A05C
- ldr r2, _0800A060
- b _0800A0A8
- .align 2, 0
-_0800A05C: .4byte REG_WIN0V
-_0800A060: .4byte 0x0000617f
-_0800A064:
- cmp r2, 0x1
- beq _0800A084
- cmp r2, 0x1
- ble _0800A074
- cmp r2, 0x2
- beq _0800A094
- cmp r2, 0x3
- beq _0800A0A4
-_0800A074:
- ldr r1, _0800A07C
- ldr r4, _0800A080
- adds r0, r4, 0
- b _0800A0AA
- .align 2, 0
-_0800A07C: .4byte REG_WIN0V
-_0800A080: .4byte 0x0000013f
-_0800A084:
- ldr r1, _0800A08C
- ldr r2, _0800A090
- b _0800A0A8
- .align 2, 0
-_0800A08C: .4byte REG_WIN0V
-_0800A090: .4byte 0x0000415f
-_0800A094:
- ldr r1, _0800A09C
- ldr r4, _0800A0A0
- adds r0, r4, 0
- b _0800A0AA
- .align 2, 0
-_0800A09C: .4byte REG_WIN0V
-_0800A0A0: .4byte 0x0000617f
-_0800A0A4:
- ldr r1, _0800A0B4
- ldr r2, _0800A0B8
-_0800A0A8:
- adds r0, r2, 0
-_0800A0AA:
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A0B4: .4byte REG_WIN0V
-_0800A0B8: .4byte 0x0000819f
- thumb_func_end HighlightCurrentMenuItem
-
- thumb_func_start PrintMainMenuItem
-PrintMainMenuItem: @ 800A0BC
- push {r4-r6,lr}
- sub sp, 0x20
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r1, sp
- movs r0, 0xFC
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r0, 0xE
- strb r0, [r1, 0x2]
- movs r3, 0
-_0800A0DA:
- adds r0, r3, 0x3
- mov r6, sp
- adds r1, r6, r0
- adds r0, r4, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x19
- bls _0800A0DA
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1, 0x1D]
- mov r0, sp
- adds r1, r5, 0
- bl Print
- add sp, 0x20
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end PrintMainMenuItem
-
- thumb_func_start PrintSaveFileInfo
-PrintSaveFileInfo: @ 800A108
- push {lr}
- bl PrintPlayerName
- bl PrintPokedexCount
- bl PrintPlayTime
- bl PrintBadgeCount
- pop {r0}
- bx r0
- thumb_func_end PrintSaveFileInfo
-
- thumb_func_start PrintPlayerName
-PrintPlayerName: @ 800A120
- push {lr}
- ldr r0, _0800A13C
- movs r1, 0x2
- movs r2, 0x3
- bl Print
- ldr r0, _0800A140
- movs r1, 0x9
- movs r2, 0x3
- bl Print
- pop {r0}
- bx r0
- .align 2, 0
-_0800A13C: .4byte gUnknown_0840DF7C
-_0800A140: .4byte gSaveBlock2
- thumb_func_end PrintPlayerName
-
- thumb_func_start PrintPlayTime
-PrintPlayTime: @ 800A144
- push {r4,lr}
- sub sp, 0x30
- ldr r0, _0800A180
- movs r1, 0x10
- movs r2, 0x3
- bl Print
- ldr r0, _0800A184
- ldrh r1, [r0, 0xE]
- ldrb r2, [r0, 0x10]
- mov r0, sp
- movs r3, 0x1
- bl FormatPlayTime
- add r4, sp, 0x10
- adds r0, r4, 0
- mov r1, sp
- movs r2, 0x30
- movs r3, 0x1
- bl sub_8072C74
- adds r0, r4, 0
- movs r1, 0x16
- movs r2, 0x3
- bl Print
- add sp, 0x30
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A180: .4byte gUnknown_0840DF8B
-_0800A184: .4byte gSaveBlock2
- thumb_func_end PrintPlayTime
-
- thumb_func_start PrintPokedexCount
-PrintPokedexCount: @ 800A188
- push {lr}
- sub sp, 0x10
- ldr r0, _0800A1BC
- movs r1, 0x2
- movs r2, 0x5
- bl Print
- bl GetPokedexSeenCount
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r0, sp
- movs r2, 0x12
- movs r3, 0
- bl sub_8072C14
- mov r0, sp
- movs r1, 0x9
- movs r2, 0x5
- bl Print
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_0800A1BC: .4byte gUnknown_0840DF83
- thumb_func_end PrintPokedexCount
-
- thumb_func_start PrintBadgeCount
-PrintBadgeCount: @ 800A1C0
- push {lr}
- sub sp, 0x10
- ldr r0, _0800A1F0
- movs r1, 0x10
- movs r2, 0x5
- bl Print
- bl GetBadgeCount
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- bl ConvertIntToDecimalString
- mov r0, sp
- movs r1, 0xCD
- movs r2, 0x28
- movs r3, 0x1
- bl sub_80729D8
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_0800A1F0: .4byte gUnknown_0840DF90
- thumb_func_end PrintBadgeCount
-
- thumb_func_start Task_Birch1
-Task_Birch1: @ 800A1F4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0800A2B0
- bl SetUpWindowConfig
- ldr r0, _0800A2B4
- bl sub_8071C4C
- ldr r0, _0800A2B8
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r0, _0800A2BC
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _0800A2C0
- ldr r1, _0800A2C4
- bl LZ77UnCompVram
- ldr r0, _0800A2C8
- movs r1, 0
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _0800A2CC
- movs r1, 0x1
- movs r2, 0x10
- bl LoadPalette
- bl remove_some_task
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- adds r0, r4, 0
- bl AddBirchSpeechObjects
- movs r0, 0x1
- negs r0, r0
- movs r5, 0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _0800A2D0
- ldr r2, _0800A2D4
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0800A2D8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x10]
- ldr r1, _0800A2DC
- str r1, [r0]
- movs r1, 0xFF
- strh r1, [r0, 0xC]
- strh r1, [r0, 0xE]
- movs r1, 0xD8
- strh r1, [r0, 0x16]
- movs r0, 0xBB
- lsls r0, 1
- bl sub_8075474
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A2B0: .4byte gWindowConfig_81E6C3C
-_0800A2B4: .4byte gWindowConfig_81E6CE4
-_0800A2B8: .4byte REG_WIN0H
-_0800A2BC: .4byte gUnknown_081E768C
-_0800A2C0: .4byte gUnknown_081E7834
-_0800A2C4: .4byte 0x06003800
-_0800A2C8: .4byte gUnknown_081E764C
-_0800A2CC: .4byte gUnknown_081E796C
-_0800A2D0: .4byte REG_BG1CNT
-_0800A2D4: .4byte 0x00000703
-_0800A2D8: .4byte 0x03004b20
-_0800A2DC: .4byte task_new_game_prof_birch_speech_2
- thumb_func_end Task_Birch1
-
- thumb_func_start task_new_game_prof_birch_speech_2
-task_new_game_prof_birch_speech_2: @ 800A2E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0800A300
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x16]
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0800A304
- subs r0, r1, 0x1
- strh r0, [r4, 0x16]
- b _0800A34A
- .align 2, 0
-_0800A300: .4byte 0x03004b20
-_0800A304:
- ldrb r0, [r4, 0x18]
- ldr r2, _0800A350
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x88
- strh r0, [r1, 0x20]
- movs r0, 0x3C
- strh r0, [r1, 0x22]
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- subs r0, 0x41
- ands r0, r2
- strb r0, [r3]
- ldrb r2, [r1, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x1]
- adds r0, r5, 0
- movs r1, 0xA
- bl sub_800B534
- adds r0, r5, 0
- movs r1, 0x14
- bl sub_800B6C0
- movs r0, 0x50
- strh r0, [r4, 0x16]
- ldr r0, _0800A354
- str r0, [r4]
-_0800A34A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A350: .4byte 0x02020004
-_0800A354: .4byte task_new_game_prof_birch_speech_3
- thumb_func_end task_new_game_prof_birch_speech_2
-
- thumb_func_start task_new_game_prof_birch_speech_3
-task_new_game_prof_birch_speech_3: @ 800A358
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0800A398
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0800A3BA
- ldr r2, _0800A39C
- movs r1, 0x18
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrh r1, [r4, 0x16]
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0800A3A0
- subs r0, r1, 0x1
- strh r0, [r4, 0x16]
- b _0800A3BA
- .align 2, 0
-_0800A398: .4byte 0x03004b20
-_0800A39C: .4byte 0x02020004
-_0800A3A0:
- movs r0, 0x2
- movs r1, 0xD
- movs r2, 0x1B
- movs r3, 0x12
- bl DrawDefaultWindow
- ldr r0, _0800A3C0
- movs r1, 0x3
- movs r2, 0xE
- bl AddTextPrinterWithCallbackForMessage
- ldr r0, _0800A3C4
- str r0, [r4]
-_0800A3BA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A3C0: .4byte gUnknown_081C6D78
-_0800A3C4: .4byte task_new_game_prof_birch_speech_4
- thumb_func_end task_new_game_prof_birch_speech_3
-
- thumb_func_start task_new_game_prof_birch_speech_4
-task_new_game_prof_birch_speech_4: @ 800A3C8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0800A404
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0800A3FE
- movs r0, 0x18
- bl sub_8072CF4
- lsls r0, 24
- cmp r0, 0
- beq _0800A3FE
- ldr r1, _0800A408
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0800A40C
- str r1, [r0]
- ldr r0, _0800A410
- movs r1, 0x3
- movs r2, 0xE
- bl AddTextPrinterWithCallbackForMessage
-_0800A3FE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A404: .4byte 0x0202f388
-_0800A408: .4byte 0x03004b20
-_0800A40C: .4byte task_new_game_prof_birch_speech_5
-_0800A410: .4byte gUnknown_081C6DF8
- thumb_func_end task_new_game_prof_birch_speech_4
-
- thumb_func_start task_new_game_prof_birch_speech_5
-task_new_game_prof_birch_speech_5: @ 800A414
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x18
- bl sub_8072CF4
- lsls r0, 24
- cmp r0, 0
- beq _0800A434
- ldr r0, _0800A43C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0800A440
- str r0, [r1]
-_0800A434:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A43C: .4byte 0x03004b20
-_0800A440: .4byte task_new_game_prof_birch_speech_6
- thumb_func_end task_new_game_prof_birch_speech_5
-
- thumb_func_start task_new_game_prof_birch_speech_6
-task_new_game_prof_birch_speech_6: @ 800A444
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800A4A8
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrb r0, [r4, 0x1A]
- ldr r1, _0800A4AC
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- movs r5, 0
- movs r1, 0x68
- strh r1, [r2, 0x20]
- movs r1, 0x48
- strh r1, [r2, 0x22]
- movs r1, 0x3E
- adds r1, r2
- mov r12, r1
- ldrb r3, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- mov r3, r12
- strb r1, [r3]
- strh r5, [r2, 0x2E]
- ldrb r1, [r2, 0x5]
- lsrs r1, 4
- str r5, [sp]
- str r5, [sp, 0x4]
- movs r2, 0x20
- str r2, [sp, 0x8]
- ldr r2, _0800A4B0
- str r2, [sp, 0xC]
- movs r2, 0x70
- movs r3, 0x3A
- bl AddTextPrinterForMessage
- ldr r0, _0800A4B4
- str r0, [r4]
- strh r5, [r4, 0x16]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A4A8: .4byte 0x03004b20
-_0800A4AC: .4byte 0x02020004
-_0800A4B0: .4byte 0x0000ffff
-_0800A4B4: .4byte task_new_game_prof_birch_speech_7
- thumb_func_end task_new_game_prof_birch_speech_6
-
- thumb_func_start task_new_game_prof_birch_speech_7
-task_new_game_prof_birch_speech_7: @ 800A4B8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8075374
- lsls r0, 24
- cmp r0, 0
- beq _0800A4E4
- ldr r0, _0800A518
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r5, r1, r0
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- cmp r0, 0x5F
- ble _0800A4E4
- ldr r0, _0800A51C
- bl sub_807206C
- ldr r0, _0800A520
- str r0, [r5]
-_0800A4E4:
- ldr r1, _0800A518
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrh r3, [r2, 0x16]
- movs r0, 0x16
- ldrsh r1, [r2, r0]
- ldr r0, _0800A524
- cmp r1, r0
- bgt _0800A510
- adds r0, r3, 0x1
- strh r0, [r2, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- bne _0800A510
- movs r0, 0xAF
- lsls r0, 1
- movs r1, 0
- bl cry_related
-_0800A510:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A518: .4byte 0x03004b20
-_0800A51C: .4byte gUnknown_0840DFF7
-_0800A520: .4byte task_new_game_prof_birch_speech_8
-_0800A524: .4byte 0x00003fff
- thumb_func_end task_new_game_prof_birch_speech_7
-
- thumb_func_start task_new_game_prof_birch_speech_8
-task_new_game_prof_birch_speech_8: @ 800A528
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x18
- bl sub_8072CF4
- lsls r0, 24
- cmp r0, 0
- beq _0800A552
- ldr r0, _0800A558
- movs r1, 0x3
- movs r2, 0xE
- bl AddTextPrinterWithCallbackForMessage
- ldr r1, _0800A55C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0800A560
- str r1, [r0]
-_0800A552:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A558: .4byte gUnknown_081C6E1A
-_0800A55C: .4byte 0x03004b20
-_0800A560: .4byte task_new_game_prof_birch_speech_9
- thumb_func_end task_new_game_prof_birch_speech_8
-
- thumb_func_start task_new_game_prof_birch_speech_9
-task_new_game_prof_birch_speech_9: @ 800A564
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x18
- bl sub_8072CF4
- lsls r0, 24
- cmp r0, 0
- beq _0800A59A
- movs r0, 0x2
- movs r1, 0xD
- movs r2, 0x1B
- movs r3, 0x12
- bl DrawDefaultWindow
- ldr r0, _0800A5A0
- movs r1, 0x3
- movs r2, 0xE
- bl AddTextPrinterWithCallbackForMessage
- ldr r1, _0800A5A4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0800A5A8
- str r1, [r0]
-_0800A59A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A5A0: .4byte gUnknown_081C6FCB
-_0800A5A4: .4byte 0x03004b20
-_0800A5A8: .4byte task_new_game_prof_birch_speech_10
- thumb_func_end task_new_game_prof_birch_speech_9
-
- thumb_func_start task_new_game_prof_birch_speech_10
-task_new_game_prof_birch_speech_10: @ 800A5AC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0x18
- bl sub_8072CF4
- lsls r0, 24
- cmp r0, 0
- beq _0800A612
- ldr r5, _0800A618
- ldr r0, _0800A61C
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r0
- movs r1, 0x18
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r3, [r1, 0x1]
- movs r2, 0xD
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1, 0x1]
- movs r0, 0x1A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- ands r2, r1
- orrs r2, r3
- strb r2, [r0, 0x1]
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_800B458
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_800B614
- movs r0, 0x40
- strh r0, [r4, 0x16]
- ldr r0, _0800A620
- str r0, [r4]
-_0800A612:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A618: .4byte 0x02020004
-_0800A61C: .4byte 0x03004b20
-_0800A620: .4byte task_new_game_prof_birch_speech_11
- thumb_func_end task_new_game_prof_birch_speech_10
-
- thumb_func_start task_new_game_prof_birch_speech_11
-task_new_game_prof_birch_speech_11: @ 800A624
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0800A64C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r2
- ldrh r3, [r2, 0x10]
- movs r0, 0x10
- ldrsh r1, [r2, r0]
- movs r0, 0x3C
- negs r0, r0
- cmp r1, r0
- beq _0800A654
- subs r1, r3, 0x2
- strh r1, [r2, 0x10]
- ldr r0, _0800A650
- strh r1, [r0]
- b _0800A65C
- .align 2, 0
-_0800A64C: .4byte 0x03004b20
-_0800A650: .4byte REG_BG1HOFS
-_0800A654:
- ldr r0, _0800A660
- strh r0, [r2, 0x10]
- ldr r0, _0800A664
- str r0, [r2]
-_0800A65C:
- pop {r0}
- bx r0
- .align 2, 0
-_0800A660: .4byte 0x0000ffc4
-_0800A664: .4byte task_new_game_prof_birch_speech_12
- thumb_func_end task_new_game_prof_birch_speech_11
-
- thumb_func_start task_new_game_prof_birch_speech_12
-task_new_game_prof_birch_speech_12: @ 800A668
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0800A6C0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0800A70E
- ldr r2, _0800A6C4
- movs r0, 0x18
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r7, 0x4
- orrs r1, r7
- strb r1, [r0]
- movs r0, 0x1A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r7
- strb r1, [r0]
- ldrh r0, [r4, 0x16]
- movs r1, 0x16
- ldrsh r6, [r4, r1]
- cmp r6, 0
- beq _0800A6C8
- subs r0, 0x1
- strh r0, [r4, 0x16]
- b _0800A70E
- .align 2, 0
-_0800A6C0: .4byte 0x03004b20
-_0800A6C4: .4byte 0x02020004
-_0800A6C8:
- ldrb r3, [r4, 0x1C]
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r2
- movs r0, 0xB4
- strh r0, [r1, 0x20]
- movs r0, 0x3C
- strh r0, [r1, 0x22]
- movs r2, 0x3E
- adds r2, r1
- mov r12, r2
- ldrb r2, [r2]
- subs r0, 0x41
- ands r0, r2
- mov r2, r12
- strb r0, [r2]
- ldrb r2, [r1, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r7
- strb r0, [r1, 0x1]
- strh r3, [r4, 0xC]
- strh r6, [r4, 0x14]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_800B534
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_800B6C0
- ldr r0, _0800A714
- str r0, [r4]
-_0800A70E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A714: .4byte task_new_game_prof_birch_speech_13
- thumb_func_end task_new_game_prof_birch_speech_12
-
- thumb_func_start task_new_game_prof_birch_speech_13
-task_new_game_prof_birch_speech_13: @ 800A718
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0800A750
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _0800A74C
- ldr r2, _0800A754
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r0, _0800A758
- str r0, [r3]
-_0800A74C:
- pop {r0}
- bx r0
- .align 2, 0
-_0800A750: .4byte 0x03004b20
-_0800A754: .4byte 0x02020004
-_0800A758: .4byte task_new_game_prof_birch_speech_14
- thumb_func_end task_new_game_prof_birch_speech_13
-
- thumb_func_start task_new_game_prof_birch_speech_14
-task_new_game_prof_birch_speech_14: @ 800A75C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0xD
- movs r2, 0x1B
- movs r3, 0x12
- bl DrawDefaultWindow
- ldr r0, _0800A790
- movs r1, 0x3
- movs r2, 0xE
- bl AddTextPrinterWithCallbackForMessage
- ldr r1, _0800A794
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0800A798
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A790: .4byte gUnknown_081C6FD8
-_0800A794: .4byte 0x03004b20
-_0800A798: .4byte task_new_game_prof_birch_speech_15
- thumb_func_end task_new_game_prof_birch_speech_14
-
- thumb_func_start task_new_game_prof_birch_speech_15
-task_new_game_prof_birch_speech_15: @ 800A79C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x18
- bl sub_8072CF4
- lsls r0, 24
- cmp r0, 0
- beq _0800A7C4
- movs r0, 0x2
- movs r1, 0x4
- bl CreateGenderMenu
- ldr r0, _0800A7CC
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0800A7D0
- str r0, [r1]
-_0800A7C4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A7CC: .4byte 0x03004b20
-_0800A7D0: .4byte task_new_game_prof_birch_speech_16
- thumb_func_end task_new_game_prof_birch_speech_15
-
- thumb_func_start task_new_game_prof_birch_speech_16
-task_new_game_prof_birch_speech_16: @ 800A7D4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl GenderMenuProcessInput
- lsls r0, 24
- asrs r4, r0, 24
- cmp r4, 0
- beq _0800A7EE
- cmp r4, 0x1
- beq _0800A7EE
- lsls r4, r5, 2
- b _0800A818
-_0800A7EE:
- bl sub_8072DEC
- movs r0, 0x5
- bl audio_play
- ldr r0, _0800A860
- strb r4, [r0, 0x8]
- movs r0, 0x2
- movs r1, 0x4
- movs r2, 0x8
- movs r3, 0x9
- bl Reset
- ldr r1, _0800A864
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0800A868
- str r1, [r0]
- adds r4, r2, 0
-_0800A818:
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _0800A864
- adds r0, r4, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r3, r0
- beq _0800A85A
- strh r3, [r4, 0x14]
- ldr r2, _0800A86C
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x1]
- adds r0, r5, 0
- movs r1, 0
- bl sub_800B458
- ldr r0, _0800A870
- str r0, [r4]
-_0800A85A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A860: .4byte gSaveBlock2
-_0800A864: .4byte 0x03004b20
-_0800A868: .4byte sub_800A974
-_0800A86C: .4byte 0x02020004
-_0800A870: .4byte task_new_game_prof_birch_speech_17
- thumb_func_end task_new_game_prof_birch_speech_16
-
- thumb_func_start task_new_game_prof_birch_speech_17
-task_new_game_prof_birch_speech_17: @ 800A874
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0800A8A4
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- ldrb r5, [r4, 0xC]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- adds r7, r1, 0
- cmp r0, 0
- bne _0800A8AC
- ldr r0, _0800A8A8
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x4
- strh r0, [r1, 0x20]
- b _0800A912
- .align 2, 0
-_0800A8A4: .4byte 0x03004b20
-_0800A8A8: .4byte 0x02020004
-_0800A8AC:
- ldr r3, _0800A8CC
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0800A8D0
- ldrb r5, [r4, 0x1E]
- b _0800A8D2
- .align 2, 0
-_0800A8CC: .4byte 0x02020004
-_0800A8D0:
- ldrb r5, [r4, 0x1C]
-_0800A8D2:
- lsls r2, r5, 4
- adds r2, r5
- lsls r2, 2
- adds r2, r3
- movs r0, 0xF0
- strh r0, [r2, 0x20]
- movs r0, 0x3C
- strh r0, [r2, 0x22]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- subs r0, 0x41
- ands r0, r1
- strb r0, [r3]
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r7
- strh r5, [r4, 0xC]
- ldrb r1, [r2, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x1]
- adds r0, r6, 0
- movs r1, 0
- bl sub_800B534
- ldr r0, _0800A918
- str r0, [r4]
-_0800A912:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A918: .4byte task_new_game_prof_birch_speech_18
- thumb_func_end task_new_game_prof_birch_speech_17
-
- thumb_func_start task_new_game_prof_birch_speech_18
-task_new_game_prof_birch_speech_18: @ 800A91C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0800A948
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrb r1, [r3, 0xC]
- ldr r2, _0800A94C
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r2
- ldrh r1, [r2, 0x20]
- movs r4, 0x20
- ldrsh r0, [r2, r4]
- cmp r0, 0xB4
- ble _0800A950
- subs r0, r1, 0x4
- strh r0, [r2, 0x20]
- b _0800A96A
- .align 2, 0
-_0800A948: .4byte 0x03004b20
-_0800A94C: .4byte 0x02020004
-_0800A950:
- movs r0, 0xB4
- strh r0, [r2, 0x20]
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _0800A96A
- ldrb r0, [r2, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- strb r1, [r2, 0x1]
- ldr r0, _0800A970
- str r0, [r3]
-_0800A96A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A970: .4byte task_new_game_prof_birch_speech_16
- thumb_func_end task_new_game_prof_birch_speech_18
-
- thumb_func_start sub_800A974
-sub_800A974: @ 800A974
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0xD
- movs r2, 0x1B
- movs r3, 0x12
- bl DrawDefaultWindow
- ldr r0, _0800A9A8
- movs r1, 0x3
- movs r2, 0xE
- bl AddTextPrinterWithCallbackForMessage
- ldr r1, _0800A9AC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0800A9B0
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A9A8: .4byte gUnknown_081C6FFA
-_0800A9AC: .4byte 0x03004b20
-_0800A9B0: .4byte Task_800A9B4
- thumb_func_end sub_800A974
-
- thumb_func_start Task_800A9B4
-Task_800A9B4: @ 800A9B4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x18
- bl sub_8072CF4
- lsls r0, 24
- cmp r0, 0
- beq _0800A9DC
- movs r0, 0x2
- movs r1, 0x1
- bl CreateNameMenu
- ldr r0, _0800A9E4
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0800A9E8
- str r0, [r1]
-_0800A9DC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A9E4: .4byte 0x03004b20
-_0800A9E8: .4byte sub_800A9EC
- thumb_func_end Task_800A9B4
-
- thumb_func_start sub_800A9EC
-sub_800A9EC: @ 800A9EC
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- bl NameMenuProcessInput
- lsls r6, r0, 24
- asrs r4, r6, 24
- cmp r4, 0
- beq _0800AA48
- cmp r4, 0
- bgt _0800AA0E
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _0800AA78
- b _0800AA9C
-_0800AA0E:
- cmp r4, 0x4
- bgt _0800AA9C
- bl sub_8072DEC
- movs r0, 0x5
- bl audio_play
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x16
- movs r3, 0xC
- bl Reset
- lsrs r0, r6, 24
- bl set_default_player_name
- ldr r1, _0800AA40
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0800AA44
- str r1, [r0]
- b _0800AA9C
- .align 2, 0
-_0800AA40: .4byte 0x03004b20
-_0800AA44: .4byte task_new_game_prof_birch_speech_part2_1
-_0800AA48:
- movs r0, 0x5
- bl audio_play
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0800AA70
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0800AA74
- str r1, [r0]
- b _0800AA9C
- .align 2, 0
-_0800AA70: .4byte 0x03004b20
-_0800AA74: .4byte sub_800AAAC
-_0800AA78:
- bl sub_8072DEC
- movs r0, 0x5
- bl audio_play
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x16
- movs r3, 0xC
- bl Reset
- ldr r0, _0800AAA4
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0800AAA8
- str r0, [r1]
-_0800AA9C:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800AAA4: .4byte 0x03004b20
-_0800AAA8: .4byte task_new_game_prof_birch_speech_14
- thumb_func_end sub_800A9EC
-
- thumb_func_start sub_800AAAC
-sub_800AAAC: @ 800AAAC
- push {r4,lr}
- sub sp, 0x8
- ldr r0, _0800AAE0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0800AAD8
- movs r0, 0x1
- bl set_default_player_name
- ldr r1, _0800AAE4
- ldrb r2, [r1, 0x8]
- str r4, [sp]
- ldr r0, _0800AAE8
- str r0, [sp, 0x4]
- movs r0, 0
- movs r3, 0
- bl DoNamingScreen
-_0800AAD8:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800AAE0: .4byte 0x0202f388
-_0800AAE4: .4byte gSaveBlock2
-_0800AAE8: .4byte new_game_prof_birch_speech_part2_start
- thumb_func_end sub_800AAAC
-
- thumb_func_start task_new_game_prof_birch_speech_part2_1
-task_new_game_prof_birch_speech_part2_1: @ 800AAEC
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0xD
- movs r2, 0x1B
- movs r3, 0x12
- bl DrawDefaultWindow
- ldr r5, _0800AB28
- ldr r1, _0800AB2C
- adds r0, r5, 0
- bl StringExpandPlaceholders
- adds r0, r5, 0
- movs r1, 0x3
- movs r2, 0xE
- bl AddTextPrinterWithCallbackForMessage
- ldr r1, _0800AB30
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0800AB34
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800AB28: .4byte 0x020234cc
-_0800AB2C: .4byte gUnknown_081C7017
-_0800AB30: .4byte 0x03004b20
-_0800AB34: .4byte sub_800AB38
- thumb_func_end task_new_game_prof_birch_speech_part2_1
-
- thumb_func_start sub_800AB38
-sub_800AB38: @ 800AB38
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x18
- bl sub_8072CF4
- lsls r0, 24
- cmp r0, 0
- beq _0800AB62
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x1
- bl sub_8072974
- ldr r0, _0800AB68
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0800AB6C
- str r0, [r1]
-_0800AB62:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800AB68: .4byte 0x03004b20
-_0800AB6C: .4byte task_new_game_prof_birch_speech_part2_4
- thumb_func_end sub_800AB38
-
- thumb_func_start task_new_game_prof_birch_speech_part2_4
-task_new_game_prof_birch_speech_part2_4: @ 800AB70
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl FillWindowPixelBuffer
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _0800AB96
- cmp r1, 0
- bgt _0800AB90
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0800ABF0
- b _0800AC10
-_0800AB90:
- cmp r1, 0x1
- beq _0800ABF0
- b _0800AC10
-_0800AB96:
- movs r0, 0x5
- bl audio_play
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0x7
- bl Reset
- ldr r2, _0800ABE4
- ldr r0, _0800ABE8
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x1]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_800B458
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_800B614
- ldr r0, _0800ABEC
- str r0, [r4]
- b _0800AC10
- .align 2, 0
-_0800ABE4: .4byte 0x02020004
-_0800ABE8: .4byte 0x03004b20
-_0800ABEC: .4byte sub_800AC20
-_0800ABF0:
- movs r0, 0x5
- bl audio_play
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0x7
- bl Reset
- ldr r0, _0800AC18
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0800AC1C
- str r0, [r1]
-_0800AC10:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800AC18: .4byte 0x03004b20
-_0800AC1C: .4byte task_new_game_prof_birch_speech_14
- thumb_func_end task_new_game_prof_birch_speech_part2_4
-
- thumb_func_start sub_800AC20
-sub_800AC20: @ 800AC20
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0800AC44
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r2
- ldrh r1, [r2, 0x10]
- movs r3, 0x10
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _0800AC4C
- adds r1, 0x2
- strh r1, [r2, 0x10]
- ldr r0, _0800AC48
- strh r1, [r0]
- b _0800AC50
- .align 2, 0
-_0800AC44: .4byte 0x03004b20
-_0800AC48: .4byte REG_BG1HOFS
-_0800AC4C:
- ldr r0, _0800AC54
- str r0, [r2]
-_0800AC50:
- pop {r0}
- bx r0
- .align 2, 0
-_0800AC54: .4byte task_new_game_prof_birch_speech_part2_6
- thumb_func_end sub_800AC20
-
- thumb_func_start task_new_game_prof_birch_speech_part2_6
-task_new_game_prof_birch_speech_part2_6: @ 800AC58
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0800AD34
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r7, r0, r1
- movs r1, 0x12
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _0800AD2C
- ldr r5, _0800AD38
- movs r2, 0x1C
- ldrsh r1, [r7, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r3, 0x4
- mov r12, r3
- mov r2, r12
- orrs r1, r2
- strb r1, [r0]
- movs r3, 0x1E
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- ldrb r0, [r7, 0x18]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x88
- strh r0, [r1, 0x20]
- movs r0, 0x40
- strh r0, [r1, 0x22]
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- movs r4, 0x5
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r3]
- ldrb r3, [r1, 0x1]
- movs r2, 0xD
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- mov r3, r12
- orrs r0, r3
- strb r0, [r1, 0x1]
- ldrb r1, [r7, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x68
- strh r1, [r0, 0x20]
- movs r1, 0x48
- strh r1, [r0, 0x22]
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- ands r4, r1
- strb r4, [r3]
- ldrb r1, [r0, 0x1]
- ands r2, r1
- mov r1, r12
- orrs r2, r1
- strb r2, [r0, 0x1]
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_800B534
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_800B6C0
- movs r0, 0x2
- movs r1, 0xD
- movs r2, 0x1B
- movs r3, 0x12
- bl DrawDefaultWindow
- ldr r4, _0800AD3C
- ldr r1, _0800AD40
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0xE
- bl AddTextPrinterWithCallbackForMessage
- ldr r0, _0800AD44
- str r0, [r7]
-_0800AD2C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800AD34: .4byte 0x03004b20
-_0800AD38: .4byte 0x02020004
-_0800AD3C: .4byte 0x020234cc
-_0800AD40: .4byte gUnknown_081C7025
-_0800AD44: .4byte task_new_game_prof_birch_speech_part2_7
- thumb_func_end task_new_game_prof_birch_speech_part2_6
-
- thumb_func_start task_new_game_prof_birch_speech_part2_7
-task_new_game_prof_birch_speech_part2_7: @ 800AD48
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0800ADE8
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0800ADE0
- ldr r7, _0800ADEC
- movs r1, 0x18
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r1, 0x1]
- movs r6, 0xD
- negs r6, r6
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- movs r1, 0x1A
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r1, 0x1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- movs r0, 0x18
- bl sub_8072CF4
- lsls r0, 24
- cmp r0, 0
- beq _0800ADE0
- movs r0, 0x18
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r2, [r0, 0x1]
- adds r1, r6, 0
- ands r1, r2
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r0, 0x1]
- movs r1, 0x1A
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r1, 0x1]
- adds r0, r6, 0
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x1]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_800B458
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_800B614
- movs r0, 0x40
- strh r0, [r4, 0x16]
- ldr r0, _0800ADF0
- str r0, [r4]
-_0800ADE0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800ADE8: .4byte 0x03004b20
-_0800ADEC: .4byte 0x02020004
-_0800ADF0: .4byte task_new_game_prof_birch_speech_part2_8
- thumb_func_end task_new_game_prof_birch_speech_part2_7
-
- thumb_func_start task_new_game_prof_birch_speech_part2_8
-task_new_game_prof_birch_speech_part2_8: @ 800ADF4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0800AE4C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- adds r7, r1, 0
- cmp r0, 0
- beq _0800AEC4
- ldr r2, _0800AE50
- movs r3, 0x18
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r0]
- movs r0, 0x1A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- ldrh r1, [r4, 0x16]
- movs r3, 0x16
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0800AE54
- subs r0, r1, 0x1
- strh r0, [r4, 0x16]
- b _0800AEC4
- .align 2, 0
-_0800AE4C: .4byte 0x03004b20
-_0800AE50: .4byte 0x02020004
-_0800AE54:
- ldr r0, _0800AE60
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- beq _0800AE64
- ldrb r5, [r4, 0x1E]
- b _0800AE66
- .align 2, 0
-_0800AE60: .4byte gSaveBlock2
-_0800AE64:
- ldrb r5, [r4, 0x1C]
-_0800AE66:
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r2
- movs r0, 0x78
- strh r0, [r1, 0x20]
- movs r0, 0x3C
- strh r0, [r1, 0x22]
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- subs r0, 0x41
- ands r0, r2
- strb r0, [r3]
- ldrb r2, [r1, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x1]
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r7
- strh r5, [r4, 0xC]
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_800B534
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_800B6C0
- movs r0, 0x2
- movs r1, 0xD
- movs r2, 0x1B
- movs r3, 0x12
- bl DrawDefaultWindow
- ldr r0, _0800AECC
- movs r1, 0x3
- movs r2, 0xE
- bl AddTextPrinterWithCallbackForMessage
- ldr r0, _0800AED0
- str r0, [r4]
-_0800AEC4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800AECC: .4byte gUnknown_081C7074
-_0800AED0: .4byte task_new_game_prof_birch_speech_part2_9
- thumb_func_end task_new_game_prof_birch_speech_part2_8
-
- thumb_func_start task_new_game_prof_birch_speech_part2_9
-task_new_game_prof_birch_speech_part2_9: @ 800AED4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0800AF6C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r6, r1, r2
- movs r1, 0x12
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _0800AF64
- ldr r7, _0800AF70
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r1, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- movs r0, 0x18
- bl sub_8072CF4
- lsls r0, 24
- cmp r0, 0
- beq _0800AF64
- ldrb r0, [r6, 0xC]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r5, r4, r7
- ldrb r1, [r5, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r5, 0x1]
- adds r0, r7, 0
- adds r0, 0x10
- adds r0, r4, r0
- ldr r1, _0800AF74
- str r1, [r0]
- adds r0, r5, 0
- bl InitSpriteAffineAnim
- adds r0, r5, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- adds r0, r7, 0
- adds r0, 0x1C
- adds r4, r0
- ldr r0, _0800AF78
- str r0, [r4]
- ldr r0, _0800AF7C
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x4
- bl play_sound_effect
- ldr r0, _0800AF80
- str r0, [r6]
-_0800AF64:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800AF6C: .4byte 0x03004b20
-_0800AF70: .4byte 0x02020004
-_0800AF74: .4byte gSpriteAffineAnimTable_81E79AC
-_0800AF78: .4byte sub_800B240
-_0800AF7C: .4byte 0x0000ffff
-_0800AF80: .4byte task_new_game_prof_birch_speech_part2_10
- thumb_func_end task_new_game_prof_birch_speech_part2_9
-
- thumb_func_start task_new_game_prof_birch_speech_part2_10
-task_new_game_prof_birch_speech_part2_10: @ 800AF84
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0800AFB4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrb r1, [r3, 0xC]
- ldr r2, _0800AFB8
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _0800AFAE
- ldr r0, _0800AFBC
- str r0, [r3]
-_0800AFAE:
- pop {r0}
- bx r0
- .align 2, 0
-_0800AFB4: .4byte 0x03004b20
-_0800AFB8: .4byte 0x02020004
-_0800AFBC: .4byte sub_800AFC0
- thumb_func_end task_new_game_prof_birch_speech_part2_10
-
- thumb_func_start sub_800AFC0
-sub_800AFC0: @ 800AFC0
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0800B018
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0800B010
- ldr r0, _0800B01C
- lsls r4, r2, 2
- adds r4, r2
- lsls r4, 3
- adds r4, r0
- ldrb r2, [r4, 0xC]
- ldr r1, _0800B020
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0800B024
- str r1, [r0]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x82
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0800B028
- ldr r1, _0800B02C
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0800B030
- str r0, [r4]
-_0800B010:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B018: .4byte 0x0202f388
-_0800B01C: .4byte 0x03004b20
-_0800B020: .4byte 0x02020004
-_0800B024: .4byte nullsub_34
-_0800B028: .4byte 0xffff0000
-_0800B02C: .4byte 0x0000ffff
-_0800B030: .4byte sub_800B034
- thumb_func_end sub_800AFC0
-
- thumb_func_start sub_800B034
-sub_800B034: @ 800B034
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0800B058
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0800B052
- ldr r0, _0800B05C
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0800B052:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B058: .4byte 0x0202f388
-_0800B05C: .4byte c2_load_new_map_2
- thumb_func_end sub_800B034
-
- thumb_func_start new_game_prof_birch_speech_part2_start
-new_game_prof_birch_speech_part2_start: @ 800B060
- push {r4,r5,lr}
- sub sp, 0xC
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x80
- lsls r0, 19
- movs r4, 0
- strh r4, [r0]
- adds r0, 0xC
- strh r4, [r0]
- subs r0, 0x2
- strh r4, [r0]
- subs r0, 0x2
- strh r4, [r0]
- adds r0, 0x10
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- subs r0, 0x6
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- subs r0, 0x6
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- add r0, sp, 0x4
- strh r4, [r0]
- ldr r1, _0800B13C
- str r0, [r1]
- movs r4, 0xC0
- lsls r4, 19
- str r4, [r1, 0x4]
- ldr r0, _0800B140
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0
- str r2, [sp, 0x8]
- add r0, sp, 0x8
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _0800B144
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0x4
- strh r2, [r0]
- str r0, [r1]
- movs r0, 0xA0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _0800B148
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- ldr r0, _0800B14C
- adds r1, r4, 0
- bl LZ77UnCompVram
- ldr r0, _0800B150
- ldr r1, _0800B154
- bl LZ77UnCompVram
- ldr r0, _0800B158
- movs r1, 0
- movs r2, 0x40
- bl LoadPalette
- bl ResetTasks
- ldr r0, _0800B15C
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0800B160
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldr r0, _0800B164
- strh r0, [r4, 0x10]
- bl remove_some_task
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- adds r0, r5, 0
- bl AddBirchSpeechObjects
- ldr r0, _0800B168
- bl SetUpWindowConfig
- ldr r0, _0800B16C
- bl sub_8071C4C
- ldr r0, _0800B170
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- beq _0800B174
- movs r0, 0x1
- strh r0, [r4, 0x14]
- ldrb r3, [r4, 0x1E]
- b _0800B178
- .align 2, 0
-_0800B13C: .4byte 0x040000d4
-_0800B140: .4byte 0x8100c000
-_0800B144: .4byte 0x85000100
-_0800B148: .4byte 0x81000200
-_0800B14C: .4byte gUnknown_081E768C
-_0800B150: .4byte gUnknown_081E7834
-_0800B154: .4byte 0x06003800
-_0800B158: .4byte gUnknown_081E764C
-_0800B15C: .4byte task_new_game_prof_birch_speech_part2_1
-_0800B160: .4byte 0x03004b20
-_0800B164: .4byte 0x0000ffc4
-_0800B168: .4byte gWindowConfig_81E6C3C
-_0800B16C: .4byte gWindowConfig_81E6CE4
-_0800B170: .4byte gSaveBlock2
-_0800B174:
- strh r0, [r4, 0x14]
- ldrb r3, [r4, 0x1C]
-_0800B178:
- ldr r0, _0800B210
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- movs r4, 0
- movs r0, 0xB4
- strh r0, [r1, 0x20]
- movs r0, 0x3C
- strh r0, [r1, 0x22]
- adds r1, 0x3E
- ldrb r2, [r1]
- subs r0, 0x41
- ands r0, r2
- strb r0, [r1]
- ldr r1, _0800B214
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0xC]
- ldr r1, _0800B218
- ldr r2, _0800B21C
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _0800B220
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x6
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r3, _0800B224
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _0800B228
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r0, _0800B22C
- bl SetVBlankCallback
- ldr r0, _0800B230
- bl SetMainCallback2
- ldr r1, _0800B234
- ldr r2, _0800B238
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B210: .4byte 0x02020004
-_0800B214: .4byte 0x03004b20
-_0800B218: .4byte REG_BG1HOFS
-_0800B21C: .4byte 0x0000ffc4
-_0800B220: .4byte REG_WIN0H
-_0800B224: .4byte 0x04000208
-_0800B228: .4byte 0x04000200
-_0800B22C: .4byte VBlankCB_MainMenu
-_0800B230: .4byte CB2_MainMenu
-_0800B234: .4byte REG_BG1CNT
-_0800B238: .4byte 0x00000703
- thumb_func_end new_game_prof_birch_speech_part2_start
-
- thumb_func_start nullsub_34
-nullsub_34: @ 800B23C
- bx lr
- thumb_func_end nullsub_34
-
- thumb_func_start sub_800B240
-sub_800B240: @ 800B240
- movs r2, 0x22
- ldrsh r1, [r0, r2]
- lsls r1, 16
- movs r3, 0x2E
- ldrsh r2, [r0, r3]
- adds r1, r2
- movs r2, 0xC0
- lsls r2, 8
- adds r1, r2
- lsrs r2, r1, 16
- strh r2, [r0, 0x22]
- strh r1, [r0, 0x2E]
- bx lr
- thumb_func_end sub_800B240
-
- thumb_func_start sub_800B25C
-sub_800B25C: @ 800B25C
- push {r4-r6,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r6, r1, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _0800B2B8
- ldr r2, _0800B2BC
- movs r3, 0xAF
- lsls r3, 3
- adds r1, r2, r3
- ldrb r1, [r1]
- adds r3, 0x1
- adds r2, r3
- ldrb r2, [r2]
- ldr r4, _0800B2C0
- ldr r3, [r4]
- ldr r4, [r4, 0x4]
- str r4, [sp]
- movs r4, 0xAF
- lsls r4, 1
- str r4, [sp, 0x4]
- bl DecompressPicFromTable_2
- ldr r0, _0800B2C4
- bl LoadCompressedObjectPalette
- adds r0, r4, 0
- movs r1, 0x1
- bl gpu_pal_obj_decompress_and_apply
- ldr r0, _0800B2C8
- adds r1, r5, 0
- adds r2, r6, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0800B2B8: .4byte gMonFrontPicTable + 0xAF0
-_0800B2BC: .4byte gMonFrontPicCoords
-_0800B2C0: .4byte gUnknown_081FAF4C
-_0800B2C4: .4byte gMonPaletteTable + 0xAF0
-_0800B2C8: .4byte 0x02024e8c
- thumb_func_end sub_800B25C
-
- thumb_func_start AddBirchSpeechObjects
-AddBirchSpeechObjects: @ 800B2CC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x88
- movs r1, 0x3C
- movs r2, 0x1
- bl AddNewGameBirchObject
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800B3DC
- mov r9, r1
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- movs r3, 0x1C
- add r3, r9
- mov r8, r3
- adds r1, r2, r3
- ldr r7, _0800B3E0
- str r7, [r1]
- add r2, r9
- ldrb r3, [r2, 0x5]
- movs r6, 0xD
- negs r6, r6
- adds r1, r6, 0
- ands r1, r3
- strb r1, [r2, 0x5]
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r3, 0x4
- mov r10, r3
- mov r3, r10
- orrs r1, r3
- strb r1, [r2]
- ldr r1, _0800B3E4
- lsls r5, r4, 2
- adds r5, r4
- lsls r5, 3
- adds r5, r1
- strh r0, [r5, 0x18]
- movs r0, 0x68
- movs r1, 0x48
- bl sub_800B25C
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- mov r4, r8
- adds r1, r2, r4
- str r7, [r1]
- add r2, r9
- ldrb r3, [r2, 0x5]
- adds r1, r6, 0
- ands r1, r3
- strb r1, [r2, 0x5]
- adds r2, 0x3E
- ldrb r1, [r2]
- mov r3, r10
- orrs r1, r3
- strb r1, [r2]
- strh r0, [r5, 0x1A]
- ldr r4, _0800B3E8
- str r4, [sp]
- movs r0, 0
- movs r1, 0x78
- movs r2, 0x3C
- movs r3, 0
- bl sub_80859BC
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- mov r3, r8
- adds r1, r2, r3
- str r7, [r1]
- add r2, r9
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- mov r4, r10
- orrs r1, r4
- strb r1, [r3]
- ldrb r3, [r2, 0x5]
- adds r1, r6, 0
- ands r1, r3
- strb r1, [r2, 0x5]
- strh r0, [r5, 0x1C]
- ldr r0, _0800B3E8
- movs r1, 0x80
- lsls r1, 4
- adds r4, r0, r1
- str r4, [sp]
- movs r0, 0x1
- movs r1, 0x78
- movs r2, 0x3C
- movs r3, 0
- bl sub_80859BC
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- add r8, r2
- mov r3, r8
- str r7, [r3]
- add r2, r9
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- mov r4, r10
- orrs r1, r4
- strb r1, [r3]
- ldrb r1, [r2, 0x5]
- ands r6, r1
- strb r6, [r2, 0x5]
- strh r0, [r5, 0x1E]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B3DC: .4byte 0x02020004
-_0800B3E0: .4byte nullsub_34
-_0800B3E4: .4byte 0x03004b20
-_0800B3E8: .4byte 0x02000000
- thumb_func_end AddBirchSpeechObjects
-
- thumb_func_start sub_800B3EC
-sub_800B3EC: @ 800B3EC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r4, _0800B420
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r3, r0, r4
- ldrh r1, [r3, 0xA]
- movs r5, 0xA
- ldrsh r0, [r3, r5]
- cmp r0, 0
- bne _0800B424
- movs r1, 0x8
- ldrsh r0, [r3, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- movs r0, 0x1
- strh r0, [r1, 0x12]
- adds r0, r2, 0
- bl DestroyTask
- b _0800B44E
- .align 2, 0
-_0800B420: .4byte 0x03004b20
-_0800B424:
- ldrh r2, [r3, 0x10]
- movs r4, 0x10
- ldrsh r0, [r3, r4]
- cmp r0, 0
- beq _0800B434
- subs r0, r2, 0x1
- strh r0, [r3, 0x10]
- b _0800B44E
-_0800B434:
- ldrh r0, [r3, 0xE]
- strh r0, [r3, 0x10]
- subs r1, 0x1
- strh r1, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- ldr r2, _0800B454
- movs r5, 0xC
- ldrsh r0, [r3, r5]
- lsls r0, 8
- adds r1, r0
- strh r1, [r2]
-_0800B44E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B454: .4byte REG_BLDALPHA
- thumb_func_end sub_800B3EC
-
- thumb_func_start sub_800B458
-sub_800B458: @ 800B458
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _0800B4BC
- movs r2, 0x94
- lsls r2, 2
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x10
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0
- strh r0, [r1]
- ldr r0, _0800B4C0
- mov r8, r0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r8
- movs r6, 0
- strh r6, [r0, 0x12]
- ldr r0, _0800B4C4
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- add r1, r8
- strh r4, [r1, 0x8]
- movs r0, 0x10
- strh r0, [r1, 0xA]
- strh r6, [r1, 0xC]
- strh r5, [r1, 0xE]
- strh r5, [r1, 0x10]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B4BC: .4byte REG_BLDCNT
-_0800B4C0: .4byte 0x03004b20
-_0800B4C4: .4byte sub_800B3EC
- thumb_func_end sub_800B458
-
- thumb_func_start sub_800B4C8
-sub_800B4C8: @ 800B4C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r4, _0800B4FC
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r3, r0, r4
- ldrh r1, [r3, 0xA]
- movs r5, 0xA
- ldrsh r0, [r3, r5]
- cmp r0, 0x10
- bne _0800B500
- movs r1, 0x8
- ldrsh r0, [r3, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- movs r0, 0x1
- strh r0, [r1, 0x12]
- adds r0, r2, 0
- bl DestroyTask
- b _0800B52A
- .align 2, 0
-_0800B4FC: .4byte 0x03004b20
-_0800B500:
- ldrh r2, [r3, 0x10]
- movs r4, 0x10
- ldrsh r0, [r3, r4]
- cmp r0, 0
- beq _0800B510
- subs r0, r2, 0x1
- strh r0, [r3, 0x10]
- b _0800B52A
-_0800B510:
- ldrh r0, [r3, 0xE]
- strh r0, [r3, 0x10]
- adds r1, 0x1
- strh r1, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- subs r0, 0x1
- strh r0, [r3, 0xC]
- ldr r2, _0800B530
- movs r5, 0xC
- ldrsh r0, [r3, r5]
- lsls r0, 8
- adds r1, r0
- strh r1, [r2]
-_0800B52A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B530: .4byte REG_BLDALPHA
- thumb_func_end sub_800B4C8
-
- thumb_func_start sub_800B534
-sub_800B534: @ 800B534
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _0800B59C
- movs r2, 0x94
- lsls r2, 2
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0
- strh r0, [r1]
- ldr r0, _0800B5A0
- mov r8, r0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r8
- movs r6, 0
- strh r6, [r0, 0x12]
- ldr r0, _0800B5A4
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- add r1, r8
- strh r4, [r1, 0x8]
- strh r6, [r1, 0xA]
- movs r0, 0x10
- strh r0, [r1, 0xC]
- strh r5, [r1, 0xE]
- strh r5, [r1, 0x10]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B59C: .4byte REG_BLDCNT
-_0800B5A0: .4byte 0x03004b20
-_0800B5A4: .4byte sub_800B4C8
- thumb_func_end sub_800B534
-
- thumb_func_start sub_800B5A8
-sub_800B5A8: @ 800B5A8
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0800B5C8
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- ldrh r3, [r1, 0xC]
- movs r4, 0xC
- ldrsh r0, [r1, r4]
- cmp r0, 0
- beq _0800B5CC
- subs r0, r3, 0x1
- strh r0, [r1, 0xC]
- b _0800B608
- .align 2, 0
-_0800B5C8: .4byte 0x03004b20
-_0800B5CC:
- ldrh r3, [r1, 0xA]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r0, 0x8
- bne _0800B5DE
- adds r0, r2, 0
- bl DestroyTask
- b _0800B608
-_0800B5DE:
- ldrh r2, [r1, 0x10]
- movs r4, 0x10
- ldrsh r0, [r1, r4]
- cmp r0, 0
- beq _0800B5EE
- subs r0, r2, 0x1
- strh r0, [r1, 0x10]
- b _0800B608
-_0800B5EE:
- ldrh r0, [r1, 0xE]
- strh r0, [r1, 0x10]
- adds r0, r3, 0x1
- strh r0, [r1, 0xA]
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- lsls r0, 1
- ldr r1, _0800B610
- adds r0, r1
- movs r1, 0x1
- movs r2, 0x10
- bl LoadPalette
-_0800B608:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B610: .4byte gUnknown_081E795C
- thumb_func_end sub_800B5A8
-
- thumb_func_start sub_800B614
-sub_800B614: @ 800B614
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0800B64C
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0800B650
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r4, [r1, 0x8]
- strh r0, [r1, 0xA]
- movs r0, 0x8
- strh r0, [r1, 0xC]
- strh r5, [r1, 0xE]
- strh r5, [r1, 0x10]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B64C: .4byte sub_800B5A8
-_0800B650: .4byte 0x03004b20
- thumb_func_end sub_800B614
-
- thumb_func_start sub_800B654
-sub_800B654: @ 800B654
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0800B674
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- ldrh r3, [r1, 0xC]
- movs r4, 0xC
- ldrsh r0, [r1, r4]
- cmp r0, 0
- beq _0800B678
- subs r0, r3, 0x1
- strh r0, [r1, 0xC]
- b _0800B6B4
- .align 2, 0
-_0800B674: .4byte 0x03004b20
-_0800B678:
- ldrh r3, [r1, 0xA]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bne _0800B68A
- adds r0, r2, 0
- bl DestroyTask
- b _0800B6B4
-_0800B68A:
- ldrh r2, [r1, 0x10]
- movs r4, 0x10
- ldrsh r0, [r1, r4]
- cmp r0, 0
- beq _0800B69A
- subs r0, r2, 0x1
- strh r0, [r1, 0x10]
- b _0800B6B4
-_0800B69A:
- ldrh r0, [r1, 0xE]
- strh r0, [r1, 0x10]
- subs r0, r3, 0x1
- strh r0, [r1, 0xA]
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- lsls r0, 1
- ldr r1, _0800B6BC
- adds r0, r1
- movs r1, 0x1
- movs r2, 0x10
- bl LoadPalette
-_0800B6B4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B6BC: .4byte gUnknown_081E795C
- thumb_func_end sub_800B654
-
- thumb_func_start sub_800B6C0
-sub_800B6C0: @ 800B6C0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0800B6F8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0800B6FC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- movs r0, 0x8
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- strh r5, [r1, 0xE]
- strh r5, [r1, 0x10]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B6F8: .4byte sub_800B654
-_0800B6FC: .4byte 0x03004b20
- thumb_func_end sub_800B6C0
-
- thumb_func_start CreateGenderMenu
-CreateGenderMenu: @ 800B700
- push {r4,r5,lr}
- sub sp, 0x8
- adds r2, r0, 0
- adds r3, r1, 0
- lsls r2, 24
- lsls r3, 24
- lsrs r5, r2, 24
- movs r0, 0xC0
- lsls r0, 19
- adds r2, r0
- lsrs r2, 24
- lsrs r4, r3, 24
- movs r0, 0xA0
- lsls r0, 19
- adds r3, r0
- lsrs r3, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl DrawDefaultWindow
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- adds r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- ldr r3, _0800B75C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x2
- bl PrintStringArray
- movs r0, 0
- str r0, [sp]
- movs r0, 0x5
- str r0, [sp, 0x4]
- movs r0, 0
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x2
- bl InitMenu
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B75C: .4byte gUnknown_081E79B0
- thumb_func_end CreateGenderMenu
-
- thumb_func_start GenderMenuProcessInput
-GenderMenuProcessInput: @ 800B760
- push {lr}
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GenderMenuProcessInput
-
- thumb_func_start CreateNameMenu
-CreateNameMenu: @ 800B770
- push {r4,r5,lr}
- sub sp, 0x8
- adds r2, r0, 0
- adds r3, r1, 0
- lsls r2, 24
- lsls r3, 24
- lsrs r5, r2, 24
- movs r0, 0xA0
- lsls r0, 20
- adds r2, r0
- lsrs r2, 24
- lsrs r4, r3, 24
- movs r0, 0xB0
- lsls r0, 20
- adds r3, r0
- lsrs r3, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl DrawDefaultWindow
- ldr r0, _0800B7B8
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _0800B7C0
- adds r5, 0x1
- lsls r0, r5, 24
- lsrs r0, 24
- adds r4, 0x1
- lsls r1, r4, 24
- lsrs r1, 24
- ldr r3, _0800B7BC
- movs r2, 0x5
- bl PrintStringArray
- b _0800B7D4
- .align 2, 0
-_0800B7B8: .4byte gSaveBlock2
-_0800B7BC: .4byte gUnknown_081E79C0
-_0800B7C0:
- adds r5, 0x1
- lsls r0, r5, 24
- lsrs r0, 24
- adds r4, 0x1
- lsls r1, r4, 24
- lsrs r1, 24
- ldr r3, _0800B7F4
- movs r2, 0x5
- bl PrintStringArray
-_0800B7D4:
- lsls r1, r5, 24
- lsrs r1, 24
- lsls r2, r4, 24
- lsrs r2, 24
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r3, 0x5
- bl InitMenu
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B7F4: .4byte gUnknown_081E79E8
- thumb_func_end CreateNameMenu
-
- thumb_func_start NameMenuProcessInput
-NameMenuProcessInput: @ 800B7F8
- push {lr}
- bl ProcessMenuInput
- lsls r0, 24
- asrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end NameMenuProcessInput
-
- thumb_func_start set_default_player_name
-set_default_player_name: @ 800B808
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0800B81C
- ldrb r1, [r0, 0x8]
- adds r5, r0, 0
- cmp r1, 0
- bne _0800B824
- ldr r1, _0800B820
- b _0800B826
- .align 2, 0
-_0800B81C: .4byte gSaveBlock2
-_0800B820: .4byte gUnknown_081E79C0
-_0800B824:
- ldr r1, _0800B850
-_0800B826:
- lsls r0, r2, 3
- adds r0, r1
- ldr r3, [r0]
- movs r2, 0
- ldr r4, _0800B854
-_0800B830:
- adds r1, r2, r4
- adds r0, r3, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x6
- bls _0800B830
- adds r1, r2, r5
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B850: .4byte gUnknown_081E79E8
-_0800B854: .4byte gSaveBlock2
- thumb_func_end set_default_player_name
-
thumb_func_start sub_800B858
sub_800B858: @ 800B858
push {lr}
@@ -4312,7 +76,7 @@ _0800B8A0:
ands r0, r1
cmp r0, 0
beq _0800B90E
- bl zero_enemy_party_data
+ bl ZeroEnemyPartyMons
ldr r4, _0800B944
movs r1, 0x8F
lsls r1, 1
@@ -4323,12 +87,12 @@ _0800B8A0:
adds r0, r4, 0
movs r2, 0x2
movs r3, 0x20
- bl create_pokemon_set_level
+ bl CreateMon
str r5, [sp, 0x10]
adds r0, r4, 0
movs r1, 0xC
add r2, sp, 0x10
- bl pokemon_setattr
+ bl SetMonData
_0800B90E:
ldr r0, _0800B948
str r5, [r0]
@@ -4913,24 +677,24 @@ _0800BDAE:
adds r4, r7, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0800BE74
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0800BE74
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
beq _0800BE74
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0800BE74
ldr r0, _0800BDF0
@@ -4951,7 +715,7 @@ _0800BDF4:
adds r4, r7, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0800BE74
adds r0, r4, 0
@@ -4964,25 +728,25 @@ _0800BE1C:
adds r4, r7, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0800BE74
adds r0, r4, 0
movs r1, 0x41
_0800BE30:
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0800BE74
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
beq _0800BE74
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0800BE74
ldr r1, _0800BE70
@@ -8364,16 +4128,16 @@ _0800D748: .4byte 0x0000bf40
sub_800D74C: @ 800D74C
push {r4,lr}
movs r0, 0x12
- bl sub_8064EF4
+ bl SetTextWindowBaseTileNum
ldr r4, _0800D79C
adds r0, r4, 0
movs r1, 0x1
- bl sub_8064F38
+ bl LoadTextWindowGraphics_OverridePalSlot
movs r0, 0x22
- bl sub_8064EF4
+ bl SetTextWindowBaseTileNum
adds r0, r4, 0
movs r1, 0x1
- bl sub_8064F38
+ bl LoadTextWindowGraphics_OverridePalSlot
ldr r3, _0800D7A0
adds r0, r3, 0
adds r0, 0xB8
@@ -8430,7 +4194,7 @@ _0800D7E4: .4byte gBattleTerrainTiles_Building
_0800D7E8: .4byte 0x06008000
_0800D7EC: .4byte gBattleTerrainTilemap_Building
_0800D7F0: .4byte 0x0600d000
-_0800D7F4: .4byte gUnknown_08E62AC0
+_0800D7F4: .4byte gBattleTerrainPalette_BattleTower
_0800D7F8:
movs r0, 0x80
lsls r0, 5
@@ -8455,7 +4219,7 @@ _0800D824: .4byte gBattleTerrainTiles_Cave
_0800D828: .4byte 0x06008000
_0800D82C: .4byte gBattleTerrainTilemap_Cave
_0800D830: .4byte 0x0600d000
-_0800D834: .4byte gUnknown_08E636E0
+_0800D834: .4byte gBattleTerrainPalette_Groudon
_0800D838:
ldr r0, _0800D84C
ldr r1, _0800D850
@@ -8470,7 +4234,7 @@ _0800D84C: .4byte gBattleTerrainTiles_Water
_0800D850: .4byte 0x06008000
_0800D854: .4byte gBattleTerrainTilemap_Water
_0800D858: .4byte 0x0600d000
-_0800D85C: .4byte gUnknown_08E636A4
+_0800D85C: .4byte gBattleTerrainPalette_Kyogre
_0800D860:
movs r0, 0x8
ands r0, r1
@@ -8501,7 +4265,7 @@ _0800D898: .4byte gBattleTerrainTiles_Building
_0800D89C: .4byte 0x06008000
_0800D8A0: .4byte gBattleTerrainTilemap_Building
_0800D8A4: .4byte 0x0600d000
-_0800D8A8: .4byte gUnknown_08E63774
+_0800D8A8: .4byte gBattleTerrainPalette_BuildingLeader
_0800D8AC:
cmp r0, 0x20
bne _0800D8D8
@@ -8514,11 +4278,11 @@ _0800D8AC:
ldr r0, _0800D8D4
b _0800DA66
.align 2, 0
-_0800D8C4: .4byte gUnknown_08E62DAC
+_0800D8C4: .4byte gBattleTerrainTiles_Stadium
_0800D8C8: .4byte 0x06008000
-_0800D8CC: .4byte gUnknown_08E633B4
+_0800D8CC: .4byte gBattleTerrainTilemap_Stadium
_0800D8D0: .4byte 0x0600d000
-_0800D8D4: .4byte gUnknown_08E639A8
+_0800D8D4: .4byte gBattleTerrainPalette_StadiumSteven
_0800D8D8:
bl sav1_map_get_battletype
lsls r0, 24
@@ -8592,7 +4356,7 @@ _0800D978: .4byte gBattleTerrainTiles_Building
_0800D97C: .4byte 0x06008000
_0800D980: .4byte gBattleTerrainTilemap_Building
_0800D984: .4byte 0x0600d000
-_0800D988: .4byte gUnknown_08E63738
+_0800D988: .4byte gBattleTerrainPalette_BuildingGym
_0800D98C:
ldr r0, _0800D9A0
ldr r1, _0800D9A4
@@ -8603,11 +4367,11 @@ _0800D98C:
ldr r0, _0800D9B0
b _0800DA66
.align 2, 0
-_0800D9A0: .4byte gUnknown_08E62DAC
+_0800D9A0: .4byte gBattleTerrainTiles_Stadium
_0800D9A4: .4byte 0x06008000
-_0800D9A8: .4byte gUnknown_08E633B4
+_0800D9A8: .4byte gBattleTerrainTilemap_Stadium
_0800D9AC: .4byte 0x0600d000
-_0800D9B0: .4byte gUnknown_08E63810
+_0800D9B0: .4byte gBattleTerrainPalette_StadiumMagma
_0800D9B4:
ldr r0, _0800D9C8
ldr r1, _0800D9CC
@@ -8618,11 +4382,11 @@ _0800D9B4:
ldr r0, _0800D9D8
b _0800DA66
.align 2, 0
-_0800D9C8: .4byte gUnknown_08E62DAC
+_0800D9C8: .4byte gBattleTerrainTiles_Stadium
_0800D9CC: .4byte 0x06008000
-_0800D9D0: .4byte gUnknown_08E633B4
+_0800D9D0: .4byte gBattleTerrainTilemap_Stadium
_0800D9D4: .4byte 0x0600d000
-_0800D9D8: .4byte gUnknown_08E637B0
+_0800D9D8: .4byte gBattleTerrainPalette_StadiumAqua
_0800D9DC:
ldr r0, _0800D9F0
ldr r1, _0800D9F4
@@ -8633,11 +4397,11 @@ _0800D9DC:
ldr r0, _0800DA00
b _0800DA66
.align 2, 0
-_0800D9F0: .4byte gUnknown_08E62DAC
+_0800D9F0: .4byte gBattleTerrainTiles_Stadium
_0800D9F4: .4byte 0x06008000
-_0800D9F8: .4byte gUnknown_08E633B4
+_0800D9F8: .4byte gBattleTerrainTilemap_Stadium
_0800D9FC: .4byte 0x0600d000
-_0800DA00: .4byte gUnknown_08E6387C
+_0800DA00: .4byte gBattleTerrainPalette_StadiumSidney
_0800DA04:
ldr r0, _0800DA18
ldr r1, _0800DA1C
@@ -8648,11 +4412,11 @@ _0800DA04:
ldr r0, _0800DA28
b _0800DA66
.align 2, 0
-_0800DA18: .4byte gUnknown_08E62DAC
+_0800DA18: .4byte gBattleTerrainTiles_Stadium
_0800DA1C: .4byte 0x06008000
-_0800DA20: .4byte gUnknown_08E633B4
+_0800DA20: .4byte gBattleTerrainTilemap_Stadium
_0800DA24: .4byte 0x0600d000
-_0800DA28: .4byte gUnknown_08E638CC
+_0800DA28: .4byte gBattleTerrainPalette_StadiumPhoebe
_0800DA2C:
ldr r0, _0800DA40
ldr r1, _0800DA44
@@ -8663,11 +4427,11 @@ _0800DA2C:
ldr r0, _0800DA50
b _0800DA66
.align 2, 0
-_0800DA40: .4byte gUnknown_08E62DAC
+_0800DA40: .4byte gBattleTerrainTiles_Stadium
_0800DA44: .4byte 0x06008000
-_0800DA48: .4byte gUnknown_08E633B4
+_0800DA48: .4byte gBattleTerrainTilemap_Stadium
_0800DA4C: .4byte 0x0600d000
-_0800DA50: .4byte gUnknown_08E63914
+_0800DA50: .4byte gBattleTerrainPalette_StadiumGlacia
_0800DA54:
ldr r0, _0800DA70
ldr r1, _0800DA74
@@ -8682,11 +4446,11 @@ _0800DA66:
bl LoadCompressedPalette
b _0800DA9E
.align 2, 0
-_0800DA70: .4byte gUnknown_08E62DAC
+_0800DA70: .4byte gBattleTerrainTiles_Stadium
_0800DA74: .4byte 0x06008000
-_0800DA78: .4byte gUnknown_08E633B4
+_0800DA78: .4byte gBattleTerrainTilemap_Stadium
_0800DA7C: .4byte 0x0600d000
-_0800DA80: .4byte gUnknown_08E63958
+_0800DA80: .4byte gBattleTerrainPalette_StadiumDrake
_0800DA84:
ldr r0, _0800DAA4
ldr r1, _0800DAA8
@@ -8707,7 +4471,7 @@ _0800DAA4: .4byte gBattleTerrainTiles_Building
_0800DAA8: .4byte 0x06008000
_0800DAAC: .4byte gBattleTerrainTilemap_Building
_0800DAB0: .4byte 0x0600d000
-_0800DAB4: .4byte gUnknown_08E62AC0
+_0800DAB4: .4byte gBattleTerrainPalette_BattleTower
thumb_func_end sub_800D7B8
thumb_func_start sub_800DAB8
@@ -9229,7 +4993,7 @@ _0800DE88:
_0800DED0: .4byte 0x020239f8
_0800DED4: .4byte 0x03002970
_0800DED8: .4byte gUnknown_081F9680
-_0800DEDC: .4byte gUnknown_081F9688
+_0800DEDC: .4byte gUnknown_081F9680 + 0x8
_0800DEE0:
ldr r0, _0800DF84
ldr r5, _0800DF88
@@ -9673,14 +5437,14 @@ sub_800E23C: @ 800E23C
b _0800E3FC
.align 2, 0
_0800E29C: .4byte 0x020239f8
-_0800E2A0: .4byte gUnknown_08E5DA10
+_0800E2A0: .4byte gVersusFrameGfx
_0800E2A4: .4byte 0x06004000
-_0800E2A8: .4byte gUnknown_08E5DAF8
+_0800E2A8: .4byte gVersusFrameTilemap
_0800E2AC: .4byte 0x0600e000
_0800E2B0: .4byte 0x0600f000
_0800E2B4: .4byte gUnknown_08E5DC2C
_0800E2B8: .4byte 0x06010000
-_0800E2BC: .4byte gUnknown_08E5DC04
+_0800E2BC: .4byte gVersusFramePal
_0800E2C0: .4byte REG_BG1CNT
_0800E2C4: .4byte 0x00005c04
_0800E2C8: .4byte REG_WININ
@@ -9926,7 +5690,7 @@ _0800E4C0:
.align 2, 0
_0800E4E4: .4byte gTrainers
_0800E4E8: .4byte 0x0202ff5e
-_0800E4EC: .4byte gUnknown_08E62DAC
+_0800E4EC: .4byte gBattleTerrainTiles_Stadium
_0800E4F0:
bl sav1_map_get_battletype
lsls r0, 24
@@ -9970,32 +5734,32 @@ _0800E54C:
ldr r0, _0800E550
b _0800E57E
.align 2, 0
-_0800E550: .4byte gUnknown_08E62DAC
+_0800E550: .4byte gBattleTerrainTiles_Stadium
_0800E554:
ldr r0, _0800E558
b _0800E57E
.align 2, 0
-_0800E558: .4byte gUnknown_08E62DAC
+_0800E558: .4byte gBattleTerrainTiles_Stadium
_0800E55C:
ldr r0, _0800E560
b _0800E57E
.align 2, 0
-_0800E560: .4byte gUnknown_08E62DAC
+_0800E560: .4byte gBattleTerrainTiles_Stadium
_0800E564:
ldr r0, _0800E568
b _0800E57E
.align 2, 0
-_0800E568: .4byte gUnknown_08E62DAC
+_0800E568: .4byte gBattleTerrainTiles_Stadium
_0800E56C:
ldr r0, _0800E570
b _0800E57E
.align 2, 0
-_0800E570: .4byte gUnknown_08E62DAC
+_0800E570: .4byte gBattleTerrainTiles_Stadium
_0800E574:
ldr r0, _0800E578
b _0800E57E
.align 2, 0
-_0800E578: .4byte gUnknown_08E62DAC
+_0800E578: .4byte gBattleTerrainTiles_Stadium
_0800E57C:
ldr r0, _0800E588
_0800E57E:
@@ -10057,7 +5821,7 @@ _0800E5CC:
.align 2, 0
_0800E5F0: .4byte gTrainers
_0800E5F4: .4byte 0x0202ff5e
-_0800E5F8: .4byte gUnknown_08E633B4
+_0800E5F8: .4byte gBattleTerrainTilemap_Stadium
_0800E5FC:
bl sav1_map_get_battletype
lsls r0, 24
@@ -10102,32 +5866,32 @@ _0800E658:
ldr r0, _0800E65C
b _0800E68A
.align 2, 0
-_0800E65C: .4byte gUnknown_08E633B4
+_0800E65C: .4byte gBattleTerrainTilemap_Stadium
_0800E660:
ldr r0, _0800E664
b _0800E68A
.align 2, 0
-_0800E664: .4byte gUnknown_08E633B4
+_0800E664: .4byte gBattleTerrainTilemap_Stadium
_0800E668:
ldr r0, _0800E66C
b _0800E68A
.align 2, 0
-_0800E66C: .4byte gUnknown_08E633B4
+_0800E66C: .4byte gBattleTerrainTilemap_Stadium
_0800E670:
ldr r0, _0800E674
b _0800E68A
.align 2, 0
-_0800E674: .4byte gUnknown_08E633B4
+_0800E674: .4byte gBattleTerrainTilemap_Stadium
_0800E678:
ldr r0, _0800E67C
b _0800E68A
.align 2, 0
-_0800E67C: .4byte gUnknown_08E633B4
+_0800E67C: .4byte gBattleTerrainTilemap_Stadium
_0800E680:
ldr r0, _0800E684
b _0800E68A
.align 2, 0
-_0800E684: .4byte gUnknown_08E633B4
+_0800E684: .4byte gBattleTerrainTilemap_Stadium
_0800E688:
ldr r0, _0800E694
_0800E68A:
@@ -10161,12 +5925,12 @@ _0800E6AA:
_0800E6C0: .4byte 0x020239f8
_0800E6C4: .4byte 0x00000902
_0800E6C8: .4byte gGameVersion
-_0800E6CC: .4byte gUnknown_08E636E0
+_0800E6CC: .4byte gBattleTerrainPalette_Groudon
_0800E6D0:
ldr r0, _0800E6D4
b _0800E7A6
.align 2, 0
-_0800E6D4: .4byte gUnknown_08E636A4
+_0800E6D4: .4byte gBattleTerrainPalette_Kyogre
_0800E6D8:
movs r0, 0x8
ands r0, r1
@@ -10187,14 +5951,14 @@ _0800E6D8:
.align 2, 0
_0800E6F8: .4byte gTrainers
_0800E6FC: .4byte 0x0202ff5e
-_0800E700: .4byte gUnknown_08E63774
+_0800E700: .4byte gBattleTerrainPalette_BuildingLeader
_0800E704:
cmp r0, 0x20
bne _0800E710
ldr r0, _0800E70C
b _0800E7A6
.align 2, 0
-_0800E70C: .4byte gUnknown_08E639A8
+_0800E70C: .4byte gBattleTerrainPalette_StadiumSteven
_0800E710:
bl sav1_map_get_battletype
lsls r0, 24
@@ -10237,37 +6001,37 @@ _0800E76C:
ldr r0, _0800E770
b _0800E7A6
.align 2, 0
-_0800E770: .4byte gUnknown_08E63738
+_0800E770: .4byte gBattleTerrainPalette_BuildingGym
_0800E774:
ldr r0, _0800E778
b _0800E7A6
.align 2, 0
-_0800E778: .4byte gUnknown_08E63810
+_0800E778: .4byte gBattleTerrainPalette_StadiumMagma
_0800E77C:
ldr r0, _0800E780
b _0800E7A6
.align 2, 0
-_0800E780: .4byte gUnknown_08E637B0
+_0800E780: .4byte gBattleTerrainPalette_StadiumAqua
_0800E784:
ldr r0, _0800E788
b _0800E7A6
.align 2, 0
-_0800E788: .4byte gUnknown_08E6387C
+_0800E788: .4byte gBattleTerrainPalette_StadiumSidney
_0800E78C:
ldr r0, _0800E790
b _0800E7A6
.align 2, 0
-_0800E790: .4byte gUnknown_08E638CC
+_0800E790: .4byte gBattleTerrainPalette_StadiumPhoebe
_0800E794:
ldr r0, _0800E798
b _0800E7A6
.align 2, 0
-_0800E798: .4byte gUnknown_08E63914
+_0800E798: .4byte gBattleTerrainPalette_StadiumGlacia
_0800E79C:
ldr r0, _0800E7A0
b _0800E7A6
.align 2, 0
-_0800E7A0: .4byte gUnknown_08E63958
+_0800E7A0: .4byte gBattleTerrainPalette_StadiumDrake
_0800E7A4:
ldr r0, _0800E7B0
_0800E7A6:
@@ -10276,7 +6040,7 @@ _0800E7A6:
bl LoadCompressedPalette
b _0800E7BC
.align 2, 0
-_0800E7B0: .4byte gUnknown_08E62AC0
+_0800E7B0: .4byte gBattleTerrainPalette_BattleTower
_0800E7B4:
bl sub_800D74C
b _0800E7BC
@@ -10538,17 +6302,17 @@ _0800EA02:
adds r4, r0
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r7, r0, 16
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
cmp r5, 0
beq _0800EA7E
@@ -10834,20 +6598,20 @@ shedinja_something: @ 800EC44
strb r0, [r5]
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
ldr r1, _0800EC94
cmp r0, r1
bne _0800EC8C
adds r0, r4, 0
movs r1, 0x3
- bl PokemonGetField
+ bl GetMonData
ldrb r1, [r5]
cmp r0, r1
beq _0800EC8C
adds r0, r4, 0
movs r1, 0x2
mov r2, sp
- bl PokemonGetField
+ bl GetMonData
ldr r1, _0800EC98
mov r0, sp
bl StringCompareWithoutExtCtrlCodes
@@ -10856,7 +6620,7 @@ shedinja_something: @ 800EC44
adds r0, r4, 0
movs r1, 0x3
adds r2, r5, 0
- bl pokemon_setattr
+ bl SetMonData
_0800EC8C:
add sp, 0x10
pop {r4,r5}
@@ -11301,7 +7065,7 @@ _0800F03E:
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
movs r1, 0x4
negs r1, r1
add r1, r10
@@ -11310,43 +7074,43 @@ _0800F03E:
strh r0, [r5]
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
strh r0, [r5, 0x2]
adds r0, r4, 0
movs r1, 0x2
adds r2, r7, 0
- bl PokemonGetField
+ bl GetMonData
adds r0, r4, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
strb r0, [r5, 0xF]
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
strh r0, [r5, 0x10]
adds r0, r4, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
strh r0, [r5, 0x12]
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
mov r1, r10
adds r1, 0x10
adds r6, r1
str r0, [r6]
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [r7, 0x14]
adds r0, r4, 0
- bl pokemon_get_gender
+ bl GetMonGender
strb r0, [r5, 0x1C]
adds r0, r7, 0
bl SkipExtCtrlCodes
adds r0, r4, 0
movs r1, 0x3
- bl PokemonGetField
+ bl GetMonData
strb r0, [r5, 0x1D]
lsls r0, 24
lsrs r0, 24
@@ -11848,8 +7612,8 @@ _0800F4C4:
subs r4, 0x1
cmp r4, 0
bge _0800F464
- bl zero_player_party_data
- bl zero_enemy_party_data
+ bl ZeroPlayerPartyMons
+ bl ZeroEnemyPartyMons
ldr r1, _0800F4FC
ldrb r0, [r1]
adds r0, 0x1
@@ -12411,7 +8175,7 @@ _0800F90C:
beq _0800F920
b _0800FCA4
_0800F920:
- bl zero_enemy_party_data
+ bl ZeroEnemyPartyMons
movs r2, 0
str r2, [sp, 0x18]
ldr r2, _0800F944
@@ -12569,7 +8333,7 @@ _0800FA18:
movs r3, 0
str r3, [sp, 0xC]
adds r3, r6, 0
- bl create_pokemon_set_level
+ bl CreateMon
b _0800FC74
.align 2, 0
_0800FA58: .4byte gSpeciesNames
@@ -12639,7 +8403,7 @@ _0800FA9E:
str r0, [sp, 0xC]
adds r0, r5, 0
adds r3, r6, 0
- bl create_pokemon_set_level
+ bl CreateMon
movs r6, 0
mov r0, r8
adds r0, 0x6
@@ -12649,7 +8413,7 @@ _0800FAE8:
adds r1, 0xD
adds r0, r5, 0
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
adds r1, r6, 0
adds r1, 0x11
ldrh r0, [r4]
@@ -12659,7 +8423,7 @@ _0800FAE8:
ldr r0, _0800FB18
adds r2, r0
adds r0, r5, 0
- bl pokemon_setattr
+ bl SetMonData
adds r4, 0x2
adds r6, 0x1
cmp r6, 0x3
@@ -12733,12 +8497,12 @@ _0800FB5E:
str r0, [sp, 0xC]
adds r0, r4, 0
adds r3, r6, 0
- bl create_pokemon_set_level
+ bl CreateMon
adds r5, 0x6
adds r0, r4, 0
movs r1, 0xC
adds r2, r5, 0
- bl pokemon_setattr
+ bl SetMonData
b _0800FC74
.align 2, 0
_0800FBAC: .4byte gSpeciesNames
@@ -12808,12 +8572,12 @@ _0800FBF2:
str r0, [sp, 0xC]
adds r0, r4, 0
adds r3, r6, 0
- bl create_pokemon_set_level
+ bl CreateMon
adds r5, 0x6
adds r0, r4, 0
movs r1, 0xC
adds r2, r5, 0
- bl pokemon_setattr
+ bl SetMonData
movs r6, 0
adds r5, r4, 0
mov r0, r8
@@ -12824,7 +8588,7 @@ _0800FC4A:
adds r1, 0xD
adds r0, r5, 0
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
adds r1, r6, 0
adds r1, 0x11
ldrh r0, [r4]
@@ -12834,7 +8598,7 @@ _0800FC4A:
ldr r0, _0800FCC8
adds r2, r0
adds r0, r5, 0
- bl pokemon_setattr
+ bl SetMonData
adds r4, 0x2
adds r6, 0x1
cmp r6, 0x3
@@ -13150,17 +8914,17 @@ _0800FED0:
adds r4, r0, r4
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r6, r0, 16
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
cmp r5, 0
beq _0800FF40
@@ -13229,17 +8993,17 @@ _0800FF6A:
adds r4, r2, r4
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r6, r0, 16
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
cmp r5, 0
beq _0800FFDA
@@ -13755,7 +9519,7 @@ _080103AC:
ldr r7, _08010418
adds r0, r7
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
cmp r4, SPECIES_UNOWN
bne _08010430
ldrh r0, [r5]
@@ -13764,7 +9528,7 @@ _080103AC:
adds r0, r1, 0
adds r0, r7
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
movs r0, 0xC0
lsls r0, 18
@@ -14583,7 +10347,7 @@ _08010994:
strb r5, [r0]
ldr r0, _08010B60
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
ldr r2, _08010B64
lsls r1, r0, 3
subs r1, r0
@@ -16085,12 +11849,12 @@ _0801162A:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08011650
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -16108,11 +11872,11 @@ _08011664: .4byte 0x0000ffff
_08011668:
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
strh r0, [r5]
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
_0801167A:
str r0, [r6]
adds r6, 0x8
@@ -16141,12 +11905,12 @@ _080116A6:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080116CC
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -16163,11 +11927,11 @@ _080116DC: .4byte 0x0000ffff
_080116E0:
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
strh r0, [r5]
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
_080116F2:
str r0, [r6]
adds r6, 0x8
@@ -16204,12 +11968,12 @@ _08011732:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08011758
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -16225,11 +11989,11 @@ _08011764: .4byte 0x0000ffff
_08011768:
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
strh r0, [r5]
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
_0801177A:
str r0, [r6]
adds r6, 0x8
@@ -29033,17 +24797,17 @@ _08018084:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080180B4
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080180B4
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -29124,17 +24888,17 @@ _0801813A:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0801818A
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0801818A
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -29472,23 +25236,23 @@ _080183F4:
adds r5, r1, r0
adds r0, r7, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
str r0, [sp, 0x8]
adds r0, r7, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x10]
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
str r0, [sp, 0xC]
adds r0, r5, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x14]
ldr r0, _0801844C
ldrh r1, [r0]
@@ -31261,11 +27025,11 @@ _08019384:
_08019396:
ldr r0, [sp, 0x8]
ldr r1, [sp, 0x10]
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
adds r4, r0, 0
ldr r0, [sp, 0xC]
ldr r1, [sp, 0x14]
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -31287,7 +27051,7 @@ _080193B4:
_080193CE:
ldr r0, [sp, 0x8]
ldr r1, [sp, 0x10]
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
@@ -31296,7 +27060,7 @@ _080193CE:
_080193E2:
ldr r0, [sp, 0xC]
ldr r1, [sp, 0x14]
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
@@ -33109,17 +28873,17 @@ _0801A33A:
mov r1, r10
adds r1, 0xD
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r6, r0, 16
mov r1, r10
adds r1, 0x11
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
strb r0, [r5]
adds r0, r4, 0
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r1, r0, 24
cmp r6, 0
@@ -37242,7 +33006,7 @@ _0801C544:
_0801C56C: .4byte 0x02024c07
_0801C570: .4byte gBattleMoves
_0801C574: .4byte 0x02024db8
-_0801C578: .4byte gUnknown_081FAB1C
+_0801C578: .4byte gAccuracyStageRatios
_0801C57C: .4byte 0x02024a80
_0801C580: .4byte 0x02024c08
_0801C584: .4byte 0x02024df0
@@ -37782,7 +33546,7 @@ _0801C960:
_0801C9BC: .4byte 0x02024c08
_0801C9C0: .4byte 0x02024c98
_0801C9C4: .4byte 0x020239f8
-_0801C9C8: .4byte gUnknown_081FAB50
+_0801C9C8: .4byte gCriticalHitChance
_0801C9CC: .4byte 0x02024c0d
_0801C9D0:
ldr r1, _0801C9E4
@@ -44621,12 +40385,12 @@ _08020104:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0802016A
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0802016A
ldr r0, _08020158
@@ -44641,7 +40405,7 @@ _08020104:
_08020138:
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
cmp r0, 0xAF
@@ -44760,7 +40524,7 @@ _08020220:
ldr r1, _08020260
adds r0, r1
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
cmp r0, 0xAF
@@ -44813,7 +40577,7 @@ _080202A0:
ldr r1, _080202D8
adds r0, r1
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x64
bne _080202E8
ldr r2, _080202DC
@@ -44868,7 +40632,7 @@ _08020316:
ldr r1, _08020364
adds r0, r1
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _08020332
b _0802051E
@@ -45147,21 +40911,21 @@ _08020566:
ldr r5, _08020634
adds r0, r5
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08020612
ldrb r0, [r7]
muls r0, r6
adds r0, r5
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x64
beq _08020612
ldrb r0, [r7]
muls r0, r6
adds r0, r5
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
ldr r1, _08020638
adds r4, r1
strh r0, [r4]
@@ -45169,31 +40933,31 @@ _08020566:
muls r0, r6
adds r0, r5
movs r1, 0x3B
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x2]
ldrb r0, [r7]
muls r0, r6
adds r0, r5
movs r1, 0x3C
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x4]
ldrb r0, [r7]
muls r0, r6
adds r0, r5
movs r1, 0x3D
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x6]
ldrb r0, [r7]
muls r0, r6
adds r0, r5
movs r1, 0x3E
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x8]
ldrb r0, [r7]
muls r0, r6
adds r0, r5
movs r1, 0x3F
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0xA]
ldr r4, _0802063C
mov r2, r8
@@ -45309,7 +41073,7 @@ _080206A8:
ldr r7, _080208CC
adds r0, r7
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
strb r0, [r4, 0x4]
movs r0, 0x1
negs r0, r0
@@ -45360,7 +41124,7 @@ _080206A8:
muls r0, r1
adds r0, r7
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r1, r4, 0
adds r1, 0x2A
strb r0, [r1]
@@ -45370,7 +41134,7 @@ _080206A8:
adds r0, r1, 0
adds r0, r7
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x28]
ldrb r0, [r6]
mov r2, r8
@@ -45378,7 +41142,7 @@ _080206A8:
adds r0, r2, 0
adds r0, r7
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x2C]
ldrb r0, [r6]
mov r3, r8
@@ -45386,7 +41150,7 @@ _080206A8:
adds r0, r3, 0
adds r0, r7
movs r1, 0x3B
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x2]
ldrb r0, [r6]
mov r1, r8
@@ -45394,7 +41158,7 @@ _080206A8:
adds r0, r1, 0
adds r0, r7
movs r1, 0x3C
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x4]
ldrb r0, [r6]
mov r2, r8
@@ -45402,7 +41166,7 @@ _080206A8:
adds r0, r2, 0
adds r0, r7
movs r1, 0x3D
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x6]
ldrb r0, [r6]
mov r3, r8
@@ -45410,7 +41174,7 @@ _080206A8:
adds r0, r3, 0
adds r0, r7
movs r1, 0x3D
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x6]
ldrb r0, [r6]
mov r1, r8
@@ -45418,7 +41182,7 @@ _080206A8:
adds r0, r1, 0
adds r0, r7
movs r1, 0x3E
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0x8]
ldrb r0, [r6]
mov r2, r8
@@ -45426,7 +41190,7 @@ _080206A8:
adds r0, r2, 0
adds r0, r7
movs r1, 0x3F
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4, 0xA]
_080207EC:
ldr r0, _080208C4
@@ -45456,7 +41220,7 @@ _080207EC:
ldr r4, _080208CC
adds r0, r4
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r1, r6, 0
adds r1, 0xDA
strb r0, [r1]
@@ -45464,14 +41228,14 @@ _080207EC:
muls r0, r5
adds r0, r4
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
mov r1, r8
strh r0, [r1]
ldrb r0, [r7]
muls r0, r5
adds r0, r4
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r1, r6, 0
adds r1, 0xDC
strh r0, [r1]
@@ -45479,7 +41243,7 @@ _080207EC:
muls r0, r5
adds r0, r4
movs r1, 0x3B
- bl PokemonGetField
+ bl GetMonData
adds r1, r6, 0
adds r1, 0xB2
strh r0, [r1]
@@ -45487,7 +41251,7 @@ _080207EC:
muls r0, r5
adds r0, r4
movs r1, 0x3C
- bl PokemonGetField
+ bl GetMonData
adds r1, r6, 0
adds r1, 0xB4
strh r0, [r1]
@@ -45495,7 +41259,7 @@ _080207EC:
muls r0, r5
adds r0, r4
movs r1, 0x3D
- bl PokemonGetField
+ bl GetMonData
movs r2, 0xB6
adds r2, r6
mov r8, r2
@@ -45504,14 +41268,14 @@ _080207EC:
muls r0, r5
adds r0, r4
movs r1, 0x3D
- bl PokemonGetField
+ bl GetMonData
mov r3, r8
strh r0, [r3]
ldrb r0, [r7]
muls r0, r5
adds r0, r4
movs r1, 0x3E
- bl PokemonGetField
+ bl GetMonData
adds r1, r6, 0
adds r1, 0xB8
strh r0, [r1]
@@ -45650,17 +41414,17 @@ _080209C8:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080209F8
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080209F8
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r0, r6, r0
lsls r0, 16
lsrs r6, r0, 16
@@ -45686,17 +41450,17 @@ _08020A10:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08020A40
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _08020A40
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r0, r6, r0
lsls r0, 16
lsrs r6, r0, 16
@@ -47254,8 +43018,8 @@ _0802157A:
bx r0
thumb_func_end sub_80214B4
- thumb_func_start sub_8021580
-sub_8021580: @ 8021580
+ thumb_func_start atk47
+atk47: @ 8021580
push {r4,lr}
movs r3, 0
ldr r0, _080215A0
@@ -47319,7 +43083,7 @@ _080215EC: .4byte 0x0001601e
_080215F0: .4byte 0x000160a4
_080215F4: .4byte 0x000160a5
_080215F8: .4byte 0x02024c10
- thumb_func_end sub_8021580
+ thumb_func_end atk47
thumb_func_start atk48_playstatchangeanimation
atk48_playstatchangeanimation: @ 80215FC
@@ -49646,17 +45410,17 @@ _080228EE:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08022928
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _08022928
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08022928
ldr r0, _08022938
@@ -49741,17 +45505,17 @@ _080229B0:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080229F2
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080229F2
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080229F2
ldr r1, _08022A1C
@@ -51718,7 +47482,7 @@ _080239C8:
bne _08023A08
adds r0, r2, r3
adds r1, r5, 0
- bl sub_803B660
+ bl GiveMoveToBattleMon
_08023A08:
ldr r0, _08023A78
ldrh r1, [r0]
@@ -51755,7 +47519,7 @@ _08023A08:
bne _08023A54
adds r0, r2, r3
adds r1, r5, 0
- bl sub_803B660
+ bl GiveMoveToBattleMon
_08023A54:
ldr r0, _08023A7C
str r6, [r0]
@@ -52055,7 +47819,7 @@ _08023CC8:
adds r0, r7
adds r1, r5, 0
adds r1, 0xD
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
adds r0, r4, 0
@@ -52116,7 +47880,7 @@ _08023D20:
ldr r7, _08023E18
ldrh r1, [r7]
adds r2, r5, 0
- bl sub_803B6A4
+ bl SetMonMoveSlot
ldr r0, _08023E1C
ldrh r0, [r0]
ldrb r6, [r6]
@@ -52145,7 +47909,7 @@ _08023D20:
ldrh r1, [r7]
adds r0, r4, 0
adds r2, r5, 0
- bl sub_803B6E4
+ bl SetBattleMonMoveSlot
_08023DB0:
ldr r0, _08023E2C
ldrh r1, [r0]
@@ -52190,7 +47954,7 @@ _08023DB0:
ldrh r1, [r0]
adds r0, r4, 0
adds r2, r5, 0
- bl sub_803B6E4
+ bl SetBattleMonMoveSlot
b _08023E5C
.align 2, 0
_08023E10: .4byte 0x02024c10
@@ -52578,7 +48342,7 @@ _080240FE:
muls r4, r0
b _08024140
.align 2, 0
-_08024120: .4byte gUnknown_081F98F0
+_08024120: .4byte gTrainerMoney
_08024124: .4byte 0x02000000
_08024128: .4byte 0x020239f8
_0802412C: .4byte 0x02025bc4
@@ -52823,12 +48587,12 @@ _08024300:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08024324
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -52848,11 +48612,11 @@ _08024340: .4byte 0x0000ffff
_08024344:
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
strh r0, [r5]
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
_08024356:
str r0, [r6]
adds r6, 0x8
@@ -53627,7 +49391,7 @@ _0802495A:
ldr r1, _080249B4
add r1, r8
ldrb r1, [r1]
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r1, r0, 16
mov r0, r8
@@ -53644,7 +49408,7 @@ _080249A4: .4byte gUnknown_0840165C
_080249A8: .4byte 0x02000000
_080249AC: .4byte 0x00016018
_080249B0: .4byte 0x03004360
-_080249B4: .4byte gUnknown_081FACEF
+_080249B4: .4byte gLevelUpStatBoxStats
_080249B8: .4byte _080249BC
.align 2, 0
_080249BC:
@@ -53836,7 +49600,7 @@ _08024B1C:
ldr r1, _08024BAC
add r1, r8
ldrb r1, [r1]
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
strb r6, [r5]
movs r0, 0x13
@@ -53883,7 +49647,7 @@ _08024B9C: .4byte gUnknown_08400D9F
_08024BA0: .4byte 0x00016018
_08024BA4: .4byte gUnknown_0840165C
_08024BA8: .4byte 0x03004360
-_08024BAC: .4byte gUnknown_081FACEF
+_08024BAC: .4byte gLevelUpStatBoxStats
_08024BB0:
strb r6, [r5]
movs r0, 0x11
@@ -54689,7 +50453,7 @@ _08025200: .4byte 0x02024c07
_08025204: .4byte 0x02024ca8
_08025208: .4byte 0x02024a7e
_0802520C: .4byte 0x02024a68
-_08025210: .4byte gUnknown_081FACF6
+_08025210: .4byte gProtectSuccessRates
_08025214: .4byte gBattleMoves
_08025218: .4byte 0x02024be6
_0802521C: .4byte 0x02024d28
@@ -57205,17 +52969,17 @@ _080265E8:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0802661A
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0802661A
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0802661A
adds r0, r7, 0x1
@@ -57244,17 +53008,17 @@ _0802663C:
adds r4, r2, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0802666E
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _0802666E
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0802666E
adds r0, r7, 0x1
@@ -57370,17 +53134,17 @@ _0802671A:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080266DC
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x1
beq _080266DC
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080266DC
b _08026832
@@ -57422,17 +53186,17 @@ _0802677E:
adds r4, r2, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0802677E
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x1
beq _0802677E
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0802677E
b _08026832
@@ -57462,17 +53226,17 @@ _080267E6:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080267E6
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x1
beq _080267E6
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080267E6
_08026832:
@@ -58573,23 +54337,23 @@ _080270F0:
adds r4, r1, r0
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
mov r10, r0
adds r0, r5, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
mov r9, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
mov r8, r0
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
adds r7, r0, 0
ldr r5, _08027154
ldrb r0, [r5]
@@ -58621,11 +54385,11 @@ _08027164: .4byte 0x02024c06
_08027168:
mov r0, r10
mov r1, r9
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
adds r4, r0, 0
mov r0, r8
adds r1, r7, 0
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -58652,14 +54416,14 @@ _08027168:
bne _080271CA
mov r0, r10
mov r1, r9
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
beq _080271CA
mov r0, r8
adds r1, r7, 0
- bl pokemon_species_get_gender_info
+ bl GetGenderFromSpeciesAndPersonality
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
@@ -61659,12 +57423,12 @@ _0802896A:
add r4, r9
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0x2E
- bl PokemonGetField
+ bl GetMonData
lsls r0, 24
lsrs r4, r0, 24
cmp r5, 0
@@ -63835,21 +59599,21 @@ _08029AB4:
muls r0, r5
adds r0, r7, r0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08029AF8
ldrb r0, [r6]
muls r0, r5
adds r0, r7, r0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08029AF8
ldrb r0, [r4]
muls r0, r5
adds r0, r7, r0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -63858,7 +59622,7 @@ _08029AB4:
muls r0, r5
adds r0, r7, r0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08029B08
_08029AF8:
@@ -63900,7 +59664,7 @@ _08029B08:
muls r0, r4
adds r0, r7, r0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
@@ -63924,7 +59688,7 @@ _08029B08:
muls r0, r4
adds r0, r7, r0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
lsls r0, 1
movs r1, 0x5
bl __udivsi3
@@ -65900,12 +61664,12 @@ _0802AAAE:
adds r4, r0, r6
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0802AB54
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -65924,7 +61688,7 @@ _0802AAF8:
adds r1, 0xD
ldr r0, [sp]
add r0, r9
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
adds r0, r4, 0
@@ -66491,17 +62255,17 @@ _0802AF7A:
adds r4, r0
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r6, r0, 16
adds r0, r4, 0
movs r1, 0x2E
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0802AFC0
lsls r0, r5, 3
@@ -66569,7 +62333,7 @@ _0802B020:
lsls r2, 1
add r2, r8
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
_0802B032:
adds r7, r4, 0
cmp r7, 0x5
@@ -67010,7 +62774,7 @@ atkEB_settypetoterrain: @ 802B330
.align 2, 0
_0802B3A0: .4byte 0x02024a80
_0802B3A4: .4byte 0x02024c07
-_0802B3A8: .4byte gUnknown_081FAD86
+_0802B3A8: .4byte gTerrainToType
_0802B3AC: .4byte 0x0300428c
_0802B3B0: .4byte 0x030041c0
_0802B3B4: .4byte 0x02024c10
@@ -67532,7 +63296,7 @@ _0802B7DC:
strb r1, [r0, 0x5]
b _0802B81C
.align 2, 0
-_0802B7F4: .4byte gUnknown_081FAD90
+_0802B7F4: .4byte gBallCatchBonuses
_0802B7F8: .4byte 0x02024a80
_0802B7FC: .4byte 0x02024c08
_0802B800: .4byte 0x02024c04
@@ -67572,7 +63336,7 @@ _0802B81C:
adds r0, r1
ldr r2, _0802B87C
movs r1, 0x26
- bl pokemon_setattr
+ bl SetMonData
bl calc_player_party_count
lsls r0, 24
lsrs r0, 24
@@ -67649,7 +63413,7 @@ _0802B8CC:
adds r0, r1
movs r1, 0x26
adds r2, r5, 0
- bl pokemon_setattr
+ bl SetMonData
bl calc_player_party_count
lsls r0, 24
lsrs r0, 24
@@ -67734,7 +63498,7 @@ sub_802B960: @ 802B960
adds r0, r6
adds r2, 0x2A
movs r1, 0x2
- bl PokemonGetField
+ bl GetMonData
ldr r1, _0802B9DC
ldr r0, [r1]
adds r0, 0x1
@@ -67969,7 +63733,7 @@ _0802BB8C: .4byte gBattleTerrainTiles_Building
_0802BB90: .4byte 0x06008000
_0802BB94: .4byte gBattleTerrainTilemap_Building
_0802BB98: .4byte 0x0600d000
-_0802BB9C: .4byte gUnknown_08E62AC0
+_0802BB9C: .4byte gBattleTerrainPalette_BattleTower
_0802BBA0: .4byte REG_BG3CNT
_0802BBA4: .4byte 0x00005a0b
_0802BBA8: .4byte 0x030041b0
@@ -68246,7 +64010,7 @@ _0802BD92:
add r0, r8
movs r1, 0x2
ldr r2, _0802BE44
- bl PokemonGetField
+ bl GetMonData
mov r1, r10
ldrb r0, [r1]
eors r0, r4
@@ -68258,7 +64022,7 @@ _0802BD92:
adds r0, r1, 0
add r0, r8
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r6, r0, 0
lsls r6, 16
lsrs r6, 16
@@ -68272,7 +64036,7 @@ _0802BD92:
muls r1, r0
adds r0, r1, 0
add r0, r8
- bl pokemon_get_gender
+ bl GetMonGender
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
@@ -68288,7 +64052,7 @@ _0802BD92:
add r0, r8
movs r1, 0
movs r2, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp]
ldr r0, _0802BE48
str r0, [sp, 0x4]
@@ -68336,7 +64100,7 @@ _0802BE50:
adds r0, r1
ldr r2, _0802BEA0
movs r1, 0x2
- bl pokemon_setattr
+ bl SetMonData
b _0802BEC0
.align 2, 0
_0802BE88: .4byte 0x03001770
@@ -69130,7 +64894,7 @@ _0802C4C2:
adds r2, r1
ldrb r1, [r2]
adds r1, 0xD
- bl PokemonGetField
+ bl GetMonData
ldr r2, _0802C530
lsls r1, r0, 1
adds r1, r0
@@ -69271,7 +65035,7 @@ _0802C5E6:
adds r2, r1
ldrb r1, [r2]
adds r1, 0xD
- bl PokemonGetField
+ bl GetMonData
ldr r2, _0802C670
lsls r1, r0, 1
adds r1, r0
@@ -70073,7 +65837,7 @@ _0802CC66:
adds r0, r5
adds r1, r6, 0
adds r1, 0xD
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4]
mov r2, r8
ldrb r0, [r2]
@@ -70084,7 +65848,7 @@ _0802CC66:
adds r0, r5
adds r1, r6, 0
adds r1, 0x11
- bl PokemonGetField
+ bl GetMonData
mov r3, r10
adds r1, r3, r6
strb r0, [r1]
@@ -70103,7 +65867,7 @@ _0802CC66:
ldr r1, _0802CE10
adds r0, r1
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
ldr r5, [sp, 0x28]
strb r0, [r5]
movs r6, 0
@@ -70223,7 +65987,7 @@ _0802CD8C:
adds r1, r6, 0
adds r1, 0xD
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
mov r3, r9
ldrb r0, [r3]
lsls r0, 1
@@ -70236,7 +66000,7 @@ _0802CD8C:
adds r1, r6, 0
adds r1, 0x11
adds r2, r5, 0
- bl pokemon_setattr
+ bl SetMonData
adds r5, 0x1
adds r4, 0x2
adds r6, 0x1
@@ -70254,7 +66018,7 @@ _0802CD8C:
adds r0, r1
movs r1, 0x15
ldr r2, [sp, 0x28]
- bl pokemon_setattr
+ bl SetMonData
b _0802CE1C
.align 2, 0
_0802CDEC: .4byte 0x03001770
@@ -71635,19 +67399,19 @@ _0802D96A:
adds r6, r1, r0
adds r0, r6, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
adds r0, r6, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r6, 0
movs r1, 0x19
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x4]
ldr r3, _0802DA30
adds r4, 0x1
@@ -71674,9 +67438,9 @@ _0802D96A:
adds r0, r6, 0
movs r1, 0x19
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r6, 0
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
ldr r2, [sp]
add r0, sp, 0x4
ldrh r0, [r0]
@@ -71739,7 +67503,7 @@ _0802DA58:
add r2, sp, 0x4
adds r0, r6, 0
movs r1, 0x19
- bl pokemon_setattr
+ bl SetMonData
ldr r1, _0802DA78
ldr r3, [sp, 0x8]
lsls r0, r3, 2
@@ -71804,19 +67568,19 @@ sub_802DA9C: @ 802DA9C
adds r6, r0
adds r0, r6, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r6, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
adds r0, r6, 0
movs r1, 0x19
- bl PokemonGetField
+ bl GetMonData
adds r3, r0, 0
ldr r6, _0802DB5C
lsls r1, r4, 2
@@ -71928,17 +67692,17 @@ _0802DB9C:
adds r5, r1, r0
adds r0, r5, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x19
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x4]
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
ldr r3, _0802DC6C
@@ -71967,9 +67731,9 @@ _0802DB9C:
adds r0, r5, 0
movs r1, 0x19
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r5, 0
- bl pokemon_calc_effective_stats
+ bl CalculateMonStats
ldr r2, [sp]
add r0, sp, 0x4
ldrh r0, [r0]
@@ -71999,7 +67763,7 @@ _0802DC7C:
add r2, sp, 0x4
adds r0, r5, 0
movs r1, 0x19
- bl pokemon_setattr
+ bl SetMonData
ldr r1, _0802DCA8
lsls r0, r7, 2
adds r0, r1
@@ -72099,7 +67863,7 @@ sub_802DD10: @ 802DD10
adds r7, r1, r0
adds r0, r7, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
bl battle_type_is_double
lsls r0, 24
lsrs r0, 24
@@ -72173,7 +67937,7 @@ sub_802DDC4: @ 802DDC4
ldr r1, _0802DE04
adds r0, r1
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
ldrb r0, [r4, 0xC]
ldr r1, _0802DE08
lsls r0, 2
@@ -72221,7 +67985,7 @@ sub_802DE10: @ 802DE10
ldr r1, _0802DEA4
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
bl nullsub_9
@@ -73201,12 +68965,12 @@ _0802E674:
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1]
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2E]
movs r6, 0
@@ -73234,12 +68998,12 @@ _0802E6C0:
adds r1, r6, 0
adds r1, 0xD
mov r0, r8
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4]
adds r1, r6, 0
adds r1, 0x11
mov r0, r8
- bl PokemonGetField
+ bl GetMonData
mov r2, r9
adds r1, r2, r6
strb r0, [r1]
@@ -73254,21 +69018,21 @@ _0802E6C0:
adds r4, r0
adds r0, r4, 0
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
mov r1, r10
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x20
- bl PokemonGetField
+ bl GetMonData
ldr r2, [sp, 0x80]
strb r0, [r2]
adds r0, r4, 0
movs r1, 0x19
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x44]
adds r0, r4, 0
movs r1, 0x27
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r5, 0x1F
ands r0, r5
@@ -73280,7 +69044,7 @@ _0802E6C0:
strb r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x28
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r6, 0x1F
ands r0, r6
@@ -73292,7 +69056,7 @@ _0802E6C0:
strh r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x29
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r5
lsls r0, 2
@@ -73304,7 +69068,7 @@ _0802E6C0:
strb r1, [r3, 0x15]
adds r0, r4, 0
movs r1, 0x2A
- bl PokemonGetField
+ bl GetMonData
movs r1, 0x1F
ands r1, r0
lsls r1, 15
@@ -73315,7 +69079,7 @@ _0802E6C0:
str r0, [sp, 0x14]
adds r0, r4, 0
movs r1, 0x2B
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r6
lsls r0, 4
@@ -73326,7 +69090,7 @@ _0802E6C0:
strh r1, [r3, 0x16]
adds r0, r4, 0
movs r1, 0x2C
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r5
lsls r0, 1
@@ -73338,55 +69102,55 @@ _0802E6C0:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x48]
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x4C]
adds r0, r4, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
ldr r1, [sp, 0x7C]
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x28]
adds r0, r4, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2C]
adds r0, r4, 0
movs r1, 0x3B
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2]
adds r0, r4, 0
movs r1, 0x3C
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x4]
adds r0, r4, 0
movs r1, 0x3D
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x6]
adds r0, r4, 0
movs r1, 0x3E
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x8]
adds r0, r4, 0
movs r1, 0x3F
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0xA]
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r1, 0x1
ands r0, r1
@@ -73399,7 +69163,7 @@ _0802E6C0:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x2E
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
lsls r0, 7
ldrb r2, [r3, 0x17]
@@ -73409,19 +69173,19 @@ _0802E6C0:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x54]
adds r0, r4, 0
movs r1, 0x2
ldr r2, [sp, 0x8C]
- bl PokemonGetField
+ bl GetMonData
ldr r0, [sp, 0x84]
ldr r1, [sp, 0x8C]
bl StringCopy10
adds r0, r4, 0
movs r1, 0x7
ldr r2, [sp, 0x88]
- bl PokemonGetField
+ bl GetMonData
mov r2, sp
movs r6, 0
_0802E878:
@@ -73472,13 +69236,13 @@ _0802E8CE:
adds r1, r6, 0
adds r1, 0xD
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
mov r1, r8
strh r0, [r1]
adds r1, r6, 0
adds r1, 0x11
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
mov r2, r10
adds r1, r2, r6
strb r0, [r1]
@@ -73492,7 +69256,7 @@ _0802E8CE:
ldr r1, _0802E91C
adds r0, r1
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
mov r1, r9
strb r0, [r1, 0xC]
mov r2, r9
@@ -73534,7 +69298,7 @@ _0802E948:
adds r1, 0x11
mov r2, r8
adds r0, r4, r2
- bl PokemonGetField
+ bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
@@ -73545,7 +69309,7 @@ _0802E948:
ldr r1, _0802E974
adds r0, r1
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
@@ -73582,7 +69346,7 @@ _0802E9A4:
adds r0, r1
movs r1, 0x19
_0802E9AE:
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
@@ -73715,27 +69479,27 @@ _0802EA94:
adds r4, r0
adds r0, r4, 0
movs r1, 0x27
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7]
adds r0, r4, 0
movs r1, 0x28
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x1]
adds r0, r4, 0
movs r1, 0x29
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x2]
adds r0, r4, 0
movs r1, 0x2A
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x3]
adds r0, r4, 0
movs r1, 0x2B
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x4]
adds r0, r4, 0
movs r1, 0x2C
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x5]
movs r6, 0x6
b _0802ECDA
@@ -73820,7 +69584,7 @@ _0802EB64:
adds r0, r1
movs r1, 0x37
_0802EB6E:
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
@@ -73909,7 +69673,7 @@ _0802EC08:
adds r0, r1
movs r1, 0x3F
_0802EC12:
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
strb r0, [r7]
@@ -74016,7 +69780,7 @@ _0802ECC8:
adds r0, r1
movs r1, 0x36
_0802ECD2:
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7]
movs r6, 0x1
_0802ECDA:
@@ -74251,12 +70015,12 @@ _0802EF04:
adds r0, r4, 0
movs r1, 0xB
adds r2, r6, 0
- bl pokemon_setattr
+ bl SetMonData
adds r2, r6, 0
adds r2, 0x2E
adds r0, r4, 0
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
movs r0, 0
mov r8, r0
movs r0, 0x3B
@@ -74297,12 +70061,12 @@ _0802EF6A:
adds r1, 0xD
mov r0, r9
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
mov r1, r8
adds r1, 0x11
mov r0, r9
adds r2, r7, 0
- bl pokemon_setattr
+ bl SetMonData
adds r7, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -74318,15 +70082,15 @@ _0802EF6A:
adds r0, r4, 0
movs r1, 0x15
mov r2, r10
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x20
ldr r2, [sp, 0x20]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x19
ldr r2, [sp, 0x28]
- bl pokemon_setattr
+ bl SetMonData
ldrb r0, [r6, 0x14]
lsls r0, 27
lsrs r0, 27
@@ -74335,7 +70099,7 @@ _0802EF6A:
adds r0, r4, 0
movs r1, 0x27
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrh r0, [r6, 0x14]
lsls r0, 22
@@ -74344,7 +70108,7 @@ _0802EF6A:
adds r0, r4, 0
movs r1, 0x28
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrb r0, [r6, 0x15]
lsls r0, 25
@@ -74353,7 +70117,7 @@ _0802EF6A:
adds r0, r4, 0
movs r1, 0x29
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldr r0, [r6, 0x14]
lsls r0, 12
@@ -74362,7 +70126,7 @@ _0802EF6A:
adds r0, r4, 0
movs r1, 0x2A
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrh r0, [r6, 0x16]
lsls r0, 23
@@ -74371,7 +70135,7 @@ _0802EF6A:
adds r0, r4, 0
movs r1, 0x2B
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrb r0, [r6, 0x17]
lsls r0, 26
@@ -74380,47 +70144,47 @@ _0802EF6A:
adds r0, r4, 0
movs r1, 0x2C
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0
ldr r2, [sp, 0x2C]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x37
ldr r2, [sp, 0x30]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x38
ldr r2, [sp, 0x1C]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x39
ldr r2, [sp, 0x18]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3A
ldr r2, [sp, 0x24]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3B
ldr r2, [sp, 0x4]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3C
ldr r2, [sp, 0x8]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3D
ldr r2, [sp, 0xC]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3E
ldr r2, [sp, 0x10]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3F
ldr r2, [sp, 0x14]
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F098: .4byte 0x03004360
@@ -74434,7 +70198,7 @@ _0802F09C:
lsls r2, 9
adds r2, r7
movs r1, 0xB
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F0B4: .4byte 0x03004360
@@ -74449,7 +70213,7 @@ _0802F0BC:
lsls r2, 9
adds r2, r7
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F0D4: .4byte 0x03004360
@@ -74473,12 +70237,12 @@ _0802F0F6:
adds r1, 0xD
adds r0, r7, 0
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
mov r1, r8
adds r1, 0x11
adds r0, r7, 0
adds r2, r6, 0
- bl pokemon_setattr
+ bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -74492,7 +70256,7 @@ _0802F0F6:
adds r0, r1
movs r1, 0x15
mov r2, r9
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F130: .4byte 0x03004360
@@ -74526,35 +70290,35 @@ _0802F15C:
adds r2, r7
adds r0, r4, 0
movs r1, 0x11
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x12
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x13
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x14
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x15
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F1B8: .4byte 0x03004360
@@ -74575,7 +70339,7 @@ _0802F1C0:
_0802F1D8:
adds r3, 0x3
adds r2, r3
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F1E4: .4byte 0x03004360
@@ -74591,7 +70355,7 @@ _0802F1F0:
lsls r2, 9
adds r2, r7
movs r1, 0x1
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F208: .4byte 0x03004360
@@ -74606,7 +70370,7 @@ _0802F210:
lsls r2, 9
adds r2, r7
movs r1, 0x19
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F228: .4byte 0x03004360
@@ -74621,7 +70385,7 @@ _0802F230:
lsls r2, 9
adds r2, r7
movs r1, 0x1A
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F248: .4byte 0x03004360
@@ -74636,7 +70400,7 @@ _0802F250:
lsls r2, 9
adds r2, r7
movs r1, 0x1B
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F268: .4byte 0x03004360
@@ -74651,7 +70415,7 @@ _0802F270:
lsls r2, 9
adds r2, r7
movs r1, 0x1C
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F288: .4byte 0x03004360
@@ -74666,7 +70430,7 @@ _0802F290:
lsls r2, 9
adds r2, r7
movs r1, 0x1D
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F2A8: .4byte 0x03004360
@@ -74681,7 +70445,7 @@ _0802F2B0:
lsls r2, 9
adds r2, r7
movs r1, 0x1E
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F2C8: .4byte 0x03004360
@@ -74696,7 +70460,7 @@ _0802F2D0:
lsls r2, 9
adds r2, r7
movs r1, 0x1F
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F2E8: .4byte 0x03004360
@@ -74711,7 +70475,7 @@ _0802F2F0:
lsls r2, 9
adds r2, r7
movs r1, 0x20
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F308: .4byte 0x03004360
@@ -74726,7 +70490,7 @@ _0802F310:
lsls r2, 9
adds r2, r7
movs r1, 0x22
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F328: .4byte 0x03004360
@@ -74741,7 +70505,7 @@ _0802F330:
lsls r2, 9
adds r2, r7
movs r1, 0x23
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F348: .4byte 0x03004360
@@ -74756,7 +70520,7 @@ _0802F350:
lsls r2, 9
adds r2, r7
movs r1, 0x24
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F368: .4byte 0x03004360
@@ -74771,7 +70535,7 @@ _0802F370:
lsls r2, 9
adds r2, r7
movs r1, 0x25
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F388: .4byte 0x03004360
@@ -74786,7 +70550,7 @@ _0802F390:
lsls r2, 9
adds r2, r7
movs r1, 0x26
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F3A8: .4byte 0x03004360
@@ -74803,35 +70567,35 @@ _0802F3B0:
adds r2, r7
adds r0, r4, 0
movs r1, 0x27
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x28
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x29
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x2A
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x2B
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x5
@@ -74851,7 +70615,7 @@ _0802F420:
lsls r2, 9
adds r2, r7
movs r1, 0x27
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F438: .4byte 0x03004360
@@ -74866,7 +70630,7 @@ _0802F440:
lsls r2, 9
adds r2, r7
movs r1, 0x28
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F458: .4byte 0x03004360
@@ -74881,7 +70645,7 @@ _0802F460:
lsls r2, 9
adds r2, r7
movs r1, 0x29
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F478: .4byte 0x03004360
@@ -74896,7 +70660,7 @@ _0802F480:
lsls r2, 9
adds r2, r7
movs r1, 0x2A
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F498: .4byte 0x03004360
@@ -74911,7 +70675,7 @@ _0802F4A0:
lsls r2, 9
adds r2, r7
movs r1, 0x2B
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F4B8: .4byte 0x03004360
@@ -74927,7 +70691,7 @@ _0802F4C0:
adds r2, r7
_0802F4D0:
movs r1, 0x2C
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F4D8: .4byte 0x03004360
@@ -74942,7 +70706,7 @@ _0802F4E0:
lsls r2, 9
adds r2, r7
movs r1, 0
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F4F8: .4byte 0x03004360
@@ -74957,7 +70721,7 @@ _0802F500:
lsls r2, 9
adds r2, r7
movs r1, 0x9
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F518: .4byte 0x03004360
@@ -74972,7 +70736,7 @@ _0802F520:
lsls r2, 9
adds r2, r7
movs r1, 0x37
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F538: .4byte 0x03004360
@@ -74987,7 +70751,7 @@ _0802F540:
lsls r2, 9
adds r2, r7
movs r1, 0x38
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F558: .4byte 0x03004360
@@ -75002,7 +70766,7 @@ _0802F560:
lsls r2, 9
adds r2, r7
movs r1, 0x39
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F578: .4byte 0x03004360
@@ -75017,7 +70781,7 @@ _0802F580:
lsls r2, 9
adds r2, r7
movs r1, 0x3A
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F598: .4byte 0x03004360
@@ -75032,7 +70796,7 @@ _0802F5A0:
lsls r2, 9
adds r2, r7
movs r1, 0x3B
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F5B8: .4byte 0x03004360
@@ -75047,7 +70811,7 @@ _0802F5C0:
lsls r2, 9
adds r2, r7
movs r1, 0x3C
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F5D8: .4byte 0x03004360
@@ -75062,7 +70826,7 @@ _0802F5E0:
lsls r2, 9
adds r2, r7
movs r1, 0x3D
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F5F8: .4byte 0x03004360
@@ -75077,7 +70841,7 @@ _0802F600:
lsls r2, 9
adds r2, r7
movs r1, 0x3E
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F618: .4byte 0x03004360
@@ -75092,7 +70856,7 @@ _0802F620:
lsls r2, 9
adds r2, r7
movs r1, 0x3F
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F638: .4byte 0x03004360
@@ -75107,7 +70871,7 @@ _0802F640:
lsls r2, 9
adds r2, r7
movs r1, 0x16
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F658: .4byte 0x03004360
@@ -75122,7 +70886,7 @@ _0802F660:
lsls r2, 9
adds r2, r7
movs r1, 0x17
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F678: .4byte 0x03004360
@@ -75137,7 +70901,7 @@ _0802F680:
lsls r2, 9
adds r2, r7
movs r1, 0x18
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F698: .4byte 0x03004360
@@ -75152,7 +70916,7 @@ _0802F6A0:
lsls r2, 9
adds r2, r7
movs r1, 0x21
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F6B8: .4byte 0x03004360
@@ -75167,7 +70931,7 @@ _0802F6C0:
lsls r2, 9
adds r2, r7
movs r1, 0x2F
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F6D8: .4byte 0x03004360
@@ -75182,7 +70946,7 @@ _0802F6E0:
lsls r2, 9
adds r2, r7
movs r1, 0x30
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F6F8: .4byte 0x03004360
@@ -75197,7 +70961,7 @@ _0802F700:
lsls r2, 9
adds r2, r7
movs r1, 0x32
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F718: .4byte 0x03004360
@@ -75212,7 +70976,7 @@ _0802F720:
lsls r2, 9
adds r2, r7
movs r1, 0x33
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F738: .4byte 0x03004360
@@ -75227,7 +70991,7 @@ _0802F740:
lsls r2, 9
adds r2, r7
movs r1, 0x34
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F758: .4byte 0x03004360
@@ -75242,7 +71006,7 @@ _0802F760:
lsls r2, 9
adds r2, r7
movs r1, 0x35
- bl pokemon_setattr
+ bl SetMonData
b _0802F796
.align 2, 0
_0802F778: .4byte 0x03004360
@@ -75257,7 +71021,7 @@ _0802F780:
lsls r2, 9
adds r2, r7
movs r1, 0x36
- bl pokemon_setattr
+ bl SetMonData
_0802F796:
ldr r2, _0802F7C8
ldr r0, _0802F7C4
@@ -75483,7 +71247,7 @@ sub_802F934: @ 802F934
ldr r1, _0802FA80
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
lsls r0, 16
lsrs r0, 16
@@ -75501,7 +71265,7 @@ sub_802F934: @ 802F934
lsls r1, 24
lsrs r1, 24
mov r0, r8
- bl gpu_pal_obj_decompress_and_apply
+ bl GetMonSpriteTemplate_803C56C
ldr r0, _0802FA8C
mov r10, r0
adds r0, r6, 0
@@ -75796,7 +71560,7 @@ _0802FBEA:
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
- bl sub_803C5A0
+ bl GetMonSpriteTemplate_803C5A0
ldr r0, _0802FCC0
mov r8, r0
lsls r5, r7, 16
@@ -75910,7 +71674,7 @@ sub_802FCE0: @ 802FCE0
lsls r1, 24
lsrs r1, 24
adds r0, r6, 0
- bl sub_803C5A0
+ bl GetMonSpriteTemplate_803C5A0
ldr r0, _0802FD9C
ldr r2, _0802FDA0
ldrb r1, [r4, 0x8]
@@ -77108,7 +72872,7 @@ sub_8030698: @ 8030698
ldr r4, _08030720
adds r0, r4
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
mov r1, r9
ldrb r0, [r1]
@@ -77118,7 +72882,7 @@ sub_8030698: @ 8030698
muls r0, r5
adds r0, r4
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r3, r0, 0
mov r1, r9
ldrb r0, [r1]
@@ -77146,7 +72910,7 @@ _08030728:
ldr r1, _08030784
adds r0, r1
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
mov r1, r9
ldrb r0, [r1]
@@ -77204,7 +72968,7 @@ sub_8030798: @ 8030798
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0x63
bls _080307D0
bl dp01_tbl1_exec_completed
@@ -77218,7 +72982,7 @@ _080307D0:
bl load_gfxc_health_bar
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
ldrb r1, [r6]
lsls r1, 9
adds r0, r5, 0x2
@@ -77383,7 +73147,7 @@ sub_8030910: @ 8030910
ldr r5, _08030974
adds r0, r5
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
ldr r2, _08030978
ldrb r1, [r4]
lsls r1, 9
@@ -77401,7 +73165,7 @@ sub_8030910: @ 8030910
adds r0, r5
movs r1, 0x37
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
bl dp01_tbl1_exec_completed
add sp, 0x4
pop {r3}
@@ -77808,7 +73572,7 @@ sub_8030C4C: @ 8030C4C
ldr r1, _08030C88
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
movs r1, 0x19
@@ -79236,7 +75000,7 @@ sub_8031794: @ 8031794
lsrs r1, 24
mov r9, r1
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0xC]
mov r0, r9
lsls r1, r0, 2
@@ -79247,7 +75011,7 @@ sub_8031794: @ 8031794
bne _080317D4
mov r0, r8
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r6, r0, 16
ldr r7, [sp, 0xC]
@@ -79262,7 +75026,7 @@ _080317D4:
_080317DC:
mov r0, r8
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
mov r10, r0
mov r0, r9
bl battle_get_per_side_status
@@ -79400,7 +75164,7 @@ sub_80318FC: @ 80318FC
lsrs r1, 24
mov r9, r1
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0xC]
mov r0, r9
lsls r1, r0, 2
@@ -79411,7 +75175,7 @@ sub_80318FC: @ 80318FC
bne _0803193C
mov r0, r8
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r6, r0, 16
ldr r7, [sp, 0xC]
@@ -79426,7 +75190,7 @@ _0803193C:
_08031944:
mov r0, r8
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
mov r10, r0
mov r0, r9
bl battle_get_per_side_status
@@ -80396,7 +76160,7 @@ _08032104:
_08032114:
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r7, r0, 16
mov r0, r8
@@ -80414,13 +76178,13 @@ _08032114:
ldr r5, _08032190
adds r0, r5
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
mov r9, r0
ldrh r0, [r4]
muls r0, r6
adds r0, r5
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
adds r6, r0, 0
lsls r0, r7, 3
ldr r1, _08032194
@@ -80468,13 +76232,13 @@ _080321A4:
ldr r5, _0803230C
adds r0, r5
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
mov r9, r0
ldrh r0, [r4]
muls r0, r6
adds r0, r5
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
adds r6, r0, 0
lsls r0, r7, 3
ldr r1, _08032310
@@ -80675,7 +76439,7 @@ _08032376:
ldr r0, _08032384
b _08032396
.align 2, 0
-_08032384: .4byte gUnknown_08D2D4CC
+_08032384: .4byte gSubstituteDollTilemap
_08032388:
adds r0, r5, 0
bl battle_side_get_owner
@@ -80691,7 +76455,7 @@ _08032396:
bl LZDecompressVram
b _080323BA
.align 2, 0
-_080323A4: .4byte gUnknown_08D2D28C
+_080323A4: .4byte gSubstituteDollGfx
_080323A8: .4byte gUnknown_081FAF4C
_080323AC:
ldr r0, _080323F4
@@ -80731,9 +76495,9 @@ _080323D4:
bl LoadCompressedPalette
b _08032456
.align 2, 0
-_080323F4: .4byte gUnknown_08D2D4CC
+_080323F4: .4byte gSubstituteDollTilemap
_080323F8: .4byte gUnknown_081FAF4C
-_080323FC: .4byte gUnknown_08D2D268
+_080323FC: .4byte gSubstituteDollPal
_08032400: .4byte 0x040000d4
_08032404: .4byte 0x84000200
_08032408:
@@ -80871,13 +76635,13 @@ sub_80324F8: @ 80324F8
lsrs r6, r1, 24
adds r7, r6, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r4, 16
asrs r4, 16
@@ -81001,13 +76765,13 @@ unref_sub_8032604: @ 8032604
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r4, 16
asrs r4, 16
@@ -81069,7 +76833,7 @@ sub_8032638: @ 8032638
adds r4, r0, r6
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080326AA
adds r0, r4, 0
@@ -81085,7 +76849,7 @@ _080326AA:
adds r4, r0, r6
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080326CE
adds r0, r4, 0
@@ -81425,7 +77189,7 @@ _08032964:
bx r0
.align 2, 0
_08032970: .4byte 0x02017800
-_08032974: .4byte gUnknown_081ECB14
+_08032974: .4byte gEnemyMonElevation
thumb_func_end sub_80328A4
thumb_func_start sub_8032978
@@ -81479,7 +77243,7 @@ _080329AA:
b _080329F8
.align 2, 0
_080329D0: .4byte 0x02017800
-_080329D4: .4byte gUnknown_081ECB14
+_080329D4: .4byte gEnemyMonElevation
_080329D8: .4byte 0x02020004
_080329DC: .4byte sub_80328A4
_080329E0:
@@ -82182,7 +77946,7 @@ _08032EC6:
muls r0, r6
adds r0, r5
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -82233,7 +77997,7 @@ _08032F58:
adds r0, r1, 0
adds r0, r6
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -82791,7 +78555,7 @@ _08033402:
ldr r1, _0803347C
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -83054,12 +78818,12 @@ _080336C8:
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1]
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2E]
movs r6, 0
@@ -83087,12 +78851,12 @@ _08033714:
adds r1, r6, 0
adds r1, 0xD
mov r0, r8
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4]
adds r1, r6, 0
adds r1, 0x11
mov r0, r8
- bl PokemonGetField
+ bl GetMonData
mov r2, r9
adds r1, r2, r6
strb r0, [r1]
@@ -83107,21 +78871,21 @@ _08033714:
adds r4, r0
adds r0, r4, 0
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
mov r1, r10
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x20
- bl PokemonGetField
+ bl GetMonData
ldr r2, [sp, 0x80]
strb r0, [r2]
adds r0, r4, 0
movs r1, 0x19
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x44]
adds r0, r4, 0
movs r1, 0x27
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r5, 0x1F
ands r0, r5
@@ -83133,7 +78897,7 @@ _08033714:
strb r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x28
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r6, 0x1F
ands r0, r6
@@ -83145,7 +78909,7 @@ _08033714:
strh r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x29
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r5
lsls r0, 2
@@ -83157,7 +78921,7 @@ _08033714:
strb r1, [r3, 0x15]
adds r0, r4, 0
movs r1, 0x2A
- bl PokemonGetField
+ bl GetMonData
movs r1, 0x1F
ands r1, r0
lsls r1, 15
@@ -83168,7 +78932,7 @@ _08033714:
str r0, [sp, 0x14]
adds r0, r4, 0
movs r1, 0x2B
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r6
lsls r0, 4
@@ -83179,7 +78943,7 @@ _08033714:
strh r1, [r3, 0x16]
adds r0, r4, 0
movs r1, 0x2C
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r5
lsls r0, 1
@@ -83191,55 +78955,55 @@ _08033714:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x48]
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x4C]
adds r0, r4, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
ldr r1, [sp, 0x7C]
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x28]
adds r0, r4, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2C]
adds r0, r4, 0
movs r1, 0x3B
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2]
adds r0, r4, 0
movs r1, 0x3C
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x4]
adds r0, r4, 0
movs r1, 0x3D
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x6]
adds r0, r4, 0
movs r1, 0x3E
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x8]
adds r0, r4, 0
movs r1, 0x3F
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0xA]
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r1, 0x1
ands r0, r1
@@ -83252,7 +79016,7 @@ _08033714:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x2E
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
lsls r0, 7
ldrb r2, [r3, 0x17]
@@ -83262,19 +79026,19 @@ _08033714:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x54]
adds r0, r4, 0
movs r1, 0x2
ldr r2, [sp, 0x8C]
- bl PokemonGetField
+ bl GetMonData
ldr r0, [sp, 0x84]
ldr r1, [sp, 0x8C]
bl StringCopy10
adds r0, r4, 0
movs r1, 0x7
ldr r2, [sp, 0x88]
- bl PokemonGetField
+ bl GetMonData
mov r2, sp
movs r6, 0
_080338CC:
@@ -83325,13 +79089,13 @@ _08033922:
adds r1, r6, 0
adds r1, 0xD
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
mov r1, r8
strh r0, [r1]
adds r1, r6, 0
adds r1, 0x11
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
mov r2, r10
adds r1, r2, r6
strb r0, [r1]
@@ -83345,7 +79109,7 @@ _08033922:
ldr r1, _08033970
adds r0, r1
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
mov r1, r9
strb r0, [r1, 0xC]
mov r2, r9
@@ -83387,7 +79151,7 @@ _0803399C:
adds r1, 0x11
mov r2, r8
adds r0, r4, r2
- bl PokemonGetField
+ bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
@@ -83398,7 +79162,7 @@ _0803399C:
ldr r1, _080339C8
adds r0, r1
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
@@ -83435,7 +79199,7 @@ _080339F8:
adds r0, r1
movs r1, 0x19
_08033A02:
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
@@ -83568,27 +79332,27 @@ _08033AE8:
adds r4, r0
adds r0, r4, 0
movs r1, 0x27
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7]
adds r0, r4, 0
movs r1, 0x28
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x1]
adds r0, r4, 0
movs r1, 0x29
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x2]
adds r0, r4, 0
movs r1, 0x2A
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x3]
adds r0, r4, 0
movs r1, 0x2B
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x4]
adds r0, r4, 0
movs r1, 0x2C
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x5]
movs r6, 0x6
b _08033D2E
@@ -83673,7 +79437,7 @@ _08033BB8:
adds r0, r1
movs r1, 0x37
_08033BC2:
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
@@ -83762,7 +79526,7 @@ _08033C5C:
adds r0, r1
movs r1, 0x3F
_08033C66:
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
strb r0, [r7]
@@ -83869,7 +79633,7 @@ _08033D1C:
adds r0, r1
movs r1, 0x36
_08033D26:
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7]
movs r6, 0x1
_08033D2E:
@@ -84105,12 +79869,12 @@ _08033F58:
adds r0, r4, 0
movs r1, 0xB
adds r2, r7, 0
- bl pokemon_setattr
+ bl SetMonData
adds r2, r7, 0
adds r2, 0x2E
adds r0, r4, 0
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
movs r0, 0
mov r8, r0
movs r0, 0x3B
@@ -84151,12 +79915,12 @@ _08033FBE:
adds r1, 0xD
mov r0, r9
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
mov r1, r8
adds r1, 0x11
mov r0, r9
adds r2, r6, 0
- bl pokemon_setattr
+ bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -84172,15 +79936,15 @@ _08033FBE:
adds r0, r4, 0
movs r1, 0x15
mov r2, r10
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x20
ldr r2, [sp, 0x20]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x19
ldr r2, [sp, 0x28]
- bl pokemon_setattr
+ bl SetMonData
ldrb r0, [r7, 0x14]
lsls r0, 27
lsrs r0, 27
@@ -84189,7 +79953,7 @@ _08033FBE:
adds r0, r4, 0
movs r1, 0x27
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrh r0, [r7, 0x14]
lsls r0, 22
@@ -84198,7 +79962,7 @@ _08033FBE:
adds r0, r4, 0
movs r1, 0x28
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrb r0, [r7, 0x15]
lsls r0, 25
@@ -84207,7 +79971,7 @@ _08033FBE:
adds r0, r4, 0
movs r1, 0x29
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldr r0, [r7, 0x14]
lsls r0, 12
@@ -84216,7 +79980,7 @@ _08033FBE:
adds r0, r4, 0
movs r1, 0x2A
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrh r0, [r7, 0x16]
lsls r0, 23
@@ -84225,7 +79989,7 @@ _08033FBE:
adds r0, r4, 0
movs r1, 0x2B
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrb r0, [r7, 0x17]
lsls r0, 26
@@ -84234,47 +79998,47 @@ _08033FBE:
adds r0, r4, 0
movs r1, 0x2C
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0
ldr r2, [sp, 0x2C]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x37
ldr r2, [sp, 0x30]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x38
ldr r2, [sp, 0x1C]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x39
ldr r2, [sp, 0x18]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3A
ldr r2, [sp, 0x24]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3B
ldr r2, [sp, 0x4]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3C
ldr r2, [sp, 0x8]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3D
ldr r2, [sp, 0xC]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3E
ldr r2, [sp, 0x10]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3F
ldr r2, [sp, 0x14]
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080340EC: .4byte 0x030045c0
@@ -84287,7 +80051,7 @@ _080340F0:
lsls r2, 9
adds r2, r3
movs r1, 0xB
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034108: .4byte 0x030045c0
@@ -84300,7 +80064,7 @@ _0803410C:
lsls r2, 9
adds r2, r3
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034124: .4byte 0x030045c0
@@ -84322,12 +80086,12 @@ _08034140:
adds r1, 0xD
adds r0, r7, 0
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
mov r1, r8
adds r1, 0x11
adds r0, r7, 0
adds r2, r6, 0
- bl pokemon_setattr
+ bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -84341,7 +80105,7 @@ _08034140:
adds r0, r1
movs r1, 0x15
mov r2, r9
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034178: .4byte 0x030045c0
@@ -84373,7 +80137,7 @@ _0803419C:
adds r0, r4, 0
movs r1, 0x11
str r3, [sp, 0x34]
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -84381,7 +80145,7 @@ _0803419C:
adds r2, r0
adds r0, r4, 0
movs r1, 0x12
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -84389,7 +80153,7 @@ _0803419C:
adds r2, r0
adds r0, r4, 0
movs r1, 0x13
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -84397,7 +80161,7 @@ _0803419C:
adds r2, r0
adds r0, r4, 0
movs r1, 0x14
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -84405,7 +80169,7 @@ _0803419C:
adds r2, r0
adds r0, r4, 0
movs r1, 0x15
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034200: .4byte 0x030045c0
@@ -84424,7 +80188,7 @@ _08034204:
_0803421A:
adds r3, 0x3
adds r2, r3
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034224: .4byte 0x030045c0
@@ -84438,7 +80202,7 @@ _0803422C:
lsls r2, 9
adds r2, r3
movs r1, 0x1
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034244: .4byte 0x030045c0
@@ -84451,7 +80215,7 @@ _08034248:
lsls r2, 9
adds r2, r3
movs r1, 0x19
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034260: .4byte 0x030045c0
@@ -84464,7 +80228,7 @@ _08034264:
lsls r2, 9
adds r2, r3
movs r1, 0x1A
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_0803427C: .4byte 0x030045c0
@@ -84477,7 +80241,7 @@ _08034280:
lsls r2, 9
adds r2, r3
movs r1, 0x1B
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034298: .4byte 0x030045c0
@@ -84490,7 +80254,7 @@ _0803429C:
lsls r2, 9
adds r2, r3
movs r1, 0x1C
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080342B4: .4byte 0x030045c0
@@ -84503,7 +80267,7 @@ _080342B8:
lsls r2, 9
adds r2, r3
movs r1, 0x1D
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080342D0: .4byte 0x030045c0
@@ -84516,7 +80280,7 @@ _080342D4:
lsls r2, 9
adds r2, r3
movs r1, 0x1E
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080342EC: .4byte 0x030045c0
@@ -84529,7 +80293,7 @@ _080342F0:
lsls r2, 9
adds r2, r3
movs r1, 0x1F
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034308: .4byte 0x030045c0
@@ -84542,7 +80306,7 @@ _0803430C:
lsls r2, 9
adds r2, r3
movs r1, 0x20
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034324: .4byte 0x030045c0
@@ -84555,7 +80319,7 @@ _08034328:
lsls r2, 9
adds r2, r3
movs r1, 0x22
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034340: .4byte 0x030045c0
@@ -84568,7 +80332,7 @@ _08034344:
lsls r2, 9
adds r2, r3
movs r1, 0x23
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_0803435C: .4byte 0x030045c0
@@ -84581,7 +80345,7 @@ _08034360:
lsls r2, 9
adds r2, r3
movs r1, 0x24
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034378: .4byte 0x030045c0
@@ -84594,7 +80358,7 @@ _0803437C:
lsls r2, 9
adds r2, r3
movs r1, 0x25
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034394: .4byte 0x030045c0
@@ -84607,7 +80371,7 @@ _08034398:
lsls r2, 9
adds r2, r3
movs r1, 0x26
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080343B0: .4byte 0x030045c0
@@ -84623,7 +80387,7 @@ _080343B4:
adds r0, r4, 0
movs r1, 0x27
str r3, [sp, 0x34]
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -84631,7 +80395,7 @@ _080343B4:
adds r2, r0
adds r0, r4, 0
movs r1, 0x28
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -84639,7 +80403,7 @@ _080343B4:
adds r2, r0
adds r0, r4, 0
movs r1, 0x29
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -84647,7 +80411,7 @@ _080343B4:
adds r2, r0
adds r0, r4, 0
movs r1, 0x2A
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -84655,7 +80419,7 @@ _080343B4:
adds r2, r0
adds r0, r4, 0
movs r1, 0x2B
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -84674,7 +80438,7 @@ _08034428:
lsls r2, 9
adds r2, r3
movs r1, 0x27
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034440: .4byte 0x030045c0
@@ -84687,7 +80451,7 @@ _08034444:
lsls r2, 9
adds r2, r3
movs r1, 0x28
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_0803445C: .4byte 0x030045c0
@@ -84700,7 +80464,7 @@ _08034460:
lsls r2, 9
adds r2, r3
movs r1, 0x29
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034478: .4byte 0x030045c0
@@ -84713,7 +80477,7 @@ _0803447C:
lsls r2, 9
adds r2, r3
movs r1, 0x2A
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034494: .4byte 0x030045c0
@@ -84726,7 +80490,7 @@ _08034498:
lsls r2, 9
adds r2, r3
movs r1, 0x2B
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080344B0: .4byte 0x030045c0
@@ -84740,7 +80504,7 @@ _080344B4:
adds r2, r3
_080344C2:
movs r1, 0x2C
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080344CC: .4byte 0x030045c0
@@ -84753,7 +80517,7 @@ _080344D0:
lsls r2, 9
adds r2, r3
movs r1, 0
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080344E8: .4byte 0x030045c0
@@ -84766,7 +80530,7 @@ _080344EC:
lsls r2, 9
adds r2, r3
movs r1, 0x9
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034504: .4byte 0x030045c0
@@ -84779,7 +80543,7 @@ _08034508:
lsls r2, 9
adds r2, r3
movs r1, 0x37
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034520: .4byte 0x030045c0
@@ -84792,7 +80556,7 @@ _08034524:
lsls r2, 9
adds r2, r3
movs r1, 0x38
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_0803453C: .4byte 0x030045c0
@@ -84805,7 +80569,7 @@ _08034540:
lsls r2, 9
adds r2, r3
movs r1, 0x39
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034558: .4byte 0x030045c0
@@ -84818,7 +80582,7 @@ _0803455C:
lsls r2, 9
adds r2, r3
movs r1, 0x3A
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034574: .4byte 0x030045c0
@@ -84831,7 +80595,7 @@ _08034578:
lsls r2, 9
adds r2, r3
movs r1, 0x3B
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034590: .4byte 0x030045c0
@@ -84844,7 +80608,7 @@ _08034594:
lsls r2, 9
adds r2, r3
movs r1, 0x3C
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080345AC: .4byte 0x030045c0
@@ -84857,7 +80621,7 @@ _080345B0:
lsls r2, 9
adds r2, r3
movs r1, 0x3D
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080345C8: .4byte 0x030045c0
@@ -84870,7 +80634,7 @@ _080345CC:
lsls r2, 9
adds r2, r3
movs r1, 0x3E
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080345E4: .4byte 0x030045c0
@@ -84883,7 +80647,7 @@ _080345E8:
lsls r2, 9
adds r2, r3
movs r1, 0x3F
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034600: .4byte 0x030045c0
@@ -84896,7 +80660,7 @@ _08034604:
lsls r2, 9
adds r2, r3
movs r1, 0x16
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_0803461C: .4byte 0x030045c0
@@ -84909,7 +80673,7 @@ _08034620:
lsls r2, 9
adds r2, r3
movs r1, 0x17
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034638: .4byte 0x030045c0
@@ -84922,7 +80686,7 @@ _0803463C:
lsls r2, 9
adds r2, r3
movs r1, 0x18
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034654: .4byte 0x030045c0
@@ -84935,7 +80699,7 @@ _08034658:
lsls r2, 9
adds r2, r3
movs r1, 0x21
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034670: .4byte 0x030045c0
@@ -84948,7 +80712,7 @@ _08034674:
lsls r2, 9
adds r2, r3
movs r1, 0x2F
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_0803468C: .4byte 0x030045c0
@@ -84961,7 +80725,7 @@ _08034690:
lsls r2, 9
adds r2, r3
movs r1, 0x30
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080346A8: .4byte 0x030045c0
@@ -84974,7 +80738,7 @@ _080346AC:
lsls r2, 9
adds r2, r3
movs r1, 0x32
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080346C4: .4byte 0x030045c0
@@ -84987,7 +80751,7 @@ _080346C8:
lsls r2, 9
adds r2, r3
movs r1, 0x33
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080346E0: .4byte 0x030045c0
@@ -85000,7 +80764,7 @@ _080346E4:
lsls r2, 9
adds r2, r3
movs r1, 0x34
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_080346FC: .4byte 0x030045c0
@@ -85013,7 +80777,7 @@ _08034700:
lsls r2, 9
adds r2, r3
movs r1, 0x35
- bl pokemon_setattr
+ bl SetMonData
b _08034730
.align 2, 0
_08034718: .4byte 0x030045c0
@@ -85026,7 +80790,7 @@ _0803471C:
lsls r2, 9
adds r2, r3
movs r1, 0x36
- bl pokemon_setattr
+ bl SetMonData
_08034730:
add sp, 0x38
pop {r3-r5}
@@ -85118,7 +80882,7 @@ sub_80347B8: @ 80347B8
mov r10, r2
add r0, r10
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
lsls r0, 16
lsrs r0, 16
@@ -85137,7 +80901,7 @@ sub_80347B8: @ 80347B8
lsls r1, 24
lsrs r1, 24
mov r0, r8
- bl gpu_pal_obj_decompress_and_apply
+ bl GetMonSpriteTemplate_803C56C
ldr r0, _080348F4
mov r9, r0
ldrb r0, [r6]
@@ -85223,7 +80987,7 @@ sub_80347B8: @ 80347B8
muls r0, r7
add r0, r10
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -85324,7 +81088,7 @@ sub_803495C: @ 803495C
ldr r5, _08034AC0
adds r0, r5
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
lsls r0, 16
lsrs r0, 16
@@ -85349,7 +81113,7 @@ sub_803495C: @ 803495C
lsls r1, 24
lsrs r1, 24
mov r0, r8
- bl gpu_pal_obj_decompress_and_apply
+ bl GetMonSpriteTemplate_803C56C
ldr r0, _08034ACC
mov r9, r0
adds r0, r6, 0
@@ -85667,7 +81431,7 @@ _08034C56:
lsls r1, 24
lsrs r1, 24
mov r0, r9
- bl sub_803C5A0
+ bl GetMonSpriteTemplate_803C5A0
ldr r5, _08034D90
ldr r1, _08034D94
mov r2, r9
@@ -85878,7 +81642,7 @@ _08034E1A:
lsls r1, 24
lsrs r1, 24
mov r0, r9
- bl sub_803C5A0
+ bl GetMonSpriteTemplate_803C5A0
ldr r0, _08034F54
ldr r2, _08034F58
mov r3, r9
@@ -86871,7 +82635,7 @@ _0803562E:
ldr r1, _0803565C
adds r0, r1
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _0803562C
ldr r1, _08035660
@@ -86975,7 +82739,7 @@ sub_80356CC: @ 80356CC
ldr r4, _08035754
adds r0, r4
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
mov r1, r9
ldrb r0, [r1]
@@ -86985,7 +82749,7 @@ sub_80356CC: @ 80356CC
muls r0, r5
adds r0, r4
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r3, r0, 0
mov r1, r9
ldrb r0, [r1]
@@ -87013,7 +82777,7 @@ _0803575C:
ldr r1, _080357A8
adds r0, r1
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
mov r1, r9
ldrb r0, [r1]
@@ -87449,7 +83213,7 @@ sub_8035A94: @ 8035A94
ldr r1, _08035ACC
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
movs r1, 0x19
@@ -88259,17 +84023,17 @@ _08036110:
adds r4, r5, r2
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080361C2
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080361C2
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -88284,10 +84048,10 @@ _08036110:
beq _080361C2
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r0, r4, 0
movs r1, 0x2E
- bl PokemonGetField
+ bl GetMonData
movs r0, 0
bl battle_get_side_with_given_state
lsls r0, 24
@@ -88305,7 +84069,7 @@ _0803617C:
adds r1, 0xD
mov r0, r8
add r0, r9
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
cmp r0, 0
@@ -88530,17 +84294,17 @@ _08036342:
adds r5, r1, r0
adds r0, r5, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080363FA
adds r0, r5, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080363FA
adds r0, r5, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -88572,12 +84336,12 @@ _08036342:
beq _080363FA
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
adds r0, r5, 0
movs r1, 0x2E
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080363E0
lsls r0, r4, 3
@@ -89079,21 +84843,21 @@ _0803679E:
adds r5, r1, r0
adds r0, r5, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080367B6
b _080368D0
_080367B6:
adds r0, r5, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
bne _080367C4
b _080368D0
_080367C4:
adds r0, r5, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -89126,12 +84890,12 @@ _080367C4:
beq _080368D0
adds r0, r5, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
adds r0, r5, 0
movs r1, 0x2E
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08036844
lsls r0, r4, 3
@@ -89190,7 +84954,7 @@ _0803688E:
adds r1, r4, 0
adds r1, 0xD
add r0, r8
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
cmp r0, 0
@@ -89385,17 +85149,17 @@ _08036A1A:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08036A7E
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08036A7E
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -89556,7 +85320,7 @@ _08036B8E:
ldr r1, _08036C0C
adds r0, r1
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08036BCE
ldr r1, _08036C10
@@ -89823,14 +85587,14 @@ _08036DA2:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0
beq _08036E7C
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08036E7C
mov r1, r8
@@ -89939,7 +85703,7 @@ _08036EA4:
adds r1, r7, 0
adds r1, 0xD
adds r0, r5, r6
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0
@@ -90013,7 +85777,7 @@ _08036F2C:
adds r4, r6, r2
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
adds r3, r7, 0x1
str r3, [sp, 0x18]
@@ -90021,7 +85785,7 @@ _08036F2C:
beq _08036FE8
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _08036FE8
ldr r1, _0803701C
@@ -90059,7 +85823,7 @@ _08036F90:
adds r1, 0xD
ldr r0, _08037018
add r0, r9
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
movs r0, 0
@@ -90204,17 +85968,17 @@ _080370A0:
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080370DC
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
cmp r0, 0
beq _080370DC
adds r0, r4, 0
movs r1, 0x41
- bl PokemonGetField
+ bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
@@ -91347,7 +87111,7 @@ _0803791A:
adds r0, r1, 0
adds r0, r6
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -91398,7 +87162,7 @@ _080379B2:
adds r0, r1, 0
adds r0, r6
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -91957,7 +87721,7 @@ _08037E5E:
ldr r1, _08037ED8
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -92338,12 +88102,12 @@ _08038220:
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1]
adds r0, r4, 0
movs r1, 0xC
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2E]
movs r6, 0
@@ -92371,12 +88135,12 @@ _0803826C:
adds r1, r6, 0
adds r1, 0xD
mov r0, r8
- bl PokemonGetField
+ bl GetMonData
strh r0, [r4]
adds r1, r6, 0
adds r1, 0x11
mov r0, r8
- bl PokemonGetField
+ bl GetMonData
mov r2, r9
adds r1, r2, r6
strb r0, [r1]
@@ -92391,21 +88155,21 @@ _0803826C:
adds r4, r0
adds r0, r4, 0
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
mov r1, r10
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x20
- bl PokemonGetField
+ bl GetMonData
ldr r2, [sp, 0x80]
strb r0, [r2]
adds r0, r4, 0
movs r1, 0x19
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x44]
adds r0, r4, 0
movs r1, 0x27
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r5, 0x1F
ands r0, r5
@@ -92417,7 +88181,7 @@ _0803826C:
strb r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x28
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r6, 0x1F
ands r0, r6
@@ -92429,7 +88193,7 @@ _0803826C:
strh r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x29
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r5
lsls r0, 2
@@ -92441,7 +88205,7 @@ _0803826C:
strb r1, [r3, 0x15]
adds r0, r4, 0
movs r1, 0x2A
- bl PokemonGetField
+ bl GetMonData
movs r1, 0x1F
ands r1, r0
lsls r1, 15
@@ -92452,7 +88216,7 @@ _0803826C:
str r0, [sp, 0x14]
adds r0, r4, 0
movs r1, 0x2B
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r6
lsls r0, 4
@@ -92463,7 +88227,7 @@ _0803826C:
strh r1, [r3, 0x16]
adds r0, r4, 0
movs r1, 0x2C
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
ands r0, r5
lsls r0, 1
@@ -92475,55 +88239,55 @@ _0803826C:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x48]
adds r0, r4, 0
movs r1, 0x37
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x4C]
adds r0, r4, 0
movs r1, 0x38
- bl PokemonGetField
+ bl GetMonData
ldr r1, [sp, 0x7C]
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x28]
adds r0, r4, 0
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2C]
adds r0, r4, 0
movs r1, 0x3B
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x2]
adds r0, r4, 0
movs r1, 0x3C
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x4]
adds r0, r4, 0
movs r1, 0x3D
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x6]
adds r0, r4, 0
movs r1, 0x3E
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0x8]
adds r0, r4, 0
movs r1, 0x3F
- bl PokemonGetField
+ bl GetMonData
mov r1, sp
strh r0, [r1, 0xA]
adds r0, r4, 0
movs r1, 0x2D
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
movs r1, 0x1
ands r0, r1
@@ -92536,7 +88300,7 @@ _0803826C:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x2E
- bl PokemonGetField
+ bl GetMonData
mov r3, sp
lsls r0, 7
ldrb r2, [r3, 0x17]
@@ -92546,19 +88310,19 @@ _0803826C:
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x1
- bl PokemonGetField
+ bl GetMonData
str r0, [sp, 0x54]
adds r0, r4, 0
movs r1, 0x2
ldr r2, [sp, 0x8C]
- bl PokemonGetField
+ bl GetMonData
ldr r0, [sp, 0x84]
ldr r1, [sp, 0x8C]
bl StringCopy10
adds r0, r4, 0
movs r1, 0x7
ldr r2, [sp, 0x88]
- bl PokemonGetField
+ bl GetMonData
mov r2, sp
movs r6, 0
_08038424:
@@ -92609,13 +88373,13 @@ _0803847A:
adds r1, r6, 0
adds r1, 0xD
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
mov r1, r8
strh r0, [r1]
adds r1, r6, 0
adds r1, 0x11
adds r0, r4, 0
- bl PokemonGetField
+ bl GetMonData
mov r2, r10
adds r1, r2, r6
strb r0, [r1]
@@ -92629,7 +88393,7 @@ _0803847A:
ldr r1, _080384C8
adds r0, r1
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
mov r1, r9
strb r0, [r1, 0xC]
mov r2, r9
@@ -92671,7 +88435,7 @@ _080384F4:
adds r1, 0x11
mov r2, r8
adds r0, r4, r2
- bl PokemonGetField
+ bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
@@ -92682,7 +88446,7 @@ _080384F4:
ldr r1, _08038520
adds r0, r1
movs r1, 0x15
- bl PokemonGetField
+ bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
@@ -92719,7 +88483,7 @@ _08038550:
adds r0, r1
movs r1, 0x19
_0803855A:
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
@@ -92852,27 +88616,27 @@ _08038640:
adds r4, r0
adds r0, r4, 0
movs r1, 0x27
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7]
adds r0, r4, 0
movs r1, 0x28
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x1]
adds r0, r4, 0
movs r1, 0x29
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x2]
adds r0, r4, 0
movs r1, 0x2A
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x3]
adds r0, r4, 0
movs r1, 0x2B
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x4]
adds r0, r4, 0
movs r1, 0x2C
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7, 0x5]
movs r6, 0x6
b _08038886
@@ -92957,7 +88721,7 @@ _08038710:
adds r0, r1
movs r1, 0x37
_0803871A:
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
@@ -93046,7 +88810,7 @@ _080387B4:
adds r0, r1
movs r1, 0x3F
_080387BE:
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
strb r0, [r7]
@@ -93153,7 +88917,7 @@ _08038874:
adds r0, r1
movs r1, 0x36
_0803887E:
- bl PokemonGetField
+ bl GetMonData
strb r0, [r7]
movs r6, 0x1
_08038886:
@@ -93329,12 +89093,12 @@ _08038A34:
adds r0, r4, 0
movs r1, 0xB
adds r2, r7, 0
- bl pokemon_setattr
+ bl SetMonData
adds r2, r7, 0
adds r2, 0x2E
adds r0, r4, 0
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
movs r0, 0
mov r8, r0
movs r0, 0x3B
@@ -93375,12 +89139,12 @@ _08038A9A:
adds r1, 0xD
mov r0, r9
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
mov r1, r8
adds r1, 0x11
mov r0, r9
adds r2, r6, 0
- bl pokemon_setattr
+ bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -93396,15 +89160,15 @@ _08038A9A:
adds r0, r4, 0
movs r1, 0x15
mov r2, r10
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x20
ldr r2, [sp, 0x20]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x19
ldr r2, [sp, 0x28]
- bl pokemon_setattr
+ bl SetMonData
ldrb r0, [r7, 0x14]
lsls r0, 27
lsrs r0, 27
@@ -93413,7 +89177,7 @@ _08038A9A:
adds r0, r4, 0
movs r1, 0x27
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrh r0, [r7, 0x14]
lsls r0, 22
@@ -93422,7 +89186,7 @@ _08038A9A:
adds r0, r4, 0
movs r1, 0x28
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrb r0, [r7, 0x15]
lsls r0, 25
@@ -93431,7 +89195,7 @@ _08038A9A:
adds r0, r4, 0
movs r1, 0x29
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldr r0, [r7, 0x14]
lsls r0, 12
@@ -93440,7 +89204,7 @@ _08038A9A:
adds r0, r4, 0
movs r1, 0x2A
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrh r0, [r7, 0x16]
lsls r0, 23
@@ -93449,7 +89213,7 @@ _08038A9A:
adds r0, r4, 0
movs r1, 0x2B
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
mov r1, sp
ldrb r0, [r7, 0x17]
lsls r0, 26
@@ -93458,47 +89222,47 @@ _08038A9A:
adds r0, r4, 0
movs r1, 0x2C
mov r2, sp
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0
ldr r2, [sp, 0x2C]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x37
ldr r2, [sp, 0x30]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x38
ldr r2, [sp, 0x1C]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x39
ldr r2, [sp, 0x18]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3A
ldr r2, [sp, 0x24]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3B
ldr r2, [sp, 0x4]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3C
ldr r2, [sp, 0x8]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3D
ldr r2, [sp, 0xC]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3E
ldr r2, [sp, 0x10]
- bl pokemon_setattr
+ bl SetMonData
adds r0, r4, 0
movs r1, 0x3F
ldr r2, [sp, 0x14]
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038BC8: .4byte 0x030045c0
@@ -93511,7 +89275,7 @@ _08038BCC:
lsls r2, 9
adds r2, r3
movs r1, 0xB
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038BE4: .4byte 0x030045c0
@@ -93524,7 +89288,7 @@ _08038BE8:
lsls r2, 9
adds r2, r3
movs r1, 0xC
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038C00: .4byte 0x030045c0
@@ -93546,12 +89310,12 @@ _08038C1C:
adds r1, 0xD
adds r0, r7, 0
adds r2, r4, 0
- bl pokemon_setattr
+ bl SetMonData
mov r1, r8
adds r1, 0x11
adds r0, r7, 0
adds r2, r6, 0
- bl pokemon_setattr
+ bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
@@ -93565,7 +89329,7 @@ _08038C1C:
adds r0, r1
movs r1, 0x15
mov r2, r9
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038C54: .4byte 0x030045c0
@@ -93597,7 +89361,7 @@ _08038C78:
adds r0, r4, 0
movs r1, 0x11
str r3, [sp, 0x34]
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -93605,7 +89369,7 @@ _08038C78:
adds r2, r0
adds r0, r4, 0
movs r1, 0x12
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -93613,7 +89377,7 @@ _08038C78:
adds r2, r0
adds r0, r4, 0
movs r1, 0x13
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -93621,7 +89385,7 @@ _08038C78:
adds r2, r0
adds r0, r4, 0
movs r1, 0x14
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -93629,7 +89393,7 @@ _08038C78:
adds r2, r0
adds r0, r4, 0
movs r1, 0x15
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038CDC: .4byte 0x030045c0
@@ -93648,7 +89412,7 @@ _08038CE0:
_08038CF6:
adds r3, 0x3
adds r2, r3
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038D00: .4byte 0x030045c0
@@ -93662,7 +89426,7 @@ _08038D08:
lsls r2, 9
adds r2, r3
movs r1, 0x1
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038D20: .4byte 0x030045c0
@@ -93675,7 +89439,7 @@ _08038D24:
lsls r2, 9
adds r2, r3
movs r1, 0x19
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038D3C: .4byte 0x030045c0
@@ -93688,7 +89452,7 @@ _08038D40:
lsls r2, 9
adds r2, r3
movs r1, 0x1A
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038D58: .4byte 0x030045c0
@@ -93701,7 +89465,7 @@ _08038D5C:
lsls r2, 9
adds r2, r3
movs r1, 0x1B
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038D74: .4byte 0x030045c0
@@ -93714,7 +89478,7 @@ _08038D78:
lsls r2, 9
adds r2, r3
movs r1, 0x1C
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038D90: .4byte 0x030045c0
@@ -93727,7 +89491,7 @@ _08038D94:
lsls r2, 9
adds r2, r3
movs r1, 0x1D
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038DAC: .4byte 0x030045c0
@@ -93740,7 +89504,7 @@ _08038DB0:
lsls r2, 9
adds r2, r3
movs r1, 0x1E
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038DC8: .4byte 0x030045c0
@@ -93753,7 +89517,7 @@ _08038DCC:
lsls r2, 9
adds r2, r3
movs r1, 0x1F
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038DE4: .4byte 0x030045c0
@@ -93766,7 +89530,7 @@ _08038DE8:
lsls r2, 9
adds r2, r3
movs r1, 0x20
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038E00: .4byte 0x030045c0
@@ -93779,7 +89543,7 @@ _08038E04:
lsls r2, 9
adds r2, r3
movs r1, 0x22
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038E1C: .4byte 0x030045c0
@@ -93792,7 +89556,7 @@ _08038E20:
lsls r2, 9
adds r2, r3
movs r1, 0x23
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038E38: .4byte 0x030045c0
@@ -93805,7 +89569,7 @@ _08038E3C:
lsls r2, 9
adds r2, r3
movs r1, 0x24
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038E54: .4byte 0x030045c0
@@ -93818,7 +89582,7 @@ _08038E58:
lsls r2, 9
adds r2, r3
movs r1, 0x25
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038E70: .4byte 0x030045c0
@@ -93831,7 +89595,7 @@ _08038E74:
lsls r2, 9
adds r2, r3
movs r1, 0x26
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038E8C: .4byte 0x030045c0
@@ -93847,7 +89611,7 @@ _08038E90:
adds r0, r4, 0
movs r1, 0x27
str r3, [sp, 0x34]
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -93855,7 +89619,7 @@ _08038E90:
adds r2, r0
adds r0, r4, 0
movs r1, 0x28
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -93863,7 +89627,7 @@ _08038E90:
adds r2, r0
adds r0, r4, 0
movs r1, 0x29
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -93871,7 +89635,7 @@ _08038E90:
adds r2, r0
adds r0, r4, 0
movs r1, 0x2A
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -93879,7 +89643,7 @@ _08038E90:
adds r2, r0
adds r0, r4, 0
movs r1, 0x2B
- bl pokemon_setattr
+ bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
@@ -93898,7 +89662,7 @@ _08038F04:
lsls r2, 9
adds r2, r3
movs r1, 0x27
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038F1C: .4byte 0x030045c0
@@ -93911,7 +89675,7 @@ _08038F20:
lsls r2, 9
adds r2, r3
movs r1, 0x28
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038F38: .4byte 0x030045c0
@@ -93924,7 +89688,7 @@ _08038F3C:
lsls r2, 9
adds r2, r3
movs r1, 0x29
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038F54: .4byte 0x030045c0
@@ -93937,7 +89701,7 @@ _08038F58:
lsls r2, 9
adds r2, r3
movs r1, 0x2A
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038F70: .4byte 0x030045c0
@@ -93950,7 +89714,7 @@ _08038F74:
lsls r2, 9
adds r2, r3
movs r1, 0x2B
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038F8C: .4byte 0x030045c0
@@ -93964,7 +89728,7 @@ _08038F90:
adds r2, r3
_08038F9E:
movs r1, 0x2C
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038FA8: .4byte 0x030045c0
@@ -93977,7 +89741,7 @@ _08038FAC:
lsls r2, 9
adds r2, r3
movs r1, 0
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038FC4: .4byte 0x030045c0
@@ -93990,7 +89754,7 @@ _08038FC8:
lsls r2, 9
adds r2, r3
movs r1, 0x9
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038FE0: .4byte 0x030045c0
@@ -94003,7 +89767,7 @@ _08038FE4:
lsls r2, 9
adds r2, r3
movs r1, 0x37
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08038FFC: .4byte 0x030045c0
@@ -94016,7 +89780,7 @@ _08039000:
lsls r2, 9
adds r2, r3
movs r1, 0x38
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08039018: .4byte 0x030045c0
@@ -94029,7 +89793,7 @@ _0803901C:
lsls r2, 9
adds r2, r3
movs r1, 0x39
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08039034: .4byte 0x030045c0
@@ -94042,7 +89806,7 @@ _08039038:
lsls r2, 9
adds r2, r3
movs r1, 0x3A
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08039050: .4byte 0x030045c0
@@ -94055,7 +89819,7 @@ _08039054:
lsls r2, 9
adds r2, r3
movs r1, 0x3B
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_0803906C: .4byte 0x030045c0
@@ -94068,7 +89832,7 @@ _08039070:
lsls r2, 9
adds r2, r3
movs r1, 0x3C
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08039088: .4byte 0x030045c0
@@ -94081,7 +89845,7 @@ _0803908C:
lsls r2, 9
adds r2, r3
movs r1, 0x3D
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_080390A4: .4byte 0x030045c0
@@ -94094,7 +89858,7 @@ _080390A8:
lsls r2, 9
adds r2, r3
movs r1, 0x3E
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_080390C0: .4byte 0x030045c0
@@ -94107,7 +89871,7 @@ _080390C4:
lsls r2, 9
adds r2, r3
movs r1, 0x3F
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_080390DC: .4byte 0x030045c0
@@ -94120,7 +89884,7 @@ _080390E0:
lsls r2, 9
adds r2, r3
movs r1, 0x16
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_080390F8: .4byte 0x030045c0
@@ -94133,7 +89897,7 @@ _080390FC:
lsls r2, 9
adds r2, r3
movs r1, 0x17
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08039114: .4byte 0x030045c0
@@ -94146,7 +89910,7 @@ _08039118:
lsls r2, 9
adds r2, r3
movs r1, 0x18
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08039130: .4byte 0x030045c0
@@ -94159,7 +89923,7 @@ _08039134:
lsls r2, 9
adds r2, r3
movs r1, 0x21
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_0803914C: .4byte 0x030045c0
@@ -94172,7 +89936,7 @@ _08039150:
lsls r2, 9
adds r2, r3
movs r1, 0x2F
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08039168: .4byte 0x030045c0
@@ -94185,7 +89949,7 @@ _0803916C:
lsls r2, 9
adds r2, r3
movs r1, 0x30
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_08039184: .4byte 0x030045c0
@@ -94198,7 +89962,7 @@ _08039188:
lsls r2, 9
adds r2, r3
movs r1, 0x32
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_080391A0: .4byte 0x030045c0
@@ -94211,7 +89975,7 @@ _080391A4:
lsls r2, 9
adds r2, r3
movs r1, 0x33
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_080391BC: .4byte 0x030045c0
@@ -94224,7 +89988,7 @@ _080391C0:
lsls r2, 9
adds r2, r3
movs r1, 0x34
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_080391D8: .4byte 0x030045c0
@@ -94237,7 +90001,7 @@ _080391DC:
lsls r2, 9
adds r2, r3
movs r1, 0x35
- bl pokemon_setattr
+ bl SetMonData
b _0803920C
.align 2, 0
_080391F4: .4byte 0x030045c0
@@ -94250,7 +90014,7 @@ _080391F8:
lsls r2, 9
adds r2, r3
movs r1, 0x36
- bl pokemon_setattr
+ bl SetMonData
_0803920C:
add sp, 0x38
pop {r3-r5}
@@ -94345,7 +90109,7 @@ sub_8039294: @ 8039294
mov r9, r1
add r0, r9
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
@@ -94364,7 +90128,7 @@ sub_8039294: @ 8039294
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl gpu_pal_obj_decompress_and_apply
+ bl GetMonSpriteTemplate_803C56C
ldr r0, _080393C8
mov r8, r0
ldrb r0, [r6]
@@ -94442,7 +90206,7 @@ sub_8039294: @ 8039294
adds r0, r1, 0
add r0, r9
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -94543,7 +90307,7 @@ sub_8039430: @ 8039430
ldr r5, _08039594
adds r0, r5
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
lsls r0, 16
lsrs r0, 16
@@ -94568,7 +90332,7 @@ sub_8039430: @ 8039430
lsls r1, 24
lsrs r1, 24
mov r0, r8
- bl gpu_pal_obj_decompress_and_apply
+ bl GetMonSpriteTemplate_803C56C
ldr r0, _080395A0
mov r9, r0
adds r0, r6, 0
@@ -94883,7 +90647,7 @@ _08039724:
lsls r1, 24
lsrs r1, 24
mov r0, r9
- bl sub_803C5A0
+ bl GetMonSpriteTemplate_803C5A0
ldr r6, _08039874
lsls r5, 16
movs r2, 0xB0
@@ -95699,7 +91463,7 @@ sub_8039D80: @ 8039D80
ldr r4, _08039E08
adds r0, r4
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
mov r8, r0
mov r1, r9
ldrb r0, [r1]
@@ -95709,7 +91473,7 @@ sub_8039D80: @ 8039D80
muls r0, r5
adds r0, r4
movs r1, 0x39
- bl PokemonGetField
+ bl GetMonData
adds r3, r0, 0
mov r1, r9
ldrb r0, [r1]
@@ -95737,7 +91501,7 @@ _08039E10:
ldr r1, _08039E5C
adds r0, r1
movs r1, 0x3A
- bl PokemonGetField
+ bl GetMonData
adds r2, r0, 0
mov r1, r9
ldrb r0, [r1]
@@ -96173,7 +91937,7 @@ sub_803A148: @ 803A148
ldr r1, _0803A180
adds r0, r1
movs r1, 0xB
- bl PokemonGetField
+ bl GetMonData
lsls r0, 16
lsrs r0, 16
movs r1, 0x19
@@ -96844,13477 +92608,4 @@ nullsub_48: @ 803A6BC
bx lr
thumb_func_end nullsub_48
- thumb_func_start zero_pokemon_boxed_data
-zero_pokemon_boxed_data: @ 803A6C0
- push {lr}
- adds r2, r0, 0
- movs r1, 0
- movs r3, 0
-_0803A6C8:
- adds r0, r2, r1
- strb r3, [r0]
- adds r1, 0x1
- cmp r1, 0x4F
- bls _0803A6C8
- pop {r0}
- bx r0
- thumb_func_end zero_pokemon_boxed_data
-
- thumb_func_start zero_pokemon_struct
-zero_pokemon_struct: @ 803A6D8
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- bl zero_pokemon_boxed_data
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x37
- mov r2, sp
- bl pokemon_setattr
- adds r0, r4, 0
- movs r1, 0x38
- mov r2, sp
- bl pokemon_setattr
- adds r0, r4, 0
- movs r1, 0x39
- mov r2, sp
- bl pokemon_setattr
- adds r0, r4, 0
- movs r1, 0x3A
- mov r2, sp
- bl pokemon_setattr
- adds r0, r4, 0
- movs r1, 0x3B
- mov r2, sp
- bl pokemon_setattr
- adds r0, r4, 0
- movs r1, 0x3C
- mov r2, sp
- bl pokemon_setattr
- adds r0, r4, 0
- movs r1, 0x3D
- mov r2, sp
- bl pokemon_setattr
- adds r0, r4, 0
- movs r1, 0x3E
- mov r2, sp
- bl pokemon_setattr
- adds r0, r4, 0
- movs r1, 0x3F
- mov r2, sp
- bl pokemon_setattr
- movs r0, 0xFF
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x40
- mov r2, sp
- bl pokemon_setattr
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end zero_pokemon_struct
-
- thumb_func_start zero_player_party_data
-zero_player_party_data: @ 803A758
- push {r4,r5,lr}
- ldr r4, _0803A774
- movs r0, 0xFA
- lsls r0, 1
- adds r5, r4, r0
-_0803A762:
- adds r0, r4, 0
- bl zero_pokemon_struct
- adds r4, 0x64
- cmp r4, r5
- ble _0803A762
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A774: .4byte 0x03004360
- thumb_func_end zero_player_party_data
-
- thumb_func_start zero_enemy_party_data
-zero_enemy_party_data: @ 803A778
- push {r4,r5,lr}
- ldr r4, _0803A794
- movs r0, 0xFA
- lsls r0, 1
- adds r5, r4, r0
-_0803A782:
- adds r0, r4, 0
- bl zero_pokemon_struct
- adds r4, 0x64
- cmp r4, r5
- ble _0803A782
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A794: .4byte 0x030045c0
- thumb_func_end zero_enemy_party_data
-
- thumb_func_start create_pokemon_set_level
-create_pokemon_set_level: @ 803A798
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x1C
- mov r8, r0
- adds r6, r1, 0
- ldr r4, [sp, 0x34]
- ldr r7, [sp, 0x38]
- ldr r5, [sp, 0x3C]
- lsls r6, 16
- lsrs r6, 16
- add r0, sp, 0x10
- strb r2, [r0]
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r0, r8
- str r3, [sp, 0x18]
- bl zero_pokemon_struct
- str r4, [sp]
- str r7, [sp, 0x4]
- str r5, [sp, 0x8]
- ldr r0, [sp, 0x40]
- str r0, [sp, 0xC]
- mov r0, r8
- adds r1, r6, 0
- add r2, sp, 0x10
- ldrb r2, [r2]
- ldr r3, [sp, 0x18]
- bl create_pokemon
- mov r0, r8
- movs r1, 0x38
- add r2, sp, 0x10
- bl pokemon_setattr
- movs r0, 0xFF
- str r0, [sp, 0x14]
- add r2, sp, 0x14
- mov r0, r8
- movs r1, 0x40
- bl pokemon_setattr
- mov r0, r8
- bl pokemon_calc_effective_stats
- add sp, 0x1C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end create_pokemon_set_level
-
- thumb_func_start create_pokemon
-create_pokemon: @ 803A808
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- adds r7, r0, 0
- ldr r4, [sp, 0x40]
- ldr r0, [sp, 0x48]
- movs r5, 0xE
- add r5, sp
- strh r1, [r5]
- add r6, sp, 0x10
- strb r2, [r6]
- mov r5, sp
- adds r5, 0x11
- strb r3, [r5]
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- adds r0, r7, 0
- bl zero_pokemon_boxed_data
- cmp r4, 0
- beq _0803A844
- ldr r0, [sp, 0x44]
- str r0, [sp, 0x14]
- b _0803A858
-_0803A844:
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- str r4, [sp, 0x14]
-_0803A858:
- add r2, sp, 0x14
- adds r0, r7, 0
- movs r1, 0
- bl PokemonSetEncryptedField
- add r0, sp, 0x18
- mov r9, r0
- add r5, sp, 0xC
- mov r1, r10
- cmp r1, 0x2
- bne _0803A8B0
- ldr r2, _0803A8A8
- mov r8, r2
- ldr r6, _0803A8AC
-_0803A874:
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- str r4, [sp, 0x18]
- adds r1, r4, 0
- mov r3, r8
- ands r1, r3
- lsrs r1, 16
- ands r4, r6
- eors r1, r4
- ldr r2, [sp, 0x14]
- adds r0, r2, 0
- ands r0, r3
- lsrs r0, 16
- eors r1, r0
- ands r2, r6
- eors r1, r2
- cmp r1, 0x7
- bls _0803A874
- b _0803A8D4
- .align 2, 0
-_0803A8A8: .4byte 0xffff0000
-_0803A8AC: .4byte 0x0000ffff
-_0803A8B0:
- mov r0, r10
- cmp r0, 0x1
- bne _0803A8BC
- ldr r0, [sp, 0x4C]
- str r0, [sp, 0x18]
- b _0803A8D4
-_0803A8BC:
- ldr r2, _0803AA00
- ldrb r1, [r2, 0xA]
- ldrb r0, [r2, 0xB]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0xC]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0xD]
- lsls r0, 24
- orrs r1, r0
- str r1, [sp, 0x18]
-_0803A8D4:
- adds r0, r7, 0
- movs r1, 0x1
- mov r2, r9
- bl PokemonSetEncryptedField
- adds r0, r7, 0
- bl pokemon_calc_checksum
- strh r0, [r5]
- adds r0, r7, 0
- movs r1, 0x9
- adds r2, r5, 0
- bl PokemonSetEncryptedField
- adds r0, r7, 0
- bl pokemon_encrypt
- mov r0, sp
- ldrh r1, [r0, 0xE]
- bl GetSpeciesName
- adds r0, r7, 0
- movs r1, 0x2
- mov r2, sp
- bl PokemonSetEncryptedField
- ldr r2, _0803AA04
- adds r0, r7, 0
- movs r1, 0x3
- bl PokemonSetEncryptedField
- ldr r5, _0803AA00
- adds r0, r7, 0
- movs r1, 0x7
- adds r2, r5, 0
- bl PokemonSetEncryptedField
- adds r0, r7, 0
- movs r1, 0xB
- mov r2, sp
- adds r2, 0xE
- bl PokemonSetEncryptedField
- ldr r4, _0803AA08
- mov r2, sp
- ldrh r1, [r2, 0xE]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- adds r2, r1, 0
- muls r2, r0
- mov r3, sp
- ldrb r0, [r3, 0x10]
- lsls r0, 2
- ldr r1, _0803AA0C
- adds r0, r1
- adds r2, r0
- adds r0, r7, 0
- movs r1, 0x19
- bl PokemonSetEncryptedField
- mov r1, sp
- ldrh r0, [r1, 0xE]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- adds r4, 0x12
- adds r2, r4
- adds r0, r7, 0
- movs r1, 0x20
- bl PokemonSetEncryptedField
- bl sav1_map_get_name
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
- adds r0, r7, 0
- movs r1, 0x23
- mov r2, r9
- bl PokemonSetEncryptedField
- adds r0, r7, 0
- movs r1, 0x24
- add r2, sp, 0x10
- bl PokemonSetEncryptedField
- ldr r2, _0803AA10
- adds r0, r7, 0
- movs r1, 0x25
- bl PokemonSetEncryptedField
- movs r0, 0x4
- str r0, [sp, 0x18]
- adds r0, r7, 0
- movs r1, 0x26
- mov r2, r9
- bl PokemonSetEncryptedField
- adds r5, 0x8
- adds r0, r7, 0
- movs r1, 0x31
- adds r2, r5, 0
- bl PokemonSetEncryptedField
- mov r2, sp
- ldrb r0, [r2, 0x11]
- cmp r0, 0x1F
- bhi _0803AA14
- adds r0, r7, 0
- movs r1, 0x27
- adds r2, 0x11
- bl PokemonSetEncryptedField
- adds r0, r7, 0
- movs r1, 0x28
- mov r2, sp
- adds r2, 0x11
- bl PokemonSetEncryptedField
- adds r0, r7, 0
- movs r1, 0x29
- mov r2, sp
- adds r2, 0x11
- bl PokemonSetEncryptedField
- adds r0, r7, 0
- movs r1, 0x2A
- mov r2, sp
- adds r2, 0x11
- bl PokemonSetEncryptedField
- adds r0, r7, 0
- movs r1, 0x2B
- mov r2, sp
- adds r2, 0x11
- bl PokemonSetEncryptedField
- adds r0, r7, 0
- movs r1, 0x2C
- mov r2, sp
- adds r2, 0x11
- bl PokemonSetEncryptedField
- b _0803AA9C
- .align 2, 0
-_0803AA00: .4byte gSaveBlock2
-_0803AA04: .4byte gGameLanguage
-_0803AA08: .4byte gBaseStats
-_0803AA0C: .4byte gExperienceTables
-_0803AA10: .4byte gGameVersion
-_0803AA14:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
- movs r3, 0x1F
- mov r8, r3
- ands r0, r3
- str r0, [sp, 0x1C]
- add r4, sp, 0x1C
- adds r0, r7, 0
- movs r1, 0x27
- adds r2, r4, 0
- bl PokemonSetEncryptedField
- ldr r0, [sp, 0x18]
- movs r6, 0xF8
- lsls r6, 2
- ands r0, r6
- lsrs r0, 5
- str r0, [sp, 0x1C]
- adds r0, r7, 0
- movs r1, 0x28
- adds r2, r4, 0
- bl PokemonSetEncryptedField
- ldr r0, [sp, 0x18]
- movs r5, 0xF8
- lsls r5, 7
- ands r0, r5
- lsrs r0, 10
- str r0, [sp, 0x1C]
- adds r0, r7, 0
- movs r1, 0x29
- adds r2, r4, 0
- bl PokemonSetEncryptedField
- bl Random
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
- mov r1, r8
- ands r0, r1
- str r0, [sp, 0x1C]
- adds r0, r7, 0
- movs r1, 0x2A
- adds r2, r4, 0
- bl PokemonSetEncryptedField
- ldr r0, [sp, 0x18]
- ands r0, r6
- lsrs r0, 5
- str r0, [sp, 0x1C]
- adds r0, r7, 0
- movs r1, 0x2B
- adds r2, r4, 0
- bl PokemonSetEncryptedField
- ldr r0, [sp, 0x18]
- ands r0, r5
- lsrs r0, 10
- str r0, [sp, 0x1C]
- adds r0, r7, 0
- movs r1, 0x2C
- adds r2, r4, 0
- bl PokemonSetEncryptedField
-_0803AA9C:
- ldr r2, _0803AAD8
- mov r3, sp
- ldrh r1, [r3, 0xE]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x17]
- cmp r0, 0
- beq _0803AAC2
- ldr r0, [sp, 0x14]
- movs r1, 0x1
- ands r0, r1
- str r0, [sp, 0x18]
- adds r0, r7, 0
- movs r1, 0x2E
- mov r2, r9
- bl PokemonSetEncryptedField
-_0803AAC2:
- adds r0, r7, 0
- bl sub_803B720
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803AAD8: .4byte gBaseStats
- thumb_func_end create_pokemon
-
- thumb_func_start pokemon_make_with_nature
-pokemon_make_with_nature: @ 803AADC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- mov r9, r0
- ldr r0, [sp, 0x2C]
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- lsls r0, 24
- lsrs r5, r0, 24
-_0803AAFC:
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- adds r0, r4, 0
- bl GetNatureFromPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- bne _0803AAFC
- movs r0, 0x1
- str r0, [sp]
- str r4, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- mov r0, r9
- mov r1, r8
- adds r2, r7, 0
- adds r3, r6, 0
- bl create_pokemon_set_level
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end pokemon_make_with_nature
-
- thumb_func_start unref_sub_803AB44
-unref_sub_803AB44: @ 803AB44
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- str r0, [sp, 0x10]
- ldr r4, [sp, 0x38]
- ldr r5, [sp, 0x3C]
- ldr r0, [sp, 0x40]
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x14]
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- lsls r5, 24
- lsrs r6, r5, 24
- lsls r0, 24
- lsrs r1, r0, 24
- mov r9, r1
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1B
- bhi _0803ABEA
-_0803AB84:
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r4
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r4
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r4
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r4
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- bl GetNatureFromPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bne _0803AB84
- adds r0, r7, 0
- adds r1, r4, 0
- bl pokemon_species_get_gender_info
- lsls r0, 24
- lsrs r0, 24
- cmp r8, r0
- bne _0803AB84
- mov r0, r9
- subs r0, 0x1
- cmp r5, r0
- bne _0803AB84
- b _0803AC1A
-_0803ABEA:
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- adds r0, r4, 0
- bl GetNatureFromPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bne _0803ABEA
- adds r0, r7, 0
- adds r1, r4, 0
- bl pokemon_species_get_gender_info
- lsls r0, 24
- lsrs r0, 24
- cmp r8, r0
- bne _0803ABEA
-_0803AC1A:
- movs r0, 0x1
- str r0, [sp]
- str r4, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- ldr r0, [sp, 0x10]
- adds r1, r7, 0
- ldr r2, [sp, 0x14]
- mov r3, r10
- bl create_pokemon_set_level
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_803AB44
-
- thumb_func_start sub_803AC44
-sub_803AC44: @ 803AC44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- mov r8, r0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r7, r2, 24
-_0803AC56:
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r5, r4, 16
- lsls r0, 16
- orrs r5, r0
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- adds r0, r6, 0
- adds r1, r4, 0
- bl pokemon_species_get_gender_info
- lsls r0, 24
- cmp r0, 0
- bne _0803AC56
- movs r0, 0x1
- str r0, [sp]
- str r4, [sp, 0x4]
- str r0, [sp, 0x8]
- str r5, [sp, 0xC]
- mov r0, r8
- adds r1, r6, 0
- adds r2, r7, 0
- movs r3, 0x20
- bl create_pokemon_set_level
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_803AC44
-
- thumb_func_start sub_803ACAC
-sub_803ACAC: @ 803ACAC
- push {r4,lr}
- sub sp, 0x14
- adds r4, r0, 0
- str r3, [sp, 0x10]
- ldr r3, [sp, 0x1C]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0x1
- str r0, [sp]
- str r3, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r4, 0
- movs r3, 0
- bl create_pokemon_set_level
- adds r0, r4, 0
- movs r1, 0x42
- add r2, sp, 0x10
- bl pokemon_setattr
- adds r0, r4, 0
- bl pokemon_calc_effective_stats
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_803ACAC
-
- thumb_func_start unref_sub_803ACEC
-unref_sub_803ACEC: @ 803ACEC
- push {r4,r5,lr}
- sub sp, 0x10
- adds r5, r0, 0
- adds r4, r3, 0
- ldr r3, [sp, 0x1C]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- str r3, [sp, 0xC]
- adds r0, r5, 0
- movs r3, 0
- bl create_pokemon_set_level
- adds r0, r5, 0
- movs r1, 0x27
- adds r2, r4, 0
- bl pokemon_setattr
- adds r2, r4, 0x1
- adds r0, r5, 0
- movs r1, 0x28
- bl pokemon_setattr
- adds r2, r4, 0x2
- adds r0, r5, 0
- movs r1, 0x29
- bl pokemon_setattr
- adds r2, r4, 0x3
- adds r0, r5, 0
- movs r1, 0x2A
- bl pokemon_setattr
- adds r2, r4, 0x4
- adds r0, r5, 0
- movs r1, 0x2B
- bl pokemon_setattr
- adds r4, 0x5
- adds r0, r5, 0
- movs r1, 0x2C
- adds r2, r4, 0
- bl pokemon_setattr
- adds r0, r5, 0
- bl pokemon_calc_effective_stats
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_803ACEC
-
- thumb_func_start pokemon_make_ev_something
-pokemon_make_ev_something: @ 803AD60
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r7, r0, 0
- ldr r0, [sp, 0x2C]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r6, 0
- str r6, [sp]
- str r6, [sp, 0x4]
- str r6, [sp, 0x8]
- str r6, [sp, 0xC]
- adds r0, r7, 0
- bl create_pokemon_set_level
- mov r4, r8
- movs r1, 0x1
- movs r5, 0x5
-_0803AD94:
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0803AD9E
- adds r6, 0x1
-_0803AD9E:
- lsrs r4, 1
- subs r5, 0x1
- cmp r5, 0
- bge _0803AD94
- movs r0, 0xFF
- lsls r0, 1
- adds r1, r6, 0
- bl __divsi3
- add r1, sp, 0x10
- strh r0, [r1]
- movs r4, 0x1
- movs r5, 0
-_0803ADB8:
- mov r0, r8
- ands r0, r4
- cmp r0, 0
- beq _0803ADCC
- adds r1, r5, 0
- adds r1, 0x1A
- adds r0, r7, 0
- add r2, sp, 0x10
- bl pokemon_setattr
-_0803ADCC:
- lsls r0, r4, 25
- lsrs r4, r0, 24
- adds r5, 0x1
- cmp r5, 0x5
- ble _0803ADB8
- adds r0, r7, 0
- bl pokemon_calc_effective_stats
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end pokemon_make_ev_something
-
- thumb_func_start sub_803ADE8
-sub_803ADE8: @ 803ADE8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x20
- adds r7, r0, 0
- adds r6, r1, 0
- ldrh r1, [r6]
- ldrb r2, [r6, 0xC]
- movs r3, 0x1
- str r3, [sp]
- ldr r0, [r6, 0x1C]
- str r0, [sp, 0x4]
- str r3, [sp, 0x8]
- ldr r0, [r6, 0x14]
- str r0, [sp, 0xC]
- adds r0, r7, 0
- movs r3, 0
- bl create_pokemon_set_level
- movs r5, 0
- add r0, sp, 0x1C
- mov r9, r0
- movs r1, 0x1D
- add r1, sp
- mov r8, r1
- adds r4, r6, 0x4
-_0803AE1E:
- ldrh r1, [r4]
- lsls r2, r5, 24
- lsrs r2, 24
- adds r0, r7, 0
- bl sub_803B6A4
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _0803AE1E
- adds r2, r6, 0
- adds r2, 0xD
- adds r0, r7, 0
- movs r1, 0x15
- bl pokemon_setattr
- adds r2, r6, 0x2
- adds r0, r7, 0
- movs r1, 0xC
- bl pokemon_setattr
- adds r1, r6, 0
- adds r1, 0x20
- add r0, sp, 0x10
- bl StringCopy
- add r0, sp, 0x10
- ldrb r0, [r0]
- cmp r0, 0xFC
- bne _0803AE66
- add r0, sp, 0x10
- ldrb r0, [r0, 0x1]
- cmp r0, 0x15
- bne _0803AE66
- movs r0, 0x1
- b _0803AE68
-_0803AE66:
- movs r0, 0x2
-_0803AE68:
- mov r1, r9
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x3
- mov r2, r9
- bl pokemon_setattr
- add r0, sp, 0x10
- bl SkipExtCtrlCodes
- adds r0, r7, 0
- movs r1, 0x2
- add r2, sp, 0x10
- bl pokemon_setattr
- adds r2, r6, 0
- adds r2, 0x2B
- adds r0, r7, 0
- movs r1, 0x20
- bl pokemon_setattr
- adds r2, r6, 0
- adds r2, 0xE
- adds r0, r7, 0
- movs r1, 0x1A
- bl pokemon_setattr
- adds r2, r6, 0
- adds r2, 0xF
- adds r0, r7, 0
- movs r1, 0x1B
- bl pokemon_setattr
- adds r2, r6, 0
- adds r2, 0x10
- adds r0, r7, 0
- movs r1, 0x1C
- bl pokemon_setattr
- adds r2, r6, 0
- adds r2, 0x11
- adds r0, r7, 0
- movs r1, 0x1D
- bl pokemon_setattr
- adds r2, r6, 0
- adds r2, 0x12
- adds r0, r7, 0
- movs r1, 0x1E
- bl pokemon_setattr
- adds r2, r6, 0
- adds r2, 0x13
- adds r0, r7, 0
- movs r1, 0x1F
- bl pokemon_setattr
- ldrb r0, [r6, 0x1B]
- lsrs r0, 7
- mov r1, r8
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x2E
- mov r2, r8
- bl pokemon_setattr
- ldrb r0, [r6, 0x18]
- lsls r0, 27
- lsrs r0, 27
- mov r1, r8
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x27
- mov r2, r8
- bl pokemon_setattr
- ldrh r0, [r6, 0x18]
- lsls r0, 22
- lsrs r0, 27
- mov r1, r8
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x28
- mov r2, r8
- bl pokemon_setattr
- ldrb r0, [r6, 0x19]
- lsls r0, 25
- lsrs r0, 27
- mov r1, r8
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x29
- mov r2, r8
- bl pokemon_setattr
- ldr r0, [r6, 0x18]
- lsls r0, 12
- lsrs r0, 27
- mov r1, r8
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x2A
- mov r2, r8
- bl pokemon_setattr
- ldrh r0, [r6, 0x1A]
- lsls r0, 23
- lsrs r0, 27
- mov r1, r8
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x2B
- mov r2, r8
- bl pokemon_setattr
- ldrb r0, [r6, 0x1B]
- lsls r0, 26
- lsrs r0, 27
- mov r1, r8
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x2C
- mov r2, r8
- bl pokemon_setattr
- adds r0, r7, 0
- bl pokemon_calc_effective_stats
- add sp, 0x20
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_803ADE8
-
- thumb_func_start sub_803AF78
-sub_803AF78: @ 803AF78
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- adds r6, r1, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- strh r0, [r6]
- adds r0, r7, 0
- movs r1, 0xC
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803AFA2
- movs r0, 0
-_0803AFA2:
- strh r0, [r6, 0x2]
- movs r5, 0
- movs r0, 0x2B
- adds r0, r6
- mov r8, r0
- movs r1, 0x20
- adds r1, r6
- mov r9, r1
- adds r4, r6, 0x4
-_0803AFB4:
- adds r1, r5, 0
- adds r1, 0xD
- adds r0, r7, 0
- movs r2, 0
- bl PokemonGetField
- strh r0, [r4]
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _0803AFB4
- adds r0, r7, 0
- movs r1, 0x38
- movs r2, 0
- bl PokemonGetField
- strb r0, [r6, 0xC]
- adds r0, r7, 0
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- strb r0, [r6, 0xD]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0
- bl PokemonGetField
- str r0, [r6, 0x14]
- adds r0, r7, 0
- movs r1, 0x1A
- movs r2, 0
- bl PokemonGetField
- strb r0, [r6, 0xE]
- adds r0, r7, 0
- movs r1, 0x1B
- movs r2, 0
- bl PokemonGetField
- strb r0, [r6, 0xF]
- adds r0, r7, 0
- movs r1, 0x1C
- movs r2, 0
- bl PokemonGetField
- strb r0, [r6, 0x10]
- adds r0, r7, 0
- movs r1, 0x1D
- movs r2, 0
- bl PokemonGetField
- strb r0, [r6, 0x11]
- adds r0, r7, 0
- movs r1, 0x1E
- movs r2, 0
- bl PokemonGetField
- strb r0, [r6, 0x12]
- adds r0, r7, 0
- movs r1, 0x1F
- movs r2, 0
- bl PokemonGetField
- strb r0, [r6, 0x13]
- adds r0, r7, 0
- movs r1, 0x20
- movs r2, 0
- bl PokemonGetField
- mov r1, r8
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x27
- movs r2, 0
- bl PokemonGetField
- movs r4, 0x1F
- ands r0, r4
- ldrb r2, [r6, 0x18]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r6, 0x18]
- adds r0, r7, 0
- movs r1, 0x28
- movs r2, 0
- bl PokemonGetField
- movs r5, 0x1F
- ands r0, r5
- lsls r0, 5
- ldrh r2, [r6, 0x18]
- ldr r1, _0803B118
- ands r1, r2
- orrs r1, r0
- strh r1, [r6, 0x18]
- adds r0, r7, 0
- movs r1, 0x29
- movs r2, 0
- bl PokemonGetField
- ands r0, r4
- lsls r0, 2
- ldrb r2, [r6, 0x19]
- movs r1, 0x7D
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r6, 0x19]
- adds r0, r7, 0
- movs r1, 0x2A
- movs r2, 0
- bl PokemonGetField
- movs r1, 0x1F
- ands r1, r0
- lsls r1, 15
- ldr r0, [r6, 0x18]
- ldr r2, _0803B11C
- ands r0, r2
- orrs r0, r1
- str r0, [r6, 0x18]
- adds r0, r7, 0
- movs r1, 0x2B
- movs r2, 0
- bl PokemonGetField
- ands r0, r5
- lsls r0, 4
- ldrh r2, [r6, 0x1A]
- ldr r1, _0803B120
- ands r1, r2
- orrs r1, r0
- strh r1, [r6, 0x1A]
- adds r0, r7, 0
- movs r1, 0x2C
- movs r2, 0
- bl PokemonGetField
- ands r0, r4
- lsls r0, 1
- ldrb r2, [r6, 0x1B]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r6, 0x1B]
- adds r0, r7, 0
- movs r1, 0x2E
- movs r2, 0
- bl PokemonGetField
- lsls r0, 7
- ldrb r2, [r6, 0x1B]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r6, 0x1B]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0
- bl PokemonGetField
- str r0, [r6, 0x1C]
- adds r0, r7, 0
- movs r1, 0x2
- mov r2, r9
- bl PokemonGetField
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803B118: .4byte 0xfffffc1f
-_0803B11C: .4byte 0xfff07fff
-_0803B120: .4byte 0xfffffe0f
- thumb_func_end sub_803AF78
-
- thumb_func_start pokemon_calc_checksum
-pokemon_calc_checksum: @ 803B124
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- movs r6, 0
- ldr r1, [r4]
- movs r2, 0
- bl sub_803C638
- adds r5, r0, 0
- ldr r1, [r4]
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_803C638
- adds r7, r0, 0
- ldr r1, [r4]
- adds r0, r4, 0
- movs r2, 0x2
- bl sub_803C638
- mov r8, r0
- ldr r1, [r4]
- adds r0, r4, 0
- movs r2, 0x3
- bl sub_803C638
- adds r3, r0, 0
- movs r1, 0x5
-_0803B15E:
- ldrh r0, [r5]
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
- adds r5, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _0803B15E
- adds r2, r7, 0
- movs r1, 0x5
-_0803B172:
- ldrh r0, [r2]
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _0803B172
- mov r2, r8
- movs r1, 0x5
-_0803B186:
- ldrh r0, [r2]
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _0803B186
- adds r2, r3, 0
- movs r1, 0x5
-_0803B19A:
- ldrh r0, [r2]
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _0803B19A
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end pokemon_calc_checksum
-
- thumb_func_start pokemon_calc_effective_stats
-pokemon_calc_effective_stats: @ 803B1B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x40
- adds r5, r0, 0
- movs r1, 0x3A
- movs r2, 0
- bl PokemonGetField
- mov r8, r0
- adds r0, r5, 0
- movs r1, 0x39
- movs r2, 0
- bl PokemonGetField
- str r0, [sp, 0x1C]
- adds r0, r5, 0
- movs r1, 0x27
- movs r2, 0
- bl PokemonGetField
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0x1A
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0x28
- movs r2, 0
- bl PokemonGetField
- mov r10, r0
- adds r0, r5, 0
- movs r1, 0x1B
- movs r2, 0
- bl PokemonGetField
- mov r9, r0
- adds r0, r5, 0
- movs r1, 0x29
- movs r2, 0
- bl PokemonGetField
- str r0, [sp, 0x20]
- adds r0, r5, 0
- movs r1, 0x1C
- movs r2, 0
- bl PokemonGetField
- str r0, [sp, 0x24]
- adds r0, r5, 0
- movs r1, 0x2A
- movs r2, 0
- bl PokemonGetField
- str r0, [sp, 0x28]
- adds r0, r5, 0
- movs r1, 0x1D
- movs r2, 0
- bl PokemonGetField
- str r0, [sp, 0x2C]
- adds r0, r5, 0
- movs r1, 0x2B
- movs r2, 0
- bl PokemonGetField
- str r0, [sp, 0x30]
- adds r0, r5, 0
- movs r1, 0x1E
- movs r2, 0
- bl PokemonGetField
- str r0, [sp, 0x34]
- adds r0, r5, 0
- movs r1, 0x2C
- movs r2, 0
- bl PokemonGetField
- str r0, [sp, 0x38]
- adds r0, r5, 0
- movs r1, 0x1F
- movs r2, 0
- bl PokemonGetField
- str r0, [sp, 0x3C]
- adds r0, r5, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r5, 0
- bl level_by_exp
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0x38
- mov r2, sp
- bl pokemon_setattr
- ldr r0, _0803B2A0
- cmp r7, r0
- bne _0803B2A4
- movs r0, 0x1
- str r0, [sp, 0x4]
- lsls r6, r7, 3
- b _0803B2D2
- .align 2, 0
-_0803B2A0: .4byte 0x0000012f
-_0803B2A4:
- ldr r1, _0803B470
- lsls r2, r7, 3
- subs r0, r2, r7
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r1, r0, r6
- adds r0, r4, 0
- adds r6, r2, 0
- cmp r0, 0
- bge _0803B2BE
- adds r0, 0x3
-_0803B2BE:
- asrs r0, 2
- adds r0, r1, r0
- ldr r4, [sp]
- muls r0, r4
- movs r1, 0x64
- bl __divsi3
- adds r0, r4
- adds r0, 0xA
- str r0, [sp, 0x4]
-_0803B2D2:
- ldr r1, _0803B474
- add r2, sp, 0x4
- ldrb r0, [r2]
- mov r3, r8
- subs r0, r3
- ldr r3, _0803B478
- adds r1, r3
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _0803B2EC
- movs r0, 0x1
- strb r0, [r1]
-_0803B2EC:
- adds r0, r5, 0
- movs r1, 0x3A
- bl pokemon_setattr
- ldr r0, _0803B470
- subs r1, r6, r7
- lsls r1, 2
- adds r6, r1, r0
- ldrb r0, [r6, 0x1]
- lsls r0, 1
- mov r2, r10
- adds r1, r0, r2
- mov r0, r9
- cmp r0, 0
- bge _0803B30C
- adds r0, 0x3
-_0803B30C:
- asrs r0, 2
- adds r0, r1, r0
- ldr r1, [sp]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, 0x5
- str r0, [sp, 0x8]
- adds r0, r5, 0
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- add r4, sp, 0x8
- ldrh r1, [r4]
- movs r2, 0x1
- bl nature_stat_mod
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- adds r0, r5, 0
- movs r1, 0x3B
- adds r2, r4, 0
- bl pokemon_setattr
- ldrb r0, [r6, 0x2]
- lsls r0, 1
- ldr r3, [sp, 0x20]
- adds r1, r0, r3
- ldr r0, [sp, 0x24]
- cmp r0, 0
- bge _0803B352
- adds r0, 0x3
-_0803B352:
- asrs r0, 2
- adds r0, r1, r0
- ldr r1, [sp]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, 0x5
- str r0, [sp, 0xC]
- adds r0, r5, 0
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- add r4, sp, 0xC
- ldrh r1, [r4]
- movs r2, 0x2
- bl nature_stat_mod
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0x3C
- adds r2, r4, 0
- bl pokemon_setattr
- ldrb r0, [r6, 0x3]
- lsls r0, 1
- ldr r2, [sp, 0x28]
- adds r1, r0, r2
- ldr r0, [sp, 0x2C]
- cmp r0, 0
- bge _0803B398
- adds r0, 0x3
-_0803B398:
- asrs r0, 2
- adds r0, r1, r0
- ldr r1, [sp]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, 0x5
- str r0, [sp, 0x10]
- adds r0, r5, 0
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- add r4, sp, 0x10
- ldrh r1, [r4]
- movs r2, 0x3
- bl nature_stat_mod
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x10]
- adds r0, r5, 0
- movs r1, 0x3D
- adds r2, r4, 0
- bl pokemon_setattr
- ldrb r0, [r6, 0x4]
- lsls r0, 1
- ldr r3, [sp, 0x30]
- adds r1, r0, r3
- ldr r0, [sp, 0x34]
- cmp r0, 0
- bge _0803B3DE
- adds r0, 0x3
-_0803B3DE:
- asrs r0, 2
- adds r0, r1, r0
- ldr r1, [sp]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, 0x5
- str r0, [sp, 0x14]
- adds r0, r5, 0
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- add r4, sp, 0x14
- ldrh r1, [r4]
- movs r2, 0x4
- bl nature_stat_mod
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x14]
- adds r0, r5, 0
- movs r1, 0x3E
- adds r2, r4, 0
- bl pokemon_setattr
- ldrb r0, [r6, 0x5]
- lsls r0, 1
- ldr r2, [sp, 0x38]
- adds r1, r0, r2
- ldr r0, [sp, 0x3C]
- cmp r0, 0
- bge _0803B424
- adds r0, 0x3
-_0803B424:
- asrs r0, 2
- adds r0, r1, r0
- ldr r1, [sp]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, 0x5
- str r0, [sp, 0x18]
- adds r0, r5, 0
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- add r4, sp, 0x18
- ldrh r1, [r4]
- movs r2, 0x5
- bl nature_stat_mod
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
- adds r0, r5, 0
- movs r1, 0x3F
- adds r2, r4, 0
- bl pokemon_setattr
- ldr r0, _0803B47C
- cmp r7, r0
- bne _0803B480
- ldr r0, [sp, 0x1C]
- cmp r0, 0
- bne _0803B46C
- mov r3, r8
- cmp r3, 0
- bne _0803B4A4
-_0803B46C:
- movs r0, 0x1
- b _0803B498
- .align 2, 0
-_0803B470: .4byte gBaseStats
-_0803B474: .4byte 0x02000000
-_0803B478: .4byte 0x000160fa
-_0803B47C: .4byte 0x0000012f
-_0803B480:
- ldr r1, [sp, 0x1C]
- cmp r1, 0
- bne _0803B490
- mov r0, r8
- cmp r0, 0
- bne _0803B4A4
- ldr r0, [sp, 0x4]
- b _0803B498
-_0803B490:
- ldr r0, [sp, 0x4]
- mov r2, r8
- subs r0, r2
- adds r0, r1, r0
-_0803B498:
- str r0, [sp, 0x1C]
- add r2, sp, 0x1C
- adds r0, r5, 0
- movs r1, 0x39
- bl pokemon_setattr
-_0803B4A4:
- add sp, 0x40
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end pokemon_calc_effective_stats
-
- thumb_func_start sub_803B4B4
-sub_803B4B4: @ 803B4B4
- push {r4,lr}
- sub sp, 0x4
- adds r2, r0, 0
- adds r4, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r2, 0
- movs r2, 0x50
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x37
- mov r2, sp
- bl pokemon_setattr
- adds r0, r4, 0
- movs r1, 0x39
- mov r2, sp
- bl pokemon_setattr
- adds r0, r4, 0
- movs r1, 0x3A
- mov r2, sp
- bl pokemon_setattr
- movs r0, 0xFF
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x40
- mov r2, sp
- bl pokemon_setattr
- adds r0, r4, 0
- bl pokemon_calc_effective_stats
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_803B4B4
-
- thumb_func_start level_by_exp
-level_by_exp: @ 803B504
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x19
- movs r2, 0
- bl PokemonGetField
- adds r3, r0, 0
- movs r2, 0x1
- ldr r6, _0803B568
- ldr r1, _0803B56C
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x13]
- movs r5, 0xCA
- lsls r5, 1
- muls r0, r5
- adds r0, 0x4
- adds r0, r6
- ldr r0, [r0]
- cmp r0, r3
- bhi _0803B55A
- adds r4, r1, 0
-_0803B544:
- adds r2, 0x1
- cmp r2, 0x64
- bgt _0803B55A
- lsls r1, r2, 2
- ldrb r0, [r4, 0x13]
- muls r0, r5
- adds r1, r0
- adds r1, r6
- ldr r0, [r1]
- cmp r0, r3
- bls _0803B544
-_0803B55A:
- subs r0, r2, 0x1
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0803B568: .4byte gExperienceTables
-_0803B56C: .4byte gBaseStats
- thumb_func_end level_by_exp
-
- thumb_func_start sub_803B570
-sub_803B570: @ 803B570
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetEncryptedField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x19
- movs r2, 0
- bl PokemonGetEncryptedField
- adds r3, r0, 0
- movs r2, 0x1
- ldr r6, _0803B5D4
- ldr r1, _0803B5D8
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x13]
- movs r5, 0xCA
- lsls r5, 1
- muls r0, r5
- adds r0, 0x4
- adds r0, r6
- ldr r0, [r0]
- cmp r0, r3
- bhi _0803B5C6
- adds r4, r1, 0
-_0803B5B0:
- adds r2, 0x1
- cmp r2, 0x64
- bgt _0803B5C6
- lsls r1, r2, 2
- ldrb r0, [r4, 0x13]
- muls r0, r5
- adds r1, r0
- adds r1, r6
- ldr r0, [r1]
- cmp r0, r3
- bls _0803B5B0
-_0803B5C6:
- subs r0, r2, 0x1
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0803B5D4: .4byte gExperienceTables
-_0803B5D8: .4byte gBaseStats
- thumb_func_end sub_803B570
-
- thumb_func_start pokemon_moveset_pad_
-pokemon_moveset_pad_: @ 803B5DC
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- bl pokemon_moveset_pad
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end pokemon_moveset_pad_
-
- thumb_func_start pokemon_moveset_pad
-pokemon_moveset_pad: @ 803B5F0
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- mov r0, sp
- strh r1, [r0]
- movs r5, 0
- mov r6, sp
-_0803B5FE:
- adds r4, r5, 0
- adds r4, 0xD
- adds r0, r7, 0
- adds r1, r4, 0
- movs r2, 0
- bl PokemonGetEncryptedField
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0803B63C
- adds r0, r7, 0
- adds r1, r4, 0
- mov r2, sp
- bl PokemonSetEncryptedField
- adds r1, r5, 0
- adds r1, 0x11
- ldrh r0, [r6]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- ldr r0, _0803B638
- adds r2, r0
- adds r0, r7, 0
- bl PokemonSetEncryptedField
- ldrh r0, [r6]
- b _0803B654
- .align 2, 0
-_0803B638: .4byte gBattleMoves + 0x4 @ PP offset
-_0803B63C:
- ldrh r1, [r6]
- cmp r0, r1
- bne _0803B64C
- ldr r0, _0803B648
- b _0803B654
- .align 2, 0
-_0803B648: .4byte 0x0000fffe
-_0803B64C:
- adds r5, 0x1
- cmp r5, 0x3
- ble _0803B5FE
- ldr r0, _0803B65C
-_0803B654:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803B65C: .4byte 0x0000ffff
- thumb_func_end pokemon_moveset_pad
-
- thumb_func_start sub_803B660
-sub_803B660: @ 803B660
- push {r4,r5,lr}
- lsls r1, 16
- lsrs r4, r1, 16
- movs r3, 0
- adds r5, r0, 0
- adds r5, 0x24
- ldr r2, _0803B68C
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- adds r2, r1, r2
- adds r1, r0, 0
- adds r1, 0xC
-_0803B67A:
- ldrh r0, [r1]
- cmp r0, 0
- bne _0803B690
- strh r4, [r1]
- adds r1, r5, r3
- ldrb r0, [r2, 0x4]
- strb r0, [r1]
- adds r0, r4, 0
- b _0803B69A
- .align 2, 0
-_0803B68C: .4byte gBattleMoves
-_0803B690:
- adds r1, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _0803B67A
- ldr r0, _0803B6A0
-_0803B69A:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0803B6A0: .4byte 0x0000ffff
- thumb_func_end sub_803B660
-
- thumb_func_start sub_803B6A4
-sub_803B6A4: @ 803B6A4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r4, r2, 0
- mov r0, sp
- strh r1, [r0]
- lsls r4, 24
- lsrs r4, 24
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r5, 0
- mov r2, sp
- bl pokemon_setattr
- adds r4, 0x11
- mov r0, sp
- ldrh r0, [r0]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- ldr r0, _0803B6E0
- adds r2, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl pokemon_setattr
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803B6E0: .4byte gBattleMoves + 0x4 @ PP offset
- thumb_func_end sub_803B6A4
-
- thumb_func_start sub_803B6E4
-sub_803B6E4: @ 803B6E4
- push {r4,lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- lsls r4, r2, 1
- adds r3, r0, 0
- adds r3, 0xC
- adds r3, r4
- strh r1, [r3]
- adds r0, 0x24
- adds r0, r2
- ldr r3, _0803B710
- lsls r2, r1, 1
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrb r1, [r2, 0x4]
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803B710: .4byte gBattleMoves
- thumb_func_end sub_803B6E4
-
- thumb_func_start unref_sub_803B714
-unref_sub_803B714: @ 803B714
- push {lr}
- bl sub_803B720
- pop {r0}
- bx r0
- thumb_func_end unref_sub_803B714
-
- thumb_func_start sub_803B720
-sub_803B720: @ 803B720
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetEncryptedField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- bl sub_803B570
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _0803B7BC
- lsls r6, r4, 2
- adds r0, r6, r0
- ldr r0, [r0]
- ldrh r1, [r0]
- ldr r2, _0803B7C0
- lsrs r0, r2, 16
- cmp r1, r0
- beq _0803B7AC
- mov r9, r2
- movs r3, 0
-_0803B75E:
- ldr r0, _0803B7BC
- adds r7, r6, r0
- ldr r0, [r7]
- adds r0, r3, r0
- ldrh r2, [r0]
- movs r1, 0xFE
- lsls r1, 8
- adds r0, r1, 0
- ands r0, r2
- mov r4, r10
- lsls r1, r4, 9
- cmp r0, r1
- bgt _0803B7AC
- ldr r1, _0803B7C4
- adds r0, r1, 0
- adds r4, r0, 0
- ands r4, r2
- mov r0, r8
- adds r1, r4, 0
- str r3, [sp]
- bl pokemon_moveset_pad
- lsls r0, 16
- mov r1, r9
- lsrs r5, r1, 16
- ldr r3, [sp]
- cmp r0, r9
- bne _0803B7A0
- mov r0, r8
- adds r1, r4, 0
- bl sub_803B980
- ldr r3, [sp]
-_0803B7A0:
- adds r3, 0x2
- ldr r0, [r7]
- adds r0, r3, r0
- ldrh r0, [r0]
- cmp r0, r5
- bne _0803B75E
-_0803B7AC:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803B7BC: .4byte gLevelUpLearnsetPointers
-_0803B7C0: .4byte 0xffff0000
-_0803B7C4: .4byte 0x000001ff
- thumb_func_end sub_803B720
-
- thumb_func_start sub_803B7C8
-sub_803B7C8: @ 803B7C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- lsls r4, r1, 24
- lsrs r4, 24
- movs r0, 0
- str r0, [sp]
- mov r0, r8
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl PokemonGetField
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- cmp r4, 0
- beq _0803B860
- ldr r4, _0803B84C
- mov r1, sp
- ldrb r1, [r1]
- strb r1, [r4]
- ldr r2, _0803B850
- mov r5, r9
- lsls r3, r5, 2
- adds r5, r3, r2
- ldr r0, [r5]
- ldrh r1, [r0]
- movs r7, 0xFE
- lsls r7, 8
- adds r0, r7, 0
- ands r0, r1
- adds r6, r4, 0
- mov r12, r2
- mov r1, r10
- lsls r4, r1, 9
- cmp r0, r4
- beq _0803B888
- adds r2, r6, 0
- ldr r0, _0803B854
- mov r12, r0
- adds r6, r7, 0
- adds r3, r5, 0
-_0803B834:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldrb r0, [r2]
- ldr r1, [r3]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- cmp r1, r12
- bne _0803B858
- movs r0, 0
- b _0803B8B4
- .align 2, 0
-_0803B84C: .4byte 0x02024e88
-_0803B850: .4byte gLevelUpLearnsetPointers
-_0803B854: .4byte 0x0000ffff
-_0803B858:
- adds r0, r6, 0
- ands r0, r1
- cmp r0, r4
- bne _0803B834
-_0803B860:
- ldr r3, _0803B8C4
- mov r1, r9
- lsls r4, r1, 2
- adds r1, r4, r3
- ldr r2, _0803B8C8
- ldrb r0, [r2]
- ldr r1, [r1]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0xFE
- lsls r0, 8
- ands r0, r1
- mov r5, r10
- lsls r1, r5, 9
- adds r6, r2, 0
- mov r12, r3
- adds r3, r4, 0
- cmp r0, r1
- bne _0803B8B2
-_0803B888:
- ldr r2, _0803B8CC
- mov r0, r12
- adds r1, r3, r0
- ldrb r0, [r6]
- ldr r1, [r1]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _0803B8D0
- ands r0, r1
- strh r0, [r2]
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- ldrh r1, [r2]
- mov r0, r8
- bl pokemon_moveset_pad_
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
-_0803B8B2:
- ldr r0, [sp]
-_0803B8B4:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803B8C4: .4byte gLevelUpLearnsetPointers
-_0803B8C8: .4byte 0x02024e88
-_0803B8CC: .4byte 0x02024e82
-_0803B8D0: .4byte 0x000001ff
- thumb_func_end sub_803B7C8
-
- thumb_func_start sub_803B8D4
-sub_803B8D4: @ 803B8D4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- adds r6, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- movs r4, 0
- add r7, sp, 0x8
- add r0, sp, 0xC
- mov r9, r0
- mov r5, sp
-_0803B8F0:
- adds r1, r4, 0
- adds r1, 0xE
- adds r0, r6, 0
- movs r2, 0
- bl PokemonGetField
- strh r0, [r5]
- adds r1, r4, 0
- adds r1, 0x12
- adds r0, r6, 0
- movs r2, 0
- bl PokemonGetField
- adds r1, r7, r4
- strb r0, [r1]
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x2
- ble _0803B8F0
- adds r0, r6, 0
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- mov r1, r9
- strb r0, [r1]
- ldrb r0, [r1]
- lsrs r0, 2
- strb r0, [r1]
- mov r0, sp
- mov r2, r8
- strh r2, [r0, 0x6]
- ldr r1, _0803B97C
- mov r2, r8
- lsls r0, r2, 1
- add r0, r8
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x4]
- strb r0, [r7, 0x3]
- movs r4, 0
- mov r5, sp
-_0803B944:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r6, 0
- adds r2, r5, 0
- bl pokemon_setattr
- adds r1, r4, 0
- adds r1, 0x11
- adds r2, r7, r4
- adds r0, r6, 0
- bl pokemon_setattr
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0803B944
- adds r0, r6, 0
- movs r1, 0x15
- mov r2, r9
- bl pokemon_setattr
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803B97C: .4byte gBattleMoves
- thumb_func_end sub_803B8D4
-
- thumb_func_start sub_803B980
-sub_803B980: @ 803B980
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- adds r6, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- movs r4, 0
- add r7, sp, 0x8
- add r0, sp, 0xC
- mov r9, r0
- mov r5, sp
-_0803B99C:
- adds r1, r4, 0
- adds r1, 0xE
- adds r0, r6, 0
- movs r2, 0
- bl PokemonGetEncryptedField
- strh r0, [r5]
- adds r1, r4, 0
- adds r1, 0x12
- adds r0, r6, 0
- movs r2, 0
- bl PokemonGetEncryptedField
- adds r1, r7, r4
- strb r0, [r1]
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x2
- ble _0803B99C
- adds r0, r6, 0
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetEncryptedField
- mov r1, r9
- strb r0, [r1]
- ldrb r0, [r1]
- lsrs r0, 2
- strb r0, [r1]
- mov r0, sp
- mov r2, r8
- strh r2, [r0, 0x6]
- ldr r1, _0803BA28
- mov r2, r8
- lsls r0, r2, 1
- add r0, r8
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x4]
- strb r0, [r7, 0x3]
- movs r4, 0
- mov r5, sp
-_0803B9F0:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r6, 0
- adds r2, r5, 0
- bl PokemonSetEncryptedField
- adds r1, r4, 0
- adds r1, 0x11
- adds r2, r7, r4
- adds r0, r6, 0
- bl PokemonSetEncryptedField
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0803B9F0
- adds r0, r6, 0
- movs r1, 0x15
- mov r2, r9
- bl PokemonSetEncryptedField
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803BA28: .4byte gBattleMoves
- thumb_func_end sub_803B980
-
- thumb_func_start sub_803BA2C
-sub_803BA2C: @ 803BA2C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- adds r7, r0, 0
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r0, [sp, 0x4C]
- ldr r1, [sp, 0x50]
- ldr r2, [sp, 0x54]
- ldr r4, [sp, 0x58]
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0xC]
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x10]
- lsls r4, 24
- lsrs r4, 24
- movs r5, 0
- cmp r3, 0
- bne _0803BA80
- ldr r2, _0803BA78
- ldr r1, _0803BA7C
- ldr r3, [sp, 0x8]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x1]
- strh r0, [r2]
- b _0803BA84
- .align 2, 0
-_0803BA78: .4byte 0x02024e80
-_0803BA7C: .4byte gBattleMoves
-_0803BA80:
- ldr r0, _0803BA9C
- strh r3, [r0]
-_0803BA84:
- cmp r6, 0
- bne _0803BAA4
- ldr r1, _0803BAA0
- ldr r6, [sp, 0x8]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- mov r9, r0
- b _0803BAAE
- .align 2, 0
-_0803BA9C: .4byte 0x02024e80
-_0803BAA0: .4byte gBattleMoves
-_0803BAA4:
- movs r0, 0x3F
- mov r9, r0
- mov r1, r9
- ands r1, r6
- mov r9, r1
-_0803BAAE:
- ldrh r6, [r7, 0x2]
- ldr r2, [sp, 0x4]
- ldrh r2, [r2, 0x4]
- str r2, [sp, 0x14]
- ldrh r3, [r7, 0x8]
- mov r8, r3
- ldr r0, [sp, 0x4]
- ldrh r0, [r0, 0xA]
- str r0, [sp, 0x18]
- ldrh r0, [r7, 0x2E]
- cmp r0, 0xAF
- bne _0803BAE0
- ldr r1, _0803BADC
- ldr r2, [sp, 0x10]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x7]
- mov r10, r3
- ldrb r0, [r0, 0x1A]
- b _0803BAF6
- .align 2, 0
-_0803BADC: .4byte 0x02024df0
-_0803BAE0:
- ldrh r0, [r7, 0x2E]
- bl itemid_get_x12
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldrh r0, [r7, 0x2E]
- bl itemid_get_quality
- lsls r0, 24
- lsrs r0, 24
-_0803BAF6:
- str r0, [sp, 0x20]
- ldr r1, [sp, 0x4]
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0803BB26
- ldr r1, _0803BB10
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x7]
- str r0, [sp, 0x1C]
- b _0803BB3C
- .align 2, 0
-_0803BB10: .4byte 0x02024df0
-_0803BB14:
- ldr r0, [sp, 0x20]
- adds r0, 0x64
- muls r0, r6
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
- b _0803BCDC
-_0803BB26:
- ldr r2, [sp, 0x4]
- ldrh r0, [r2, 0x2E]
- bl itemid_get_x12
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
- ldr r3, [sp, 0x4]
- ldrh r0, [r3, 0x2E]
- bl itemid_get_quality
-_0803BB3C:
- adds r0, r7, 0
- adds r0, 0x20
- ldrb r1, [r0]
- str r0, [sp, 0x24]
- cmp r1, 0x25
- beq _0803BB4C
- cmp r1, 0x4A
- bne _0803BB50
-_0803BB4C:
- lsls r0, r6, 17
- lsrs r6, r0, 16
-_0803BB50:
- ldr r0, _0803BCB8
- ldrh r1, [r0]
- ldr r0, _0803BCBC
- ands r0, r1
- cmp r0, 0
- beq _0803BB5E
- b _0803BC78
-_0803BB5E:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803BB98
- ldr r0, _0803BCC0
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0803BB98
- ldr r0, _0803BCC4
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0803BB98
- ldr r0, [sp, 0x10]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803BB98
- movs r0, 0x6E
- muls r0, r6
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
-_0803BB98:
- ldr r0, _0803BCB8
- ldrh r1, [r0]
- ldr r0, _0803BCBC
- ands r0, r1
- cmp r0, 0
- bne _0803BC78
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803BBE2
- ldr r0, _0803BCC0
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0803BBE2
- ldr r0, _0803BCC8
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0803BBE2
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803BBE2
- movs r0, 0x6E
- ldr r1, [sp, 0x14]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x14]
-_0803BBE2:
- ldr r0, _0803BCB8
- ldrh r1, [r0]
- ldr r0, _0803BCBC
- ands r0, r1
- cmp r0, 0
- bne _0803BC78
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803BC2E
- ldr r0, _0803BCC0
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0803BC2E
- ldr r0, _0803BCCC
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0803BC2E
- ldr r0, [sp, 0x10]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803BC2E
- movs r0, 0x6E
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0803BC2E:
- ldr r0, _0803BCB8
- ldrh r1, [r0]
- ldr r0, _0803BCBC
- ands r0, r1
- cmp r0, 0
- bne _0803BC78
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803BC78
- ldr r0, _0803BCC0
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0803BC78
- ldr r0, _0803BCCC
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0803BC78
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803BC78
- movs r0, 0x6E
- ldr r3, [sp, 0x18]
- muls r0, r3
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
-_0803BC78:
- movs r2, 0
- ldr r4, _0803BCD0
- ldr r0, [sp, 0x4]
- adds r0, 0x20
- str r0, [sp, 0x28]
- adds r3, r4, 0
-_0803BC84:
- lsls r1, r2, 1
- ldrb r0, [r3]
- cmp r10, r0
- bne _0803BCD4
- adds r0, r4, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r9, r0
- bne _0803BCD4
- mov r1, r9
- cmp r1, 0x8
- bhi _0803BC9E
- b _0803BB14
-_0803BC9E:
- ldr r0, [sp, 0x20]
- adds r0, 0x64
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- b _0803BCDC
- .align 2, 0
-_0803BCB8: .4byte 0x020239f8
-_0803BCBC: .4byte 0x00000902
-_0803BCC0: .4byte 0x0202ff5e
-_0803BCC4: .4byte 0x00000807
-_0803BCC8: .4byte 0x0000080b
-_0803BCCC: .4byte 0x0000080d
-_0803BCD0: .4byte gHoldEffectToType
-_0803BCD4:
- adds r3, 0x2
- adds r2, 0x1
- cmp r2, 0x10
- bls _0803BC84
-_0803BCDC:
- mov r3, r10
- cmp r3, 0x1D
- bne _0803BCF0
- movs r0, 0x96
- muls r0, r6
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
-_0803BCF0:
- mov r0, r10
- cmp r0, 0x22
- bne _0803BD28
- ldr r0, _0803BFDC
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- bne _0803BD28
- ldr r1, _0803BFE0
- adds r0, r1, 0
- ldrh r2, [r7]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0803BD28
- movs r0, 0x96
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0803BD28:
- ldr r0, [sp, 0x1C]
- cmp r0, 0x22
- bne _0803BD60
- ldr r0, _0803BFDC
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- bne _0803BD60
- ldr r1, _0803BFE0
- adds r0, r1, 0
- ldr r2, [sp, 0x4]
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0803BD60
- movs r0, 0x96
- ldr r3, [sp, 0x18]
- muls r0, r3
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
-_0803BD60:
- mov r0, r10
- cmp r0, 0x23
- bne _0803BD76
- ldrh r1, [r7]
- ldr r0, _0803BFE4
- cmp r1, r0
- bne _0803BD76
- mov r1, r8
- lsls r0, r1, 17
- lsrs r0, 16
- mov r8, r0
-_0803BD76:
- ldr r2, [sp, 0x1C]
- cmp r2, 0x24
- bne _0803BD8E
- ldr r3, [sp, 0x4]
- ldrh r1, [r3]
- ldr r0, _0803BFE4
- cmp r1, r0
- bne _0803BD8E
- ldr r1, [sp, 0x18]
- lsls r0, r1, 17
- lsrs r0, 16
- str r0, [sp, 0x18]
-_0803BD8E:
- mov r2, r10
- cmp r2, 0x2D
- bne _0803BDA2
- ldrh r0, [r7]
- cmp r0, 0x19
- bne _0803BDA2
- mov r3, r8
- lsls r0, r3, 17
- lsrs r0, 16
- mov r8, r0
-_0803BDA2:
- ldr r0, [sp, 0x1C]
- cmp r0, 0x40
- bne _0803BDB8
- ldr r1, [sp, 0x4]
- ldrh r0, [r1]
- cmp r0, 0x84
- bne _0803BDB8
- ldr r2, [sp, 0x14]
- lsls r0, r2, 17
- lsrs r0, 16
- str r0, [sp, 0x14]
-_0803BDB8:
- mov r3, r10
- cmp r3, 0x41
- bne _0803BDCE
- ldrh r0, [r7]
- subs r0, 0x68
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0803BDCE
- lsls r0, r6, 17
- lsrs r6, r0, 16
-_0803BDCE:
- ldr r1, [sp, 0x28]
- ldrb r0, [r1]
- cmp r0, 0x2F
- bne _0803BDE6
- mov r2, r9
- cmp r2, 0xA
- beq _0803BDE0
- cmp r2, 0xF
- bne _0803BDE6
-_0803BDE0:
- mov r3, r8
- lsrs r3, 1
- mov r8, r3
-_0803BDE6:
- ldr r0, [sp, 0x24]
- ldrb r4, [r0]
- cmp r4, 0x37
- bne _0803BDFC
- movs r0, 0x96
- muls r0, r6
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
-_0803BDFC:
- cmp r4, 0x39
- bne _0803BE2A
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x3A
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0803BE2A
- movs r0, 0x96
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0803BE2A:
- ldr r2, [sp, 0x24]
- ldrb r0, [r2]
- cmp r0, 0x3A
- bne _0803BE5C
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x39
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0803BE5C
- movs r0, 0x96
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0803BE5C:
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x3E
- bne _0803BE78
- ldr r0, [r7, 0x4C]
- cmp r0, 0
- beq _0803BE78
- movs r0, 0x96
- muls r0, r6
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
-_0803BE78:
- ldr r2, [sp, 0x28]
- ldrb r0, [r2]
- cmp r0, 0x3F
- bne _0803BE9A
- ldr r3, [sp, 0x4]
- ldr r0, [r3, 0x4C]
- cmp r0, 0
- beq _0803BE9A
- movs r0, 0x96
- ldr r1, [sp, 0x14]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x14]
-_0803BE9A:
- mov r2, r9
- cmp r2, 0xD
- bne _0803BEBE
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0
- movs r3, 0xFD
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0803BEBE
- ldr r1, _0803BFE8
- ldrh r0, [r1]
- lsrs r0, 1
- strh r0, [r1]
-_0803BEBE:
- mov r3, r9
- cmp r3, 0xA
- bne _0803BEE2
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0
- movs r3, 0xFE
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0803BEE2
- ldr r1, _0803BFE8
- ldrh r0, [r1]
- lsrs r0, 1
- strh r0, [r1]
-_0803BEE2:
- mov r0, r9
- cmp r0, 0xC
- bne _0803BF12
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x41
- bne _0803BF12
- ldrh r0, [r7, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r7, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0803BF12
- ldr r4, _0803BFE8
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_0803BF12:
- mov r2, r9
- cmp r2, 0xA
- bne _0803BF42
- ldr r3, [sp, 0x24]
- ldrb r0, [r3]
- cmp r0, 0x42
- bne _0803BF42
- ldrh r0, [r7, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r7, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0803BF42
- ldr r4, _0803BFE8
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_0803BF42:
- mov r0, r9
- cmp r0, 0xB
- bne _0803BF72
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x43
- bne _0803BF72
- ldrh r0, [r7, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r7, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0803BF72
- ldr r4, _0803BFE8
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_0803BF72:
- mov r2, r9
- cmp r2, 0x6
- bne _0803BFA2
- ldr r3, [sp, 0x24]
- ldrb r0, [r3]
- cmp r0, 0x44
- bne _0803BFA2
- ldrh r0, [r7, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r7, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0803BFA2
- ldr r4, _0803BFE8
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_0803BFA2:
- ldr r2, _0803BFEC
- ldr r0, _0803BFF0
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _0803BFBC
- ldr r0, [sp, 0x14]
- lsrs r0, 1
- str r0, [sp, 0x14]
-_0803BFBC:
- mov r1, r9
- cmp r1, 0x8
- bls _0803BFC4
- b _0803C122
-_0803BFC4:
- ldr r0, _0803BFF4
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x2
- bne _0803C000
- movs r0, 0x19
- ldrsb r0, [r7, r0]
- cmp r0, 0x6
- ble _0803BFFC
- ldr r2, _0803BFF8
- b _0803C006
- .align 2, 0
-_0803BFDC: .4byte 0x020239f8
-_0803BFE0: .4byte 0xfffffe69
-_0803BFE4: .4byte 0x00000175
-_0803BFE8: .4byte 0x02024e80
-_0803BFEC: .4byte gBattleMoves
-_0803BFF0: .4byte 0x02024be6
-_0803BFF4: .4byte 0x02024c0d
-_0803BFF8: .4byte gStatStageRatios
-_0803BFFC:
- adds r5, r6, 0
- b _0803C01E
-_0803C000:
- ldr r2, _0803C050
- movs r0, 0x19
- ldrsb r0, [r7, r0]
-_0803C006:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- adds r5, r6, 0
- muls r5, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl __divsi3
- adds r5, r0, 0
-_0803C01E:
- ldr r0, _0803C054
- ldrh r0, [r0]
- muls r5, r0
- adds r0, r7, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x5
- bl __divsi3
- adds r0, 0x2
- muls r5, r0
- ldrb r0, [r4]
- cmp r0, 0x2
- bne _0803C05C
- ldr r2, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r2, r0]
- cmp r0, 0x5
- bgt _0803C058
- ldr r2, _0803C050
- ldr r3, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r3, r0]
- b _0803C064
- .align 2, 0
-_0803C050: .4byte gStatStageRatios
-_0803C054: .4byte 0x02024e80
-_0803C058:
- ldr r3, [sp, 0x14]
- b _0803C07E
-_0803C05C:
- ldr r2, _0803C0DC
- ldr r1, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
-_0803C064:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- ldr r6, [sp, 0x14]
- adds r3, r6, 0
- muls r3, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- bl __divsi3
- adds r3, r0, 0
-_0803C07E:
- adds r0, r5, 0
- adds r1, r3, 0
- bl __divsi3
- adds r5, r0, 0
- movs r1, 0x32
- bl __divsi3
- adds r5, r0, 0
- ldr r0, [r7, 0x4C]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0803C0A8
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x3E
- beq _0803C0A8
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C0A8:
- movs r0, 0x1
- ldr r2, [sp, 0xC]
- ands r0, r2
- cmp r0, 0
- beq _0803C0EA
- ldrb r1, [r4]
- cmp r1, 0x1
- bne _0803C0EA
- ldr r0, _0803C0E0
- ldrh r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0803C0E4
- movs r0, 0x2
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803C0E4
- adds r0, r5, 0
- movs r1, 0x3
- bl __divsi3
- lsls r5, r0, 1
- b _0803C0EA
- .align 2, 0
-_0803C0DC: .4byte gStatStageRatios
-_0803C0E0: .4byte 0x020239f8
-_0803C0E4:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C0EA:
- ldr r0, _0803C148
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803C11C
- ldr r0, _0803C14C
- ldr r3, [sp, 0x8]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x6]
- cmp r0, 0x8
- bne _0803C11C
- movs r0, 0x2
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803C11C
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C11C:
- cmp r5, 0
- bne _0803C122
- movs r5, 0x1
-_0803C122:
- mov r6, r9
- cmp r6, 0x9
- bne _0803C12A
- movs r5, 0
-_0803C12A:
- mov r0, r9
- cmp r0, 0x9
- bhi _0803C132
- b _0803C330
-_0803C132:
- ldr r0, _0803C150
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x2
- bne _0803C15C
- movs r0, 0x1C
- ldrsb r0, [r7, r0]
- cmp r0, 0x6
- ble _0803C158
- ldr r2, _0803C154
- b _0803C162
- .align 2, 0
-_0803C148: .4byte 0x020239f8
-_0803C14C: .4byte gBattleMoves
-_0803C150: .4byte 0x02024c0d
-_0803C154: .4byte gStatStageRatios
-_0803C158:
- mov r5, r8
- b _0803C17A
-_0803C15C:
- ldr r2, _0803C1A8
- movs r0, 0x1C
- ldrsb r0, [r7, r0]
-_0803C162:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- mov r5, r8
- muls r5, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl __divsi3
- adds r5, r0, 0
-_0803C17A:
- ldr r0, _0803C1AC
- ldrh r0, [r0]
- muls r5, r0
- adds r0, r7, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x5
- bl __divsi3
- adds r0, 0x2
- muls r5, r0
- ldrb r0, [r4]
- cmp r0, 0x2
- bne _0803C1B4
- ldr r1, [sp, 0x4]
- movs r0, 0x1D
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0803C1B0
- ldr r2, _0803C1A8
- b _0803C1BC
- .align 2, 0
-_0803C1A8: .4byte gStatStageRatios
-_0803C1AC: .4byte 0x02024e80
-_0803C1B0:
- ldr r3, [sp, 0x18]
- b _0803C1D6
-_0803C1B4:
- ldr r2, _0803C21C
- ldr r1, [sp, 0x4]
- movs r0, 0x1D
- ldrsb r0, [r1, r0]
-_0803C1BC:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- ldr r6, [sp, 0x18]
- adds r3, r6, 0
- muls r3, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- bl __divsi3
- adds r3, r0, 0
-_0803C1D6:
- adds r0, r5, 0
- adds r1, r3, 0
- bl __divsi3
- adds r5, r0, 0
- movs r1, 0x32
- bl __divsi3
- adds r5, r0, 0
- movs r0, 0x2
- ldr r1, [sp, 0xC]
- ands r0, r1
- cmp r0, 0
- beq _0803C22A
- ldrb r1, [r4]
- cmp r1, 0x1
- bne _0803C22A
- ldr r0, _0803C220
- ldrh r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0803C224
- movs r0, 0x2
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803C224
- adds r0, r5, 0
- movs r1, 0x3
- bl __divsi3
- lsls r5, r0, 1
- b _0803C22A
- .align 2, 0
-_0803C21C: .4byte gStatStageRatios
-_0803C220: .4byte 0x020239f8
-_0803C224:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C22A:
- ldr r0, _0803C2A4
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803C25C
- ldr r0, _0803C2A8
- ldr r2, [sp, 0x8]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x6]
- cmp r0, 0x8
- bne _0803C25C
- movs r0, 0x2
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803C25C
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C25C:
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0803C30C
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0803C30C
- ldr r2, _0803C2AC
- ldrh r1, [r2]
- movs r0, 0x1
- ands r0, r1
- adds r4, r2, 0
- cmp r0, 0
- beq _0803C2C4
- mov r3, r9
- cmp r3, 0xA
- beq _0803C2B0
- cmp r3, 0xB
- beq _0803C2B8
- b _0803C2C4
- .align 2, 0
-_0803C2A4: .4byte 0x020239f8
-_0803C2A8: .4byte gBattleMoves
-_0803C2AC: .4byte 0x02024db8
-_0803C2B0:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
- b _0803C2C4
-_0803C2B8:
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
-_0803C2C4:
- ldrh r1, [r4]
- movs r0, 0x9F
- ands r0, r1
- cmp r0, 0
- beq _0803C2DC
- ldr r0, _0803C2F4
- ldrh r0, [r0]
- cmp r0, 0x4C
- bne _0803C2DC
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C2DC:
- ldrh r1, [r4]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0803C30C
- mov r6, r9
- cmp r6, 0xA
- beq _0803C2F8
- cmp r6, 0xB
- beq _0803C306
- b _0803C30C
- .align 2, 0
-_0803C2F4: .4byte 0x02024be6
-_0803C2F8:
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
- b _0803C30C
-_0803C306:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C30C:
- ldr r1, _0803C344
- ldr r2, [sp, 0x10]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803C330
- mov r3, r9
- cmp r3, 0xA
- bne _0803C330
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
-_0803C330:
- adds r0, r5, 0x2
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803C344: .4byte 0x02017100
- thumb_func_end sub_803BA2C
-
- thumb_func_start sub_803C348
-sub_803C348: @ 803C348
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- movs r6, 0
- cmp r0, 0x1
- beq _0803C39C
- cmp r0, 0x1
- bgt _0803C360
- cmp r0, 0
- beq _0803C366
- b _0803C41E
-_0803C360:
- cmp r1, 0x2
- beq _0803C3E4
- b _0803C41E
-_0803C366:
- movs r5, 0
- ldr r0, _0803C390
- ldrb r3, [r0]
- ldr r4, _0803C394
- ldr r2, _0803C398
-_0803C370:
- cmp r5, r3
- beq _0803C384
- ldrb r0, [r4]
- ldr r1, [r2]
- ands r0, r1
- cmp r0, 0
- bne _0803C384
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0803C384:
- adds r2, 0x4
- adds r5, 0x1
- cmp r5, 0x3
- ble _0803C370
- b _0803C41E
- .align 2, 0
-_0803C390: .4byte 0x02024a60
-_0803C394: .4byte 0x02024c0c
-_0803C398: .4byte gBitTable
-_0803C39C:
- movs r5, 0
-_0803C39E:
- lsls r0, r5, 24
- lsrs r0, 24
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r0, _0803C3D8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _0803C3D0
- ldr r0, _0803C3DC
- ldrb r1, [r0]
- ldr r2, _0803C3E0
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803C3D0
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0803C3D0:
- adds r5, 0x1
- cmp r5, 0x3
- ble _0803C39E
- b _0803C41E
- .align 2, 0
-_0803C3D8: .4byte 0x02024c07
-_0803C3DC: .4byte 0x02024c0c
-_0803C3E0: .4byte gBitTable
-_0803C3E4:
- movs r5, 0
-_0803C3E6:
- lsls r0, r5, 24
- lsrs r0, 24
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r0, _0803C428
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _0803C418
- ldr r0, _0803C42C
- ldrb r1, [r0]
- ldr r2, _0803C430
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803C418
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0803C418:
- adds r5, 0x1
- cmp r5, 0x3
- ble _0803C3E6
-_0803C41E:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0803C428: .4byte 0x02024c08
-_0803C42C: .4byte 0x02024c0c
-_0803C430: .4byte gBitTable
- thumb_func_end sub_803C348
-
- thumb_func_start sub_803C434
-sub_803C434: @ 803C434
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_per_side_status
- movs r1, 0x1
- movs r6, 0x1
- adds r4, r6, 0
- ands r4, r0
- eors r4, r1
- adds r5, r4, 0
- ldr r0, _0803C45C
- ldrh r1, [r0]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _0803C460
- adds r0, r4, 0
- b _0803C4AA
- .align 2, 0
-_0803C45C: .4byte 0x020239f8
-_0803C460:
- movs r0, 0
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0803C484
- bl Random
- adds r1, r6, 0
- ands r1, r0
- cmp r1, 0
- bne _0803C480
- movs r0, 0x2
- eors r0, r4
- b _0803C4AA
-_0803C480:
- adds r0, r4, 0
- b _0803C4AA
-_0803C484:
- ldr r0, _0803C49C
- ldrb r1, [r0]
- ldr r2, _0803C4A0
- lsls r0, r4, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803C4A4
- adds r0, r4, 0
- b _0803C4AA
- .align 2, 0
-_0803C49C: .4byte 0x02024c0c
-_0803C4A0: .4byte gBitTable
-_0803C4A4:
- movs r0, 0x2
- eors r5, r0
- adds r0, r5, 0
-_0803C4AA:
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_803C434
-
- thumb_func_start pokemon_get_gender
-pokemon_get_gender: @ 803C4B8
- push {lr}
- bl pokemon_roll_gender
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end pokemon_get_gender
-
- thumb_func_start pokemon_roll_gender
-pokemon_roll_gender: @ 803C4C8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetEncryptedField
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl PokemonGetEncryptedField
- adds r2, r0, 0
- ldr r1, _0803C518
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x10]
- cmp r0, 0
- beq _0803C51E
- cmp r0, 0
- blt _0803C500
- cmp r0, 0xFF
- bgt _0803C500
- cmp r0, 0xFE
- bge _0803C51E
-_0803C500:
- ldr r1, _0803C518
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x10]
- movs r0, 0xFF
- ands r0, r2
- cmp r1, r0
- bhi _0803C51C
- movs r0, 0
- b _0803C51E
- .align 2, 0
-_0803C518: .4byte gBaseStats
-_0803C51C:
- movs r0, 0xFE
-_0803C51E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end pokemon_roll_gender
-
- thumb_func_start pokemon_species_get_gender_info
-pokemon_species_get_gender_info: @ 803C524
- push {lr}
- adds r3, r1, 0
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, _0803C560
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x10]
- cmp r0, 0
- beq _0803C566
- cmp r0, 0
- blt _0803C548
- cmp r0, 0xFF
- bgt _0803C548
- cmp r0, 0xFE
- bge _0803C566
-_0803C548:
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x10]
- movs r0, 0xFF
- ands r0, r3
- cmp r1, r0
- bhi _0803C564
- movs r0, 0
- b _0803C566
- .align 2, 0
-_0803C560: .4byte gBaseStats
-_0803C564:
- movs r0, 0xFE
-_0803C566:
- pop {r1}
- bx r1
- thumb_func_end pokemon_species_get_gender_info
-
- thumb_func_start gpu_pal_obj_decompress_and_apply
-gpu_pal_obj_decompress_and_apply: @ 803C56C
- push {r4-r6,lr}
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0803C594
- ldr r4, _0803C598
- lsls r2, r1, 1
- adds r2, r1
- lsls r2, 3
- adds r1, r3, 0
- adds r2, r4
- ldm r2!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r2!, {r4-r6}
- stm r1!, {r4-r6}
- strh r0, [r3, 0x2]
- ldr r0, _0803C59C
- str r0, [r3, 0x8]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803C594: .4byte 0x02024e8c
-_0803C598: .4byte gSpriteTemplate_8208288
-_0803C59C: .4byte gSpriteAnimTable_81E7C64
- thumb_func_end gpu_pal_obj_decompress_and_apply
-
- thumb_func_start sub_803C5A0
-sub_803C5A0: @ 803C5A0
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 24
- lsrs r3, r1, 24
- ldr r5, _0803C5D0
- ldr r2, _0803C5D4
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 3
- adds r1, r5, 0
- adds r0, r2
- ldm r0!, {r2,r6,r7}
- stm r1!, {r2,r6,r7}
- ldm r0!, {r2,r6,r7}
- stm r1!, {r2,r6,r7}
- strh r4, [r5, 0x2]
- cmp r3, 0
- beq _0803C5CA
- cmp r3, 0x2
- bne _0803C5DC
-_0803C5CA:
- ldr r0, _0803C5D8
- b _0803C5DE
- .align 2, 0
-_0803C5D0: .4byte 0x02024e8c
-_0803C5D4: .4byte gSpriteTemplate_8208288
-_0803C5D8: .4byte gUnknown_081ECACC
-_0803C5DC:
- ldr r0, _0803C5EC
-_0803C5DE:
- lsls r1, r4, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r5, 0x8]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803C5EC: .4byte gUnknown_081EC2A4
- thumb_func_end sub_803C5A0
-
- thumb_func_start pokemon_encrypt
-pokemon_encrypt: @ 803C5F0
- push {r4,lr}
- adds r3, r0, 0
- movs r4, 0
- adds r2, r3, 0
- adds r2, 0x20
-_0803C5FA:
- ldr r0, [r2]
- ldr r1, [r3]
- eors r0, r1
- str r0, [r2]
- ldr r1, [r3, 0x4]
- eors r0, r1
- stm r2!, {r0}
- adds r4, 0x1
- cmp r4, 0xB
- bls _0803C5FA
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemon_encrypt
-
- thumb_func_start pokemon_decrypt
-pokemon_decrypt: @ 803C614
- push {r4,lr}
- adds r3, r0, 0
- movs r4, 0
- adds r2, r3, 0
- adds r2, 0x20
-_0803C61E:
- ldr r0, [r2]
- ldr r1, [r3, 0x4]
- eors r0, r1
- str r0, [r2]
- ldr r1, [r3]
- eors r0, r1
- stm r2!, {r0}
- adds r4, 0x1
- cmp r4, 0xB
- bls _0803C61E
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemon_decrypt
-
- thumb_func_start sub_803C638
-sub_803C638: @ 803C638
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4C
- lsls r2, 24
- lsrs r4, r2, 24
- movs r5, 0
- adds r0, 0x20
- str r0, [sp, 0x4]
- str r0, [sp]
- str r0, [sp, 0xC]
- str r0, [sp, 0x8]
- str r0, [sp, 0x14]
- str r0, [sp, 0x10]
- str r0, [sp, 0x1C]
- str r0, [sp, 0x18]
- str r0, [sp, 0x24]
- str r0, [sp, 0x20]
- str r0, [sp, 0x2C]
- str r0, [sp, 0x28]
- mov r10, r0
- str r0, [sp, 0x30]
- mov r8, r10
- str r0, [sp, 0x34]
- mov r3, r8
- str r3, [sp, 0x38]
- adds r7, r3, 0
- str r7, [sp, 0x3C]
- adds r6, r7, 0
- str r6, [sp, 0x40]
- adds r2, r6, 0
- mov r9, r2
- adds r0, r1, 0
- movs r1, 0x18
- str r2, [sp, 0x44]
- str r3, [sp, 0x48]
- bl __umodsi3
- ldr r2, [sp, 0x44]
- ldr r3, [sp, 0x48]
- cmp r0, 0x17
- bls _0803C692
- b _0803CB4E
-_0803C692:
- lsls r0, 2
- ldr r1, _0803C69C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803C69C: .4byte _0803C6A0
- .align 2, 0
-_0803C6A0:
- .4byte _0803C700
- .4byte _0803C72E
- .4byte _0803C75C
- .4byte _0803C78A
- .4byte _0803C7B8
- .4byte _0803C7E6
- .4byte _0803C814
- .4byte _0803C842
- .4byte _0803C870
- .4byte _0803C89E
- .4byte _0803C8CC
- .4byte _0803C8FA
- .4byte _0803C928
- .4byte _0803C956
- .4byte _0803C984
- .4byte _0803C9B2
- .4byte _0803C9E0
- .4byte _0803CA0E
- .4byte _0803CA3C
- .4byte _0803CA6A
- .4byte _0803CA98
- .4byte _0803CAC6
- .4byte _0803CAF4
- .4byte _0803CB22
-_0803C700:
- cmp r4, 0x1
- beq _0803C71C
- cmp r4, 0x1
- bgt _0803C70E
- cmp r4, 0
- beq _0803C718
- b _0803CB4E
-_0803C70E:
- cmp r4, 0x2
- beq _0803C722
- cmp r4, 0x3
- beq _0803C728
- b _0803CB4E
-_0803C718:
- ldr r5, [sp]
- b _0803CB4E
-_0803C71C:
- ldr r5, [sp]
- adds r5, 0xC
- b _0803CB4E
-_0803C722:
- ldr r5, [sp]
- adds r5, 0x18
- b _0803CB4E
-_0803C728:
- ldr r5, [sp]
- adds r5, 0x24
- b _0803CB4E
-_0803C72E:
- cmp r4, 0x1
- beq _0803C74A
- cmp r4, 0x1
- bgt _0803C73C
- cmp r4, 0
- beq _0803C746
- b _0803CB4E
-_0803C73C:
- cmp r4, 0x2
- beq _0803C750
- cmp r4, 0x3
- beq _0803C756
- b _0803CB4E
-_0803C746:
- ldr r5, [sp, 0x4]
- b _0803CB4E
-_0803C74A:
- ldr r5, [sp, 0x4]
- adds r5, 0xC
- b _0803CB4E
-_0803C750:
- ldr r5, [sp, 0x4]
- adds r5, 0x24
- b _0803CB4E
-_0803C756:
- ldr r5, [sp, 0x4]
- adds r5, 0x18
- b _0803CB4E
-_0803C75C:
- cmp r4, 0x1
- beq _0803C778
- cmp r4, 0x1
- bgt _0803C76A
- cmp r4, 0
- beq _0803C774
- b _0803CB4E
-_0803C76A:
- cmp r4, 0x2
- beq _0803C77E
- cmp r4, 0x3
- beq _0803C784
- b _0803CB4E
-_0803C774:
- ldr r5, [sp, 0x8]
- b _0803CB4E
-_0803C778:
- ldr r5, [sp, 0x8]
- adds r5, 0x18
- b _0803CB4E
-_0803C77E:
- ldr r5, [sp, 0x8]
- adds r5, 0xC
- b _0803CB4E
-_0803C784:
- ldr r5, [sp, 0x8]
- adds r5, 0x24
- b _0803CB4E
-_0803C78A:
- cmp r4, 0x1
- beq _0803C7A6
- cmp r4, 0x1
- bgt _0803C798
- cmp r4, 0
- beq _0803C7A2
- b _0803CB4E
-_0803C798:
- cmp r4, 0x2
- beq _0803C7AC
- cmp r4, 0x3
- beq _0803C7B2
- b _0803CB4E
-_0803C7A2:
- ldr r5, [sp, 0xC]
- b _0803CB4E
-_0803C7A6:
- ldr r5, [sp, 0xC]
- adds r5, 0x24
- b _0803CB4E
-_0803C7AC:
- ldr r5, [sp, 0xC]
- adds r5, 0xC
- b _0803CB4E
-_0803C7B2:
- ldr r5, [sp, 0xC]
- adds r5, 0x18
- b _0803CB4E
-_0803C7B8:
- cmp r4, 0x1
- beq _0803C7D4
- cmp r4, 0x1
- bgt _0803C7C6
- cmp r4, 0
- beq _0803C7D0
- b _0803CB4E
-_0803C7C6:
- cmp r4, 0x2
- beq _0803C7DA
- cmp r4, 0x3
- beq _0803C7E0
- b _0803CB4E
-_0803C7D0:
- ldr r5, [sp, 0x10]
- b _0803CB4E
-_0803C7D4:
- ldr r5, [sp, 0x10]
- adds r5, 0x18
- b _0803CB4E
-_0803C7DA:
- ldr r5, [sp, 0x10]
- adds r5, 0x24
- b _0803CB4E
-_0803C7E0:
- ldr r5, [sp, 0x10]
- adds r5, 0xC
- b _0803CB4E
-_0803C7E6:
- cmp r4, 0x1
- beq _0803C802
- cmp r4, 0x1
- bgt _0803C7F4
- cmp r4, 0
- beq _0803C7FE
- b _0803CB4E
-_0803C7F4:
- cmp r4, 0x2
- beq _0803C808
- cmp r4, 0x3
- beq _0803C80E
- b _0803CB4E
-_0803C7FE:
- ldr r5, [sp, 0x14]
- b _0803CB4E
-_0803C802:
- ldr r5, [sp, 0x14]
- adds r5, 0x24
- b _0803CB4E
-_0803C808:
- ldr r5, [sp, 0x14]
- adds r5, 0x18
- b _0803CB4E
-_0803C80E:
- ldr r5, [sp, 0x14]
- adds r5, 0xC
- b _0803CB4E
-_0803C814:
- cmp r4, 0x1
- beq _0803C832
- cmp r4, 0x1
- bgt _0803C822
- cmp r4, 0
- beq _0803C82C
- b _0803CB4E
-_0803C822:
- cmp r4, 0x2
- beq _0803C836
- cmp r4, 0x3
- beq _0803C83C
- b _0803CB4E
-_0803C82C:
- ldr r5, [sp, 0x18]
- adds r5, 0xC
- b _0803CB4E
-_0803C832:
- ldr r5, [sp, 0x18]
- b _0803CB4E
-_0803C836:
- ldr r5, [sp, 0x18]
- adds r5, 0x18
- b _0803CB4E
-_0803C83C:
- ldr r5, [sp, 0x18]
- adds r5, 0x24
- b _0803CB4E
-_0803C842:
- cmp r4, 0x1
- beq _0803C860
- cmp r4, 0x1
- bgt _0803C850
- cmp r4, 0
- beq _0803C85A
- b _0803CB4E
-_0803C850:
- cmp r4, 0x2
- beq _0803C864
- cmp r4, 0x3
- beq _0803C86A
- b _0803CB4E
-_0803C85A:
- ldr r5, [sp, 0x1C]
- adds r5, 0xC
- b _0803CB4E
-_0803C860:
- ldr r5, [sp, 0x1C]
- b _0803CB4E
-_0803C864:
- ldr r5, [sp, 0x1C]
- adds r5, 0x24
- b _0803CB4E
-_0803C86A:
- ldr r5, [sp, 0x1C]
- adds r5, 0x18
- b _0803CB4E
-_0803C870:
- cmp r4, 0x1
- beq _0803C88E
- cmp r4, 0x1
- bgt _0803C87E
- cmp r4, 0
- beq _0803C888
- b _0803CB4E
-_0803C87E:
- cmp r4, 0x2
- beq _0803C892
- cmp r4, 0x3
- beq _0803C898
- b _0803CB4E
-_0803C888:
- ldr r5, [sp, 0x20]
- adds r5, 0x18
- b _0803CB4E
-_0803C88E:
- ldr r5, [sp, 0x20]
- b _0803CB4E
-_0803C892:
- ldr r5, [sp, 0x20]
- adds r5, 0xC
- b _0803CB4E
-_0803C898:
- ldr r5, [sp, 0x20]
- adds r5, 0x24
- b _0803CB4E
-_0803C89E:
- cmp r4, 0x1
- beq _0803C8BC
- cmp r4, 0x1
- bgt _0803C8AC
- cmp r4, 0
- beq _0803C8B6
- b _0803CB4E
-_0803C8AC:
- cmp r4, 0x2
- beq _0803C8C0
- cmp r4, 0x3
- beq _0803C8C6
- b _0803CB4E
-_0803C8B6:
- ldr r5, [sp, 0x24]
- adds r5, 0x24
- b _0803CB4E
-_0803C8BC:
- ldr r5, [sp, 0x24]
- b _0803CB4E
-_0803C8C0:
- ldr r5, [sp, 0x24]
- adds r5, 0xC
- b _0803CB4E
-_0803C8C6:
- ldr r5, [sp, 0x24]
- adds r5, 0x18
- b _0803CB4E
-_0803C8CC:
- cmp r4, 0x1
- beq _0803C8EA
- cmp r4, 0x1
- bgt _0803C8DA
- cmp r4, 0
- beq _0803C8E4
- b _0803CB4E
-_0803C8DA:
- cmp r4, 0x2
- beq _0803C8EE
- cmp r4, 0x3
- beq _0803C8F4
- b _0803CB4E
-_0803C8E4:
- ldr r5, [sp, 0x28]
- adds r5, 0x18
- b _0803CB4E
-_0803C8EA:
- ldr r5, [sp, 0x28]
- b _0803CB4E
-_0803C8EE:
- ldr r5, [sp, 0x28]
- adds r5, 0x24
- b _0803CB4E
-_0803C8F4:
- ldr r5, [sp, 0x28]
- adds r5, 0xC
- b _0803CB4E
-_0803C8FA:
- cmp r4, 0x1
- beq _0803C918
- cmp r4, 0x1
- bgt _0803C908
- cmp r4, 0
- beq _0803C912
- b _0803CB4E
-_0803C908:
- cmp r4, 0x2
- beq _0803C91C
- cmp r4, 0x3
- beq _0803C922
- b _0803CB4E
-_0803C912:
- ldr r5, [sp, 0x2C]
- adds r5, 0x24
- b _0803CB4E
-_0803C918:
- ldr r5, [sp, 0x2C]
- b _0803CB4E
-_0803C91C:
- ldr r5, [sp, 0x2C]
- adds r5, 0x18
- b _0803CB4E
-_0803C922:
- ldr r5, [sp, 0x2C]
- adds r5, 0xC
- b _0803CB4E
-_0803C928:
- cmp r4, 0x1
- beq _0803C946
- cmp r4, 0x1
- bgt _0803C936
- cmp r4, 0
- beq _0803C940
- b _0803CB4E
-_0803C936:
- cmp r4, 0x2
- beq _0803C94C
- cmp r4, 0x3
- beq _0803C950
- b _0803CB4E
-_0803C940:
- ldr r5, [sp, 0x30]
- adds r5, 0xC
- b _0803CB4E
-_0803C946:
- ldr r5, [sp, 0x30]
- adds r5, 0x18
- b _0803CB4E
-_0803C94C:
- ldr r5, [sp, 0x30]
- b _0803CB4E
-_0803C950:
- ldr r5, [sp, 0x30]
- adds r5, 0x24
- b _0803CB4E
-_0803C956:
- cmp r4, 0x1
- beq _0803C974
- cmp r4, 0x1
- bgt _0803C964
- cmp r4, 0
- beq _0803C96E
- b _0803CB4E
-_0803C964:
- cmp r4, 0x2
- beq _0803C97A
- cmp r4, 0x3
- beq _0803C97E
- b _0803CB4E
-_0803C96E:
- mov r5, r10
- adds r5, 0xC
- b _0803CB4E
-_0803C974:
- mov r5, r10
- adds r5, 0x24
- b _0803CB4E
-_0803C97A:
- mov r5, r10
- b _0803CB4E
-_0803C97E:
- mov r5, r10
- adds r5, 0x18
- b _0803CB4E
-_0803C984:
- cmp r4, 0x1
- beq _0803C9A2
- cmp r4, 0x1
- bgt _0803C992
- cmp r4, 0
- beq _0803C99C
- b _0803CB4E
-_0803C992:
- cmp r4, 0x2
- beq _0803C9A8
- cmp r4, 0x3
- beq _0803C9AC
- b _0803CB4E
-_0803C99C:
- ldr r5, [sp, 0x34]
- adds r5, 0x18
- b _0803CB4E
-_0803C9A2:
- ldr r5, [sp, 0x34]
- adds r5, 0xC
- b _0803CB4E
-_0803C9A8:
- ldr r5, [sp, 0x34]
- b _0803CB4E
-_0803C9AC:
- ldr r5, [sp, 0x34]
- adds r5, 0x24
- b _0803CB4E
-_0803C9B2:
- cmp r4, 0x1
- beq _0803C9D0
- cmp r4, 0x1
- bgt _0803C9C0
- cmp r4, 0
- beq _0803C9CA
- b _0803CB4E
-_0803C9C0:
- cmp r4, 0x2
- beq _0803C9D6
- cmp r4, 0x3
- beq _0803C9DA
- b _0803CB4E
-_0803C9CA:
- mov r5, r8
- adds r5, 0x24
- b _0803CB4E
-_0803C9D0:
- mov r5, r8
- adds r5, 0xC
- b _0803CB4E
-_0803C9D6:
- mov r5, r8
- b _0803CB4E
-_0803C9DA:
- mov r5, r8
- adds r5, 0x18
- b _0803CB4E
-_0803C9E0:
- cmp r4, 0x1
- beq _0803C9FE
- cmp r4, 0x1
- bgt _0803C9EE
- cmp r4, 0
- beq _0803C9F8
- b _0803CB4E
-_0803C9EE:
- cmp r4, 0x2
- beq _0803CA04
- cmp r4, 0x3
- beq _0803CA08
- b _0803CB4E
-_0803C9F8:
- ldr r5, [sp, 0x38]
- adds r5, 0x18
- b _0803CB4E
-_0803C9FE:
- ldr r5, [sp, 0x38]
- adds r5, 0x24
- b _0803CB4E
-_0803CA04:
- ldr r5, [sp, 0x38]
- b _0803CB4E
-_0803CA08:
- ldr r5, [sp, 0x38]
- adds r5, 0xC
- b _0803CB4E
-_0803CA0E:
- cmp r4, 0x1
- beq _0803CA2C
- cmp r4, 0x1
- bgt _0803CA1C
- cmp r4, 0
- beq _0803CA26
- b _0803CB4E
-_0803CA1C:
- cmp r4, 0x2
- beq _0803CA32
- cmp r4, 0x3
- beq _0803CA36
- b _0803CB4E
-_0803CA26:
- adds r5, r3, 0
- adds r5, 0x24
- b _0803CB4E
-_0803CA2C:
- adds r5, r3, 0
- adds r5, 0x18
- b _0803CB4E
-_0803CA32:
- adds r5, r3, 0
- b _0803CB4E
-_0803CA36:
- adds r5, r3, 0
- adds r5, 0xC
- b _0803CB4E
-_0803CA3C:
- cmp r4, 0x1
- beq _0803CA5A
- cmp r4, 0x1
- bgt _0803CA4A
- cmp r4, 0
- beq _0803CA54
- b _0803CB4E
-_0803CA4A:
- cmp r4, 0x2
- beq _0803CA60
- cmp r4, 0x3
- beq _0803CA66
- b _0803CB4E
-_0803CA54:
- ldr r5, [sp, 0x3C]
- adds r5, 0xC
- b _0803CB4E
-_0803CA5A:
- ldr r5, [sp, 0x3C]
- adds r5, 0x18
- b _0803CB4E
-_0803CA60:
- ldr r5, [sp, 0x3C]
- adds r5, 0x24
- b _0803CB4E
-_0803CA66:
- ldr r5, [sp, 0x3C]
- b _0803CB4E
-_0803CA6A:
- cmp r4, 0x1
- beq _0803CA88
- cmp r4, 0x1
- bgt _0803CA78
- cmp r4, 0
- beq _0803CA82
- b _0803CB4E
-_0803CA78:
- cmp r4, 0x2
- beq _0803CA8E
- cmp r4, 0x3
- beq _0803CA94
- b _0803CB4E
-_0803CA82:
- adds r5, r7, 0
- adds r5, 0xC
- b _0803CB4E
-_0803CA88:
- adds r5, r7, 0
- adds r5, 0x24
- b _0803CB4E
-_0803CA8E:
- adds r5, r7, 0
- adds r5, 0x18
- b _0803CB4E
-_0803CA94:
- adds r5, r7, 0
- b _0803CB4E
-_0803CA98:
- cmp r4, 0x1
- beq _0803CAB6
- cmp r4, 0x1
- bgt _0803CAA6
- cmp r4, 0
- beq _0803CAB0
- b _0803CB4E
-_0803CAA6:
- cmp r4, 0x2
- beq _0803CABC
- cmp r4, 0x3
- beq _0803CAC2
- b _0803CB4E
-_0803CAB0:
- ldr r5, [sp, 0x40]
- adds r5, 0x18
- b _0803CB4E
-_0803CAB6:
- ldr r5, [sp, 0x40]
- adds r5, 0xC
- b _0803CB4E
-_0803CABC:
- ldr r5, [sp, 0x40]
- adds r5, 0x24
- b _0803CB4E
-_0803CAC2:
- ldr r5, [sp, 0x40]
- b _0803CB4E
-_0803CAC6:
- cmp r4, 0x1
- beq _0803CAE4
- cmp r4, 0x1
- bgt _0803CAD4
- cmp r4, 0
- beq _0803CADE
- b _0803CB4E
-_0803CAD4:
- cmp r4, 0x2
- beq _0803CAEA
- cmp r4, 0x3
- beq _0803CAF0
- b _0803CB4E
-_0803CADE:
- adds r5, r6, 0
- adds r5, 0x24
- b _0803CB4E
-_0803CAE4:
- adds r5, r6, 0
- adds r5, 0xC
- b _0803CB4E
-_0803CAEA:
- adds r5, r6, 0
- adds r5, 0x18
- b _0803CB4E
-_0803CAF0:
- adds r5, r6, 0
- b _0803CB4E
-_0803CAF4:
- cmp r4, 0x1
- beq _0803CB12
- cmp r4, 0x1
- bgt _0803CB02
- cmp r4, 0
- beq _0803CB0C
- b _0803CB4E
-_0803CB02:
- cmp r4, 0x2
- beq _0803CB18
- cmp r4, 0x3
- beq _0803CB1E
- b _0803CB4E
-_0803CB0C:
- mov r5, r9
- adds r5, 0x18
- b _0803CB4E
-_0803CB12:
- mov r5, r9
- adds r5, 0x24
- b _0803CB4E
-_0803CB18:
- mov r5, r9
- adds r5, 0xC
- b _0803CB4E
-_0803CB1E:
- mov r5, r9
- b _0803CB4E
-_0803CB22:
- cmp r4, 0x1
- beq _0803CB40
- cmp r4, 0x1
- bgt _0803CB30
- cmp r4, 0
- beq _0803CB3A
- b _0803CB4E
-_0803CB30:
- cmp r4, 0x2
- beq _0803CB46
- cmp r4, 0x3
- beq _0803CB4C
- b _0803CB4E
-_0803CB3A:
- adds r5, r2, 0
- adds r5, 0x24
- b _0803CB4E
-_0803CB40:
- adds r5, r2, 0
- adds r5, 0x18
- b _0803CB4E
-_0803CB46:
- adds r5, r2, 0
- adds r5, 0xC
- b _0803CB4E
-_0803CB4C:
- adds r5, r2, 0
-_0803CB4E:
- adds r0, r5, 0
- add sp, 0x4C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803C638
-
- thumb_func_start PokemonGetField
-PokemonGetField: @ 803CB60
- push {lr}
- adds r3, r0, 0
- adds r0, r1, 0
- subs r0, 0x37
- cmp r0, 0x9
- bhi _0803CBF0
- lsls r0, 2
- ldr r1, _0803CB78
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803CB78: .4byte _0803CB7C
- .align 2, 0
-_0803CB7C:
- .4byte _0803CBA4
- .4byte _0803CBA8
- .4byte _0803CBB0
- .4byte _0803CBB8
- .4byte _0803CBC0
- .4byte _0803CBC8
- .4byte _0803CBD0
- .4byte _0803CBD8
- .4byte _0803CBE0
- .4byte _0803CBE8
-_0803CBA4:
- ldr r0, [r3, 0x50]
- b _0803CBF6
-_0803CBA8:
- adds r0, r3, 0
- adds r0, 0x54
- ldrb r0, [r0]
- b _0803CBF6
-_0803CBB0:
- adds r0, r3, 0
- adds r0, 0x56
- ldrh r0, [r0]
- b _0803CBF6
-_0803CBB8:
- adds r0, r3, 0
- adds r0, 0x58
- ldrh r0, [r0]
- b _0803CBF6
-_0803CBC0:
- adds r0, r3, 0
- adds r0, 0x5A
- ldrh r0, [r0]
- b _0803CBF6
-_0803CBC8:
- adds r0, r3, 0
- adds r0, 0x5C
- ldrh r0, [r0]
- b _0803CBF6
-_0803CBD0:
- adds r0, r3, 0
- adds r0, 0x5E
- ldrh r0, [r0]
- b _0803CBF6
-_0803CBD8:
- adds r0, r3, 0
- adds r0, 0x60
- ldrh r0, [r0]
- b _0803CBF6
-_0803CBE0:
- adds r0, r3, 0
- adds r0, 0x62
- ldrh r0, [r0]
- b _0803CBF6
-_0803CBE8:
- adds r0, r3, 0
- adds r0, 0x55
- ldrb r0, [r0]
- b _0803CBF6
-_0803CBF0:
- adds r0, r3, 0
- bl PokemonGetEncryptedField
-_0803CBF6:
- pop {r1}
- bx r1
- thumb_func_end PokemonGetField
-
- thumb_func_start PokemonGetEncryptedField
-PokemonGetEncryptedField: @ 803CBFC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- str r1, [sp]
- adds r7, r2, 0
- movs r4, 0
- mov r9, r4
- mov r10, r4
- movs r6, 0
- movs r5, 0
- cmp r1, 0xA
- ble _0803CC7A
- ldr r1, [r0]
- movs r2, 0
- bl sub_803C638
- mov r9, r0
- mov r0, r8
- ldr r1, [r0]
- movs r2, 0x1
- bl sub_803C638
- mov r10, r0
- mov r2, r8
- ldr r1, [r2]
- mov r0, r8
- movs r2, 0x2
- bl sub_803C638
- adds r6, r0, 0
- mov r0, r8
- ldr r1, [r0]
- movs r2, 0x3
- bl sub_803C638
- adds r5, r0, 0
- mov r0, r8
- bl pokemon_decrypt
- mov r0, r8
- bl pokemon_calc_checksum
- lsls r0, 16
- lsrs r0, 16
- mov r1, r8
- ldrh r1, [r1, 0x1C]
- cmp r0, r1
- beq _0803CC7A
- mov r2, r8
- ldrb r0, [r2, 0x13]
- movs r1, 0x1
- orrs r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x13]
- ldrb r0, [r5, 0x7]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r5, 0x7]
-_0803CC7A:
- ldr r0, [sp]
- cmp r0, 0x52
- bls _0803CC82
- b _0803D1DC
-_0803CC82:
- lsls r0, 2
- ldr r1, _0803CC8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803CC8C: .4byte _0803CC90
- .align 2, 0
-_0803CC90:
- .4byte _0803CDDC
- .4byte _0803CDE2
- .4byte _0803CDE8
- .4byte _0803CE5C
- .4byte _0803CE62
- .4byte _0803CE68
- .4byte _0803CE6E
- .4byte _0803CE74
- .4byte _0803CEA0
- .4byte _0803CEA6
- .4byte _0803CEAC
- .4byte _0803CEB2
- .4byte _0803CECA
- .4byte _0803CEE2
- .4byte _0803CEE2
- .4byte _0803CEE2
- .4byte _0803CEE2
- .4byte _0803CEEE
- .4byte _0803CEEE
- .4byte _0803CEEE
- .4byte _0803CEEE
- .4byte _0803CED6
- .4byte _0803CF10
- .4byte _0803CF14
- .4byte _0803CF18
- .4byte _0803CED0
- .4byte _0803CEF8
- .4byte _0803CEFC
- .4byte _0803CF00
- .4byte _0803CF04
- .4byte _0803CF08
- .4byte _0803CF0C
- .4byte _0803CEDC
- .4byte _0803CF1C
- .4byte _0803CF28
- .4byte _0803CF2C
- .4byte _0803CF30
- .4byte _0803CF38
- .4byte _0803CF40
- .4byte _0803CF4E
- .4byte _0803CF56
- .4byte _0803CF5E
- .4byte _0803CF66
- .4byte _0803CF6E
- .4byte _0803CF76
- .4byte _0803CF7E
- .4byte _0803CF82
- .4byte _0803CF20
- .4byte _0803CF24
- .4byte _0803CF48
- .4byte _0803CF88
- .4byte _0803CF90
- .4byte _0803CF98
- .4byte _0803CFA0
- .4byte _0803CFA8
- .4byte _0803D1DC
- .4byte _0803D1DC
- .4byte _0803D1DC
- .4byte _0803D1DC
- .4byte _0803D1DC
- .4byte _0803D1DC
- .4byte _0803D1DC
- .4byte _0803D1DC
- .4byte _0803D1DC
- .4byte _0803D1DC
- .4byte _0803D006
- .4byte _0803D02C
- .4byte _0803CFB0
- .4byte _0803CFB6
- .4byte _0803CFBA
- .4byte _0803CFBE
- .4byte _0803CFC2
- .4byte _0803CFCA
- .4byte _0803CFD2
- .4byte _0803CFDA
- .4byte _0803CFE2
- .4byte _0803CFE8
- .4byte _0803CFF0
- .4byte _0803CFF8
- .4byte _0803D000
- .4byte _0803D066
- .4byte _0803D0C0
- .4byte _0803D142
-_0803CDDC:
- mov r1, r8
- ldr r4, [r1]
- b _0803D1DC
-_0803CDE2:
- mov r2, r8
- ldr r4, [r2, 0x4]
- b _0803D1DC
-_0803CDE8:
- mov r0, r8
- ldrb r1, [r0, 0x13]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803CE04
- ldr r1, _0803CE00
- adds r0, r7, 0
- bl StringCopy
- b _0803CE50
- .align 2, 0
-_0803CE00: .4byte gUnknown_08400E3A
-_0803CE04:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803CE1C
- ldr r1, _0803CE18
- adds r0, r7, 0
- bl StringCopy
- b _0803CE50
- .align 2, 0
-_0803CE18: .4byte gUnknown_0842CC34
-_0803CE1C:
- movs r4, 0
- mov r1, r8
- adds r1, 0x8
- mov r2, r8
- ldrb r0, [r2, 0x8]
- ldrb r3, [r2, 0x12]
- cmp r0, 0xFF
- beq _0803CE42
- adds r2, r1, 0
-_0803CE2E:
- adds r1, r7, r4
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r4, 0x1
- cmp r4, 0x9
- bhi _0803CE42
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _0803CE2E
-_0803CE42:
- adds r1, r7, r4
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r7, 0
- adds r1, r3, 0
- bl ConvertInternationalString
-_0803CE50:
- adds r0, r7, 0
- bl StringLength
- lsls r0, 16
- lsrs r4, r0, 16
- b _0803D1DC
-_0803CE5C:
- mov r7, r8
- ldrb r4, [r7, 0x12]
- b _0803D1DC
-_0803CE62:
- mov r1, r8
- ldrb r0, [r1, 0x13]
- b _0803CFEA
-_0803CE68:
- mov r2, r8
- ldrb r0, [r2, 0x13]
- b _0803CFF2
-_0803CE6E:
- mov r7, r8
- ldrb r0, [r7, 0x13]
- b _0803CFFA
-_0803CE74:
- movs r4, 0
- mov r1, r8
- adds r1, 0x14
- mov r2, r8
- ldrb r0, [r2, 0x14]
- cmp r0, 0xFF
- beq _0803CE98
- adds r2, r1, 0
-_0803CE84:
- adds r1, r7, r4
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r4, 0x1
- cmp r4, 0x6
- bhi _0803CE98
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _0803CE84
-_0803CE98:
- adds r1, r7, r4
- movs r0, 0xFF
- strb r0, [r1]
- b _0803D1DC
-_0803CEA0:
- mov r7, r8
- ldrb r4, [r7, 0x1B]
- b _0803D1DC
-_0803CEA6:
- mov r0, r8
- ldrh r4, [r0, 0x1C]
- b _0803D1DC
-_0803CEAC:
- mov r1, r8
- ldrh r4, [r1, 0x1E]
- b _0803D1DC
-_0803CEB2:
- mov r2, r8
- ldrb r1, [r2, 0x13]
- movs r0, 0x1
- ands r0, r1
- movs r4, 0xCE
- lsls r4, 1
- cmp r0, 0
- beq _0803CEC4
- b _0803D1DC
-_0803CEC4:
- mov r7, r9
- ldrh r4, [r7]
- b _0803D1DC
-_0803CECA:
- mov r0, r9
- ldrh r4, [r0, 0x2]
- b _0803D1DC
-_0803CED0:
- mov r1, r9
- ldr r4, [r1, 0x4]
- b _0803D1DC
-_0803CED6:
- mov r2, r9
- ldrb r4, [r2, 0x8]
- b _0803D1DC
-_0803CEDC:
- mov r7, r9
- ldrb r4, [r7, 0x9]
- b _0803D1DC
-_0803CEE2:
- ldr r0, [sp]
- subs r0, 0xD
- lsls r0, 1
- add r0, r10
- ldrh r4, [r0]
- b _0803D1DC
-_0803CEEE:
- ldr r0, [sp]
- add r0, r10
- subs r0, 0x9
- ldrb r4, [r0]
- b _0803D1DC
-_0803CEF8:
- ldrb r4, [r6]
- b _0803D1DC
-_0803CEFC:
- ldrb r4, [r6, 0x1]
- b _0803D1DC
-_0803CF00:
- ldrb r4, [r6, 0x2]
- b _0803D1DC
-_0803CF04:
- ldrb r4, [r6, 0x3]
- b _0803D1DC
-_0803CF08:
- ldrb r4, [r6, 0x4]
- b _0803D1DC
-_0803CF0C:
- ldrb r4, [r6, 0x5]
- b _0803D1DC
-_0803CF10:
- ldrb r4, [r6, 0x6]
- b _0803D1DC
-_0803CF14:
- ldrb r4, [r6, 0x7]
- b _0803D1DC
-_0803CF18:
- ldrb r4, [r6, 0x8]
- b _0803D1DC
-_0803CF1C:
- ldrb r4, [r6, 0x9]
- b _0803D1DC
-_0803CF20:
- ldrb r4, [r6, 0xA]
- b _0803D1DC
-_0803CF24:
- ldrb r4, [r6, 0xB]
- b _0803D1DC
-_0803CF28:
- ldrb r4, [r5]
- b _0803D1DC
-_0803CF2C:
- ldrb r4, [r5, 0x1]
- b _0803D1DC
-_0803CF30:
- ldrb r0, [r5, 0x2]
- lsls r0, 25
- lsrs r4, r0, 25
- b _0803D1DC
-_0803CF38:
- ldrh r0, [r5, 0x2]
- lsls r0, 21
- lsrs r4, r0, 28
- b _0803D1DC
-_0803CF40:
- ldrb r0, [r5, 0x3]
- lsls r0, 25
- lsrs r4, r0, 28
- b _0803D1DC
-_0803CF48:
- ldrb r0, [r5, 0x3]
- lsrs r4, r0, 7
- b _0803D1DC
-_0803CF4E:
- ldrb r0, [r5, 0x4]
- lsls r0, 27
- lsrs r4, r0, 27
- b _0803D1DC
-_0803CF56:
- ldrh r0, [r5, 0x4]
- lsls r0, 22
- lsrs r4, r0, 27
- b _0803D1DC
-_0803CF5E:
- ldrb r0, [r5, 0x5]
- lsls r0, 25
- lsrs r4, r0, 27
- b _0803D1DC
-_0803CF66:
- ldr r0, [r5, 0x4]
- lsls r0, 12
- lsrs r4, r0, 27
- b _0803D1DC
-_0803CF6E:
- ldrh r0, [r5, 0x6]
- lsls r0, 23
- lsrs r4, r0, 27
- b _0803D1DC
-_0803CF76:
- ldrb r0, [r5, 0x7]
- lsls r0, 26
- lsrs r4, r0, 27
- b _0803D1DC
-_0803CF7E:
- ldrb r0, [r5, 0x7]
- b _0803CFDC
-_0803CF82:
- ldrb r0, [r5, 0x7]
- lsrs r4, r0, 7
- b _0803D1DC
-_0803CF88:
- ldrb r0, [r5, 0x8]
- lsls r0, 29
- lsrs r4, r0, 29
- b _0803D1DC
-_0803CF90:
- ldrb r0, [r5, 0x8]
- lsls r0, 26
- lsrs r4, r0, 29
- b _0803D1DC
-_0803CF98:
- ldrh r0, [r5, 0x8]
- lsls r0, 23
- lsrs r4, r0, 29
- b _0803D1DC
-_0803CFA0:
- ldrb r0, [r5, 0x9]
- lsls r0, 28
- lsrs r4, r0, 29
- b _0803D1DC
-_0803CFA8:
- ldrb r0, [r5, 0x9]
- lsls r0, 25
- lsrs r4, r0, 29
- b _0803D1DC
-_0803CFB0:
- ldrb r0, [r5, 0x9]
- lsrs r4, r0, 7
- b _0803D1DC
-_0803CFB6:
- ldrb r0, [r5, 0xA]
- b _0803CFEA
-_0803CFBA:
- ldrb r0, [r5, 0xA]
- b _0803CFF2
-_0803CFBE:
- ldrb r0, [r5, 0xA]
- b _0803CFFA
-_0803CFC2:
- ldrb r0, [r5, 0xA]
- lsls r0, 28
- lsrs r4, r0, 31
- b _0803D1DC
-_0803CFCA:
- ldrb r0, [r5, 0xA]
- lsls r0, 27
- lsrs r4, r0, 31
- b _0803D1DC
-_0803CFD2:
- ldrb r0, [r5, 0xA]
- lsls r0, 26
- lsrs r4, r0, 31
- b _0803D1DC
-_0803CFDA:
- ldrb r0, [r5, 0xA]
-_0803CFDC:
- lsls r0, 25
- lsrs r4, r0, 31
- b _0803D1DC
-_0803CFE2:
- ldrb r0, [r5, 0xA]
- lsrs r4, r0, 7
- b _0803D1DC
-_0803CFE8:
- ldrb r0, [r5, 0xB]
-_0803CFEA:
- lsls r0, 31
- lsrs r4, r0, 31
- b _0803D1DC
-_0803CFF0:
- ldrb r0, [r5, 0xB]
-_0803CFF2:
- lsls r0, 30
- lsrs r4, r0, 31
- b _0803D1DC
-_0803CFF8:
- ldrb r0, [r5, 0xB]
-_0803CFFA:
- lsls r0, 29
- lsrs r4, r0, 31
- b _0803D1DC
-_0803D000:
- ldrb r0, [r5, 0xB]
- lsrs r4, r0, 3
- b _0803D1DC
-_0803D006:
- mov r0, r9
- ldrh r4, [r0]
- cmp r4, 0
- bne _0803D010
- b _0803D1DC
-_0803D010:
- ldrb r0, [r5, 0x7]
- lsls r0, 25
- cmp r0, 0
- blt _0803D026
- mov r2, r8
- ldrb r1, [r2, 0x13]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0803D026
- b _0803D1DC
-_0803D026:
- movs r4, 0xCE
- lsls r4, 1
- b _0803D1DC
-_0803D02C:
- ldrb r0, [r5, 0x4]
- lsls r0, 27
- lsrs r4, r0, 27
- ldrh r1, [r5, 0x4]
- movs r0, 0xF8
- lsls r0, 2
- ands r0, r1
- orrs r4, r0
- ldrb r0, [r5, 0x5]
- lsls r0, 25
- lsrs r0, 27
- lsls r0, 10
- orrs r4, r0
- ldr r0, [r5, 0x4]
- movs r1, 0xF8
- lsls r1, 12
- ands r0, r1
- orrs r4, r0
- ldrh r0, [r5, 0x6]
- lsls r0, 23
- lsrs r0, 27
- lsls r0, 20
- orrs r4, r0
- ldrb r0, [r5, 0x7]
- lsls r0, 26
- lsrs r0, 27
- lsls r0, 25
- orrs r4, r0
- b _0803D1DC
-_0803D066:
- mov r1, r9
- ldrh r0, [r1]
- cmp r0, 0
- bne _0803D070
- b _0803D1DC
-_0803D070:
- ldrb r0, [r5, 0x7]
- lsls r0, 25
- cmp r0, 0
- bge _0803D07A
- b _0803D1DC
-_0803D07A:
- ldrh r0, [r7]
- ldr r1, _0803D0B8
- cmp r0, r1
- bne _0803D084
- b _0803D1DC
-_0803D084:
- mov r2, r10
- ldrh r5, [r2]
- adds r6, r1, 0
- adds r2, r7, 0
- ldr r1, _0803D0BC
-_0803D08E:
- ldrh r3, [r2]
- cmp r5, r3
- beq _0803D0A8
- mov r7, r10
- ldrh r0, [r7, 0x2]
- cmp r0, r3
- beq _0803D0A8
- ldrh r0, [r7, 0x4]
- cmp r0, r3
- beq _0803D0A8
- ldrh r0, [r7, 0x6]
- cmp r0, r3
- bne _0803D0AC
-_0803D0A8:
- ldr r0, [r1]
- orrs r4, r0
-_0803D0AC:
- adds r2, 0x2
- adds r1, 0x4
- ldrh r0, [r2]
- cmp r0, r6
- bne _0803D08E
- b _0803D1DC
- .align 2, 0
-_0803D0B8: .4byte 0x00000163
-_0803D0BC: .4byte gBitTable
-_0803D0C0:
- movs r4, 0
- mov r1, r9
- ldrh r0, [r1]
- cmp r0, 0
- bne _0803D0CC
- b _0803D1DC
-_0803D0CC:
- ldrb r0, [r5, 0x7]
- lsls r0, 25
- cmp r0, 0
- bge _0803D0D6
- b _0803D1DC
-_0803D0D6:
- ldrb r0, [r5, 0x8]
- lsls r1, r0, 29
- lsrs r4, r1, 29
- lsls r0, 26
- lsrs r0, 29
- adds r4, r0
- ldrh r0, [r5, 0x8]
- lsls r0, 23
- lsrs r0, 29
- adds r4, r0
- ldrb r1, [r5, 0x9]
- lsls r0, r1, 28
- lsrs r0, 29
- adds r4, r0
- lsls r0, r1, 25
- lsrs r0, 29
- adds r4, r0
- lsrs r1, 7
- adds r4, r1
- ldrb r1, [r5, 0xA]
- lsls r0, r1, 31
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 30
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 29
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 28
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 27
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 26
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 25
- lsrs r0, 31
- adds r4, r0
- lsrs r1, 7
- adds r4, r1
- ldrb r1, [r5, 0xB]
- lsls r0, r1, 31
- lsrs r0, 31
- adds r4, r0
- lsls r0, r1, 30
- lsrs r0, 31
- adds r4, r0
- lsls r1, 29
- lsrs r1, 31
- adds r4, r1
- b _0803D1DC
-_0803D142:
- movs r4, 0
- mov r2, r9
- ldrh r0, [r2]
- cmp r0, 0
- beq _0803D1DC
- ldrb r0, [r5, 0x7]
- lsls r0, 25
- cmp r0, 0
- blt _0803D1DC
- ldrb r2, [r5, 0x9]
- lsrs r4, r2, 7
- ldrb r1, [r5, 0x8]
- lsls r0, r1, 29
- lsrs r0, 28
- orrs r4, r0
- lsls r1, 26
- lsrs r1, 29
- lsls r1, 4
- orrs r4, r1
- ldrh r0, [r5, 0x8]
- lsls r0, 23
- lsrs r0, 29
- lsls r0, 7
- orrs r4, r0
- lsls r0, r2, 28
- lsrs r0, 29
- lsls r0, 10
- orrs r4, r0
- lsls r2, 25
- lsrs r2, 29
- lsls r2, 13
- orrs r4, r2
- ldrb r1, [r5, 0xA]
- lsls r0, r1, 31
- lsrs r0, 31
- lsls r0, 16
- orrs r4, r0
- lsls r0, r1, 30
- lsrs r0, 31
- lsls r0, 17
- orrs r4, r0
- lsls r0, r1, 29
- lsrs r0, 31
- lsls r0, 18
- orrs r4, r0
- lsls r0, r1, 28
- lsrs r0, 31
- lsls r0, 19
- orrs r4, r0
- lsls r0, r1, 27
- lsrs r0, 31
- lsls r0, 20
- orrs r4, r0
- lsls r0, r1, 26
- lsrs r0, 31
- lsls r0, 21
- orrs r4, r0
- lsls r0, r1, 25
- lsrs r0, 31
- lsls r0, 22
- orrs r4, r0
- lsrs r1, 7
- lsls r1, 23
- orrs r4, r1
- ldrb r1, [r5, 0xB]
- lsls r0, r1, 31
- lsrs r0, 31
- lsls r0, 24
- orrs r4, r0
- lsls r0, r1, 30
- lsrs r0, 31
- lsls r0, 25
- orrs r4, r0
- lsls r1, 29
- lsrs r1, 31
- lsls r1, 26
- orrs r4, r1
-_0803D1DC:
- ldr r7, [sp]
- cmp r7, 0xA
- ble _0803D1E8
- mov r0, r8
- bl pokemon_encrypt
-_0803D1E8:
- adds r0, r4, 0
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end PokemonGetEncryptedField
-
- thumb_func_start pokemon_setattr
-pokemon_setattr: @ 803D1FC
- push {lr}
- adds r3, r0, 0
- adds r0, r1, 0
- subs r0, 0x37
- cmp r0, 0xA
- bhi _0803D2E0
- lsls r0, 2
- ldr r1, _0803D214
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803D214: .4byte _0803D218
- .align 2, 0
-_0803D218:
- .4byte _0803D244
- .4byte _0803D25C
- .4byte _0803D266
- .4byte _0803D276
- .4byte _0803D286
- .4byte _0803D296
- .4byte _0803D2A6
- .4byte _0803D2B6
- .4byte _0803D2C6
- .4byte _0803D2D6
- .4byte _0803D2E6
-_0803D244:
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r3, 0x50]
- b _0803D2E6
-_0803D25C:
- ldrb r1, [r2]
- adds r0, r3, 0
- adds r0, 0x54
- strb r1, [r0]
- b _0803D2E6
-_0803D266:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x56
- strh r0, [r1]
- b _0803D2E6
-_0803D276:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x58
- strh r0, [r1]
- b _0803D2E6
-_0803D286:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x5A
- strh r0, [r1]
- b _0803D2E6
-_0803D296:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x5C
- strh r0, [r1]
- b _0803D2E6
-_0803D2A6:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x5E
- strh r0, [r1]
- b _0803D2E6
-_0803D2B6:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x60
- strh r0, [r1]
- b _0803D2E6
-_0803D2C6:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x62
- strh r0, [r1]
- b _0803D2E6
-_0803D2D6:
- ldrb r1, [r2]
- adds r0, r3, 0
- adds r0, 0x55
- strb r1, [r0]
- b _0803D2E6
-_0803D2E0:
- adds r0, r3, 0
- bl PokemonSetEncryptedField
-_0803D2E6:
- pop {r0}
- bx r0
- thumb_func_end pokemon_setattr
-
- thumb_func_start PokemonSetEncryptedField
-PokemonSetEncryptedField: @ 803D2EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- mov r10, r1
- adds r4, r2, 0
- movs r0, 0
- mov r8, r0
- mov r9, r0
- movs r6, 0
- movs r5, 0
- cmp r1, 0xA
- ble _0803D36C
- ldr r1, [r7]
- adds r0, r7, 0
- movs r2, 0
- bl sub_803C638
- mov r8, r0
- ldr r1, [r7]
- adds r0, r7, 0
- movs r2, 0x1
- bl sub_803C638
- mov r9, r0
- ldr r1, [r7]
- adds r0, r7, 0
- movs r2, 0x2
- bl sub_803C638
- adds r6, r0, 0
- ldr r1, [r7]
- adds r0, r7, 0
- movs r2, 0x3
- bl sub_803C638
- adds r5, r0, 0
- adds r0, r7, 0
- bl pokemon_decrypt
- adds r0, r7, 0
- bl pokemon_calc_checksum
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r7, 0x1C]
- cmp r0, r1
- beq _0803D36C
- ldrb r0, [r7, 0x13]
- movs r1, 0x1
- orrs r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r7, 0x13]
- ldrb r0, [r5, 0x7]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r5, 0x7]
- adds r0, r7, 0
- bl pokemon_encrypt
- b _0803D8F6
-_0803D36C:
- mov r0, r10
- cmp r0, 0x4F
- bls _0803D374
- b _0803D8E2
-_0803D374:
- lsls r0, 2
- ldr r1, _0803D380
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803D380: .4byte _0803D384
- .align 2, 0
-_0803D384:
- .4byte _0803D4C4
- .4byte _0803D4DC
- .4byte _0803D4F4
- .4byte _0803D50A
- .4byte _0803D510
- .4byte _0803D520
- .4byte _0803D532
- .4byte _0803D544
- .4byte _0803D55A
- .4byte _0803D560
- .4byte _0803D56C
- .4byte _0803D578
- .4byte _0803D598
- .4byte _0803D5D0
- .4byte _0803D5D0
- .4byte _0803D5D0
- .4byte _0803D5D0
- .4byte _0803D5E4
- .4byte _0803D5E4
- .4byte _0803D5E4
- .4byte _0803D5E4
- .4byte _0803D5C0
- .4byte _0803D614
- .4byte _0803D61A
- .4byte _0803D620
- .4byte _0803D5A6
- .4byte _0803D5F0
- .4byte _0803D5F6
- .4byte _0803D5FC
- .4byte _0803D602
- .4byte _0803D608
- .4byte _0803D60E
- .4byte _0803D5C8
- .4byte _0803D626
- .4byte _0803D638
- .4byte _0803D63E
- .4byte _0803D644
- .4byte _0803D658
- .4byte _0803D670
- .4byte _0803D696
- .4byte _0803D6AA
- .4byte _0803D6C4
- .4byte _0803D6DA
- .4byte _0803D6F4
- .4byte _0803D70C
- .4byte _0803D720
- .4byte _0803D750
- .4byte _0803D62C
- .4byte _0803D632
- .4byte _0803D686
- .4byte _0803D760
- .4byte _0803D76E
- .4byte _0803D784
- .4byte _0803D79C
- .4byte _0803D7AC
- .4byte _0803D8E2
- .4byte _0803D8E2
- .4byte _0803D8E2
- .4byte _0803D8E2
- .4byte _0803D8E2
- .4byte _0803D8E2
- .4byte _0803D8E2
- .4byte _0803D8E2
- .4byte _0803D8E2
- .4byte _0803D8E2
- .4byte _0803D8E2
- .4byte _0803D89A
- .4byte _0803D7C2
- .4byte _0803D7D2
- .4byte _0803D7E0
- .4byte _0803D7F0
- .4byte _0803D800
- .4byte _0803D810
- .4byte _0803D820
- .4byte _0803D830
- .4byte _0803D846
- .4byte _0803D856
- .4byte _0803D864
- .4byte _0803D874
- .4byte _0803D88A
-_0803D4C4:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r4, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r7]
- b _0803D8E2
-_0803D4DC:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r4, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r7, 0x4]
- b _0803D8E2
-_0803D4F4:
- movs r2, 0
- adds r3, r7, 0
- adds r3, 0x8
-_0803D4FA:
- adds r0, r3, r2
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x9
- ble _0803D4FA
- b _0803D8E2
-_0803D50A:
- ldrb r0, [r4]
- strb r0, [r7, 0x12]
- b _0803D8E2
-_0803D510:
- ldrb r0, [r4]
- movs r1, 0x1
- ands r1, r0
- ldrb r2, [r7, 0x13]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- b _0803D73E
-_0803D520:
- ldrb r0, [r4]
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r7, 0x13]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- b _0803D73E
-_0803D532:
- ldrb r0, [r4]
- movs r1, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r7, 0x13]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- b _0803D73E
-_0803D544:
- movs r2, 0
- adds r3, r7, 0
- adds r3, 0x14
-_0803D54A:
- adds r0, r3, r2
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x6
- ble _0803D54A
- b _0803D8E2
-_0803D55A:
- ldrb r0, [r4]
- strb r0, [r7, 0x1B]
- b _0803D8E2
-_0803D560:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- strh r1, [r7, 0x1C]
- b _0803D8E2
-_0803D56C:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- strh r1, [r7, 0x1E]
- b _0803D8E2
-_0803D578:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- mov r0, r8
- strh r1, [r0]
- lsls r1, 16
- cmp r1, 0
- beq _0803D590
- ldrb r0, [r7, 0x13]
- movs r1, 0x2
- b _0803D73E
-_0803D590:
- ldrb r1, [r7, 0x13]
- movs r0, 0x3
- negs r0, r0
- b _0803D74A
-_0803D598:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- mov r0, r8
- strh r1, [r0, 0x2]
- b _0803D8E2
-_0803D5A6:
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r4, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 24
- adds r1, r0
- mov r0, r8
- str r1, [r0, 0x4]
- b _0803D8E2
-_0803D5C0:
- ldrb r0, [r4]
- mov r1, r8
- strb r0, [r1, 0x8]
- b _0803D8E2
-_0803D5C8:
- ldrb r0, [r4]
- mov r1, r8
- strb r0, [r1, 0x9]
- b _0803D8E2
-_0803D5D0:
- mov r2, r10
- subs r2, 0xD
- lsls r2, 1
- add r2, r9
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- lsls r0, 8
- adds r1, r0
- strh r1, [r2]
- b _0803D8E2
-_0803D5E4:
- mov r0, r9
- add r0, r10
- subs r0, 0x9
- ldrb r1, [r4]
- strb r1, [r0]
- b _0803D8E2
-_0803D5F0:
- ldrb r0, [r4]
- strb r0, [r6]
- b _0803D8E2
-_0803D5F6:
- ldrb r0, [r4]
- strb r0, [r6, 0x1]
- b _0803D8E2
-_0803D5FC:
- ldrb r0, [r4]
- strb r0, [r6, 0x2]
- b _0803D8E2
-_0803D602:
- ldrb r0, [r4]
- strb r0, [r6, 0x3]
- b _0803D8E2
-_0803D608:
- ldrb r0, [r4]
- strb r0, [r6, 0x4]
- b _0803D8E2
-_0803D60E:
- ldrb r0, [r4]
- strb r0, [r6, 0x5]
- b _0803D8E2
-_0803D614:
- ldrb r0, [r4]
- strb r0, [r6, 0x6]
- b _0803D8E2
-_0803D61A:
- ldrb r0, [r4]
- strb r0, [r6, 0x7]
- b _0803D8E2
-_0803D620:
- ldrb r0, [r4]
- strb r0, [r6, 0x8]
- b _0803D8E2
-_0803D626:
- ldrb r0, [r4]
- strb r0, [r6, 0x9]
- b _0803D8E2
-_0803D62C:
- ldrb r0, [r4]
- strb r0, [r6, 0xA]
- b _0803D8E2
-_0803D632:
- ldrb r0, [r4]
- strb r0, [r6, 0xB]
- b _0803D8E2
-_0803D638:
- ldrb r0, [r4]
- strb r0, [r5]
- b _0803D8E2
-_0803D63E:
- ldrb r0, [r4]
- strb r0, [r5, 0x1]
- b _0803D8E2
-_0803D644:
- ldrb r1, [r4]
- movs r0, 0x7F
- ands r1, r0
- ldrb r2, [r5, 0x2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x2]
- b _0803D8E2
-_0803D658:
- ldrb r1, [r4]
- movs r0, 0xF
- ands r1, r0
- lsls r1, 7
- ldrh r2, [r5, 0x2]
- ldr r0, _0803D66C
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x2]
- b _0803D8E2
- .align 2, 0
-_0803D66C: .4byte 0xfffff87f
-_0803D670:
- ldrb r1, [r4]
- movs r0, 0xF
- ands r1, r0
- lsls r1, 3
- ldrb r2, [r5, 0x3]
- movs r0, 0x79
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x3]
- b _0803D8E2
-_0803D686:
- ldrb r0, [r4]
- lsls r0, 7
- ldrb r2, [r5, 0x3]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x3]
- b _0803D8E2
-_0803D696:
- ldrb r1, [r4]
- movs r0, 0x1F
- ands r1, r0
- ldrb r2, [r5, 0x4]
- movs r0, 0x20
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x4]
- b _0803D8E2
-_0803D6AA:
- ldrb r1, [r4]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 5
- ldrh r2, [r5, 0x4]
- ldr r0, _0803D6C0
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- b _0803D8E2
- .align 2, 0
-_0803D6C0: .4byte 0xfffffc1f
-_0803D6C4:
- ldrb r1, [r4]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0x7D
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _0803D8E2
-_0803D6DA:
- ldrb r2, [r4]
- movs r0, 0x1F
- ands r2, r0
- lsls r2, 15
- ldr r0, [r5, 0x4]
- ldr r1, _0803D6F0
- ands r0, r1
- orrs r0, r2
- str r0, [r5, 0x4]
- b _0803D8E2
- .align 2, 0
-_0803D6F0: .4byte 0xfff07fff
-_0803D6F4:
- ldrb r1, [r4]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 4
- ldrh r2, [r5, 0x6]
- ldr r0, _0803D708
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x6]
- b _0803D8E2
- .align 2, 0
-_0803D708: .4byte 0xfffffe0f
-_0803D70C:
- ldrb r1, [r4]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r5, 0x7]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- b _0803D8E0
-_0803D720:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 6
- ldrb r2, [r5, 0x7]
- movs r0, 0x41
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x7]
- lsls r0, 25
- cmp r0, 0
- bge _0803D744
- ldrb r0, [r7, 0x13]
- movs r1, 0x4
-_0803D73E:
- orrs r0, r1
- strb r0, [r7, 0x13]
- b _0803D8E2
-_0803D744:
- ldrb r1, [r7, 0x13]
- movs r0, 0x5
- negs r0, r0
-_0803D74A:
- ands r0, r1
- strb r0, [r7, 0x13]
- b _0803D8E2
-_0803D750:
- ldrb r0, [r4]
- lsls r0, 7
- ldrb r2, [r5, 0x7]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x7]
- b _0803D8E2
-_0803D760:
- ldrb r1, [r4]
- movs r0, 0x7
- ands r1, r0
- ldrb r2, [r5, 0x8]
- movs r0, 0x8
- negs r0, r0
- b _0803D77C
-_0803D76E:
- ldrb r1, [r4]
- movs r0, 0x7
- ands r1, r0
- lsls r1, 3
- ldrb r2, [r5, 0x8]
- movs r0, 0x39
- negs r0, r0
-_0803D77C:
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x8]
- b _0803D8E2
-_0803D784:
- ldrb r1, [r4]
- movs r0, 0x7
- ands r1, r0
- lsls r1, 6
- ldrh r2, [r5, 0x8]
- ldr r0, _0803D798
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x8]
- b _0803D8E2
- .align 2, 0
-_0803D798: .4byte 0xfffffe3f
-_0803D79C:
- ldrb r1, [r4]
- movs r0, 0x7
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r5, 0x9]
- movs r0, 0xF
- negs r0, r0
- b _0803D7BA
-_0803D7AC:
- ldrb r1, [r4]
- movs r0, 0x7
- ands r1, r0
- lsls r1, 4
- ldrb r2, [r5, 0x9]
- movs r0, 0x71
- negs r0, r0
-_0803D7BA:
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x9]
- b _0803D8E2
-_0803D7C2:
- ldrb r0, [r4]
- lsls r0, 7
- ldrb r2, [r5, 0x9]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x9]
- b _0803D8E2
-_0803D7D2:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- ldrb r2, [r5, 0xA]
- movs r0, 0x2
- negs r0, r0
- b _0803D83E
-_0803D7E0:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r5, 0xA]
- movs r0, 0x3
- negs r0, r0
- b _0803D83E
-_0803D7F0:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0xA]
- movs r0, 0x5
- negs r0, r0
- b _0803D83E
-_0803D800:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 3
- ldrb r2, [r5, 0xA]
- movs r0, 0x9
- negs r0, r0
- b _0803D83E
-_0803D810:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 4
- ldrb r2, [r5, 0xA]
- movs r0, 0x11
- negs r0, r0
- b _0803D83E
-_0803D820:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 5
- ldrb r2, [r5, 0xA]
- movs r0, 0x21
- negs r0, r0
- b _0803D83E
-_0803D830:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 6
- ldrb r2, [r5, 0xA]
- movs r0, 0x41
- negs r0, r0
-_0803D83E:
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0xA]
- b _0803D8E2
-_0803D846:
- ldrb r0, [r4]
- lsls r0, 7
- ldrb r2, [r5, 0xA]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0xA]
- b _0803D8E2
-_0803D856:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- ldrb r2, [r5, 0xB]
- movs r0, 0x2
- negs r0, r0
- b _0803D882
-_0803D864:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r5, 0xB]
- movs r0, 0x3
- negs r0, r0
- b _0803D882
-_0803D874:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0xB]
- movs r0, 0x5
- negs r0, r0
-_0803D882:
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0xB]
- b _0803D8E2
-_0803D88A:
- ldrb r0, [r4]
- lsls r0, 3
- ldrb r2, [r5, 0xB]
- movs r1, 0x7
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0xB]
- b _0803D8E2
-_0803D89A:
- ldrb r1, [r4]
- movs r4, 0x1F
- adds r2, r1, 0
- ands r2, r4
- ldrb r3, [r5, 0x4]
- movs r0, 0x20
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r5, 0x4]
- lsrs r1, 5
- ands r1, r4
- lsls r1, 5
- ldrh r2, [r5, 0x4]
- ldr r0, _0803D904
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldrb r1, [r5, 0x5]
- movs r0, 0x7D
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x5]
- ldr r0, [r5, 0x4]
- ldr r1, _0803D908
- ands r0, r1
- str r0, [r5, 0x4]
- ldrh r1, [r5, 0x6]
- ldr r0, _0803D90C
- ands r0, r1
- strh r0, [r5, 0x6]
- ldrb r1, [r5, 0x7]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
-_0803D8E0:
- strb r0, [r5, 0x7]
-_0803D8E2:
- mov r0, r10
- cmp r0, 0xA
- ble _0803D8F6
- adds r0, r7, 0
- bl pokemon_calc_checksum
- strh r0, [r7, 0x1C]
- adds r0, r7, 0
- bl pokemon_encrypt
-_0803D8F6:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803D904: .4byte 0xfffffc1f
-_0803D908: .4byte 0xfff07fff
-_0803D90C: .4byte 0xfffffe0f
- thumb_func_end PokemonSetEncryptedField
-
- thumb_func_start memcpy_pokemon
-memcpy_pokemon: @ 803D910
- push {lr}
- bl memcpy
- pop {r0}
- bx r0
- thumb_func_end memcpy_pokemon
-
- thumb_func_start pokemon_catch
-pokemon_catch: @ 803D91C
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r4, _0803D948
- movs r1, 0x7
- adds r2, r4, 0
- bl pokemon_setattr
- adds r2, r4, 0
- adds r2, 0x8
- adds r0, r6, 0
- movs r1, 0x31
- bl pokemon_setattr
- adds r4, 0xA
- adds r0, r6, 0
- movs r1, 0x1
- adds r2, r4, 0
- bl pokemon_setattr
- movs r5, 0
- b _0803D94E
- .align 2, 0
-_0803D948: .4byte gSaveBlock2
-_0803D94C:
- adds r5, 0x1
-_0803D94E:
- cmp r5, 0x5
- bgt _0803D988
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0803D980
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- bne _0803D94C
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0x64
- bl memcpy_pokemon
- ldr r1, _0803D984
- adds r0, r5, 0x1
- strb r0, [r1]
- movs r0, 0
- b _0803D992
- .align 2, 0
-_0803D980: .4byte 0x03004360
-_0803D984: .4byte 0x03004350
-_0803D988:
- adds r0, r6, 0
- bl sub_803D998
- lsls r0, 24
- lsrs r0, 24
-_0803D992:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end pokemon_catch
-
- thumb_func_start sub_803D998
-sub_803D998: @ 803D998
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- mov r9, r0
- ldr r0, _0803D9E8
- ldrb r5, [r0]
-_0803D9A8:
- movs r7, 0
- lsls r1, r5, 2
- adds r1, r5
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- mov r8, r0
- movs r6, 0
-_0803D9B8:
- ldr r3, _0803D9EC
- adds r0, r6, r3
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- str r3, [sp]
- bl PokemonGetEncryptedField
- ldr r3, [sp]
- cmp r0, 0
- bne _0803D9F0
- mov r0, r9
- bl sub_8040B1C
- adds r0, r4, 0
- mov r1, r9
- movs r2, 0x50
- bl memcpy_pokemon
- movs r0, 0x1
- b _0803DA0A
- .align 2, 0
-_0803D9E8: .4byte 0x020300a0
-_0803D9EC: .4byte 0x020300a4
-_0803D9F0:
- adds r6, 0x50
- adds r7, 0x1
- cmp r7, 0x1D
- ble _0803D9B8
- adds r5, 0x1
- cmp r5, 0xE
- bne _0803DA00
- movs r5, 0
-_0803DA00:
- subs r0, r3, 0x4
- ldrb r0, [r0]
- cmp r5, r0
- bne _0803D9A8
- movs r0, 0x2
-_0803DA0A:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803D998
-
- thumb_func_start calc_player_party_count
-calc_player_party_count: @ 803DA18
- push {r4,lr}
- ldr r0, _0803DA24
- movs r1, 0
- strb r1, [r0]
- b _0803DA30
- .align 2, 0
-_0803DA24: .4byte 0x03004350
-_0803DA28:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r0, r4, 0
-_0803DA30:
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0x5
- bhi _0803DA4E
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0803DA58
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- bne _0803DA28
-_0803DA4E:
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0803DA58: .4byte 0x03004360
- thumb_func_end calc_player_party_count
-
- thumb_func_start calc_enemy_party_count
-calc_enemy_party_count: @ 803DA5C
- push {r4,lr}
- ldr r0, _0803DA68
- movs r1, 0
- strb r1, [r0]
- b _0803DA74
- .align 2, 0
-_0803DA68: .4byte 0x030045b8
-_0803DA6C:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r0, r4, 0
-_0803DA74:
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0x5
- bhi _0803DA92
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0803DA9C
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- bne _0803DA6C
-_0803DA92:
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0803DA9C: .4byte 0x030045c0
- thumb_func_end calc_enemy_party_count
-
- thumb_func_start sub_803DAA0
-sub_803DAA0: @ 803DAA0
- push {r4-r6,lr}
- movs r6, 0
- bl calc_player_party_count
- ldr r1, _0803DB0C
- ldrb r0, [r1]
- cmp r0, 0x1
- beq _0803DB04
- movs r5, 0
- ldrb r1, [r1]
- cmp r6, r1
- bge _0803DAFC
-_0803DAB8:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0803DB10
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- beq _0803DAF2
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- beq _0803DAF2
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl PokemonGetField
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0803DAF2
- adds r6, 0x1
-_0803DAF2:
- adds r5, 0x1
- ldr r0, _0803DB0C
- ldrb r0, [r0]
- cmp r5, r0
- blt _0803DAB8
-_0803DAFC:
- movs r0, 0
- cmp r6, 0x1
- bgt _0803DB04
- movs r0, 0x2
-_0803DB04:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0803DB0C: .4byte 0x03004350
-_0803DB10: .4byte 0x03004360
- thumb_func_end sub_803DAA0
-
- thumb_func_start sub_803DB14
-sub_803DB14: @ 803DB14
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- cmp r1, 0
- beq _0803DB38
- ldr r2, _0803DB30
- ldr r1, _0803DB34
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x17]
- b _0803DB46
- .align 2, 0
-_0803DB30: .4byte 0x02024c06
-_0803DB34: .4byte gBaseStats
-_0803DB38:
- ldr r2, _0803DB50
- ldr r1, _0803DB54
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x16]
-_0803DB46:
- strb r0, [r2]
- ldrb r0, [r2]
- pop {r1}
- bx r1
- .align 2, 0
-_0803DB50: .4byte 0x02024c06
-_0803DB54: .4byte gBaseStats
- thumb_func_end sub_803DB14
-
- thumb_func_start GetMonAbility
-GetMonAbility: @ 803DB58
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x2E
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_803DB14
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetMonAbility
-
- thumb_func_start create_enemy_party
-create_enemy_party: @ 803DB8C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- adds r4, r0, 0
- bl zero_enemy_party_data
- ldr r5, _0803DC8C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xA0
- bl memcpy
- movs r7, 0
-_0803DBAC:
- lsls r0, r7, 1
- mov r9, r0
- ldr r2, _0803DC8C
- adds r2, 0x7C
- mov r10, r2
- mov r1, r9
- add r1, r10
- ldrh r0, [r1]
- adds r2, r7, 0x1
- str r2, [sp, 0x10]
- cmp r0, 0
- beq _0803DC64
- movs r0, 0x64
- adds r6, r7, 0
- muls r6, r0
- ldr r2, _0803DC90
- mov r8, r2
- adds r5, r6, r2
- ldrh r1, [r1]
- ldr r0, _0803DC8C
- adds r0, 0x94
- adds r0, r7, r0
- ldrb r2, [r0]
- movs r0, 0x1
- str r0, [sp]
- lsls r4, r7, 2
- ldr r0, _0803DC8C
- adds r0, 0x34
- adds r0, r4, r0
- ldr r0, [r0]
- str r0, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r3, 0xF
- bl create_pokemon_set_level
- ldr r2, _0803DC94
- add r2, r9
- adds r0, r5, 0
- movs r1, 0xC
- bl pokemon_setattr
- movs r5, 0
- mov r9, r4
- mov r3, r8
- mov r4, r10
- adds r4, 0x1E
-_0803DC10:
- adds r1, r5, 0
- adds r1, 0x1A
- adds r0, r6, r3
- adds r2, r7, r4
- str r3, [sp, 0x14]
- bl pokemon_setattr
- adds r5, 0x1
- ldr r3, [sp, 0x14]
- cmp r5, 0x5
- ble _0803DC10
- movs r5, 0
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _0803DC90
- adds r7, r1, r0
- mov r2, r9
- lsls r6, r2, 1
-_0803DC36:
- adds r1, r5, 0
- adds r1, 0xD
- ldr r4, _0803DC98
- adds r4, r6, r4
- adds r0, r7, 0
- adds r2, r4, 0
- bl pokemon_setattr
- adds r1, r5, 0
- adds r1, 0x11
- ldrh r0, [r4]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- ldr r0, _0803DC9C
- adds r2, r0
- adds r0, r7, 0
- bl pokemon_setattr
- adds r6, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _0803DC36
-_0803DC64:
- ldr r7, [sp, 0x10]
- cmp r7, 0x5
- ble _0803DBAC
- ldr r1, _0803DCA0
- movs r0, 0x8
- strh r0, [r1]
- ldr r1, _0803DCA4
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803DC8C: .4byte 0x02017000
-_0803DC90: .4byte 0x030045c0
-_0803DC94: .4byte 0x02017088
-_0803DC98: .4byte 0x0201704c
-_0803DC9C: .4byte gBattleMoves + 0x4 @ PP offset
-_0803DCA0: .4byte 0x020239f8
-_0803DCA4: .4byte 0x0202ff5e
- thumb_func_end create_enemy_party
-
- thumb_func_start sub_803DCA8
-sub_803DCA8: @ 803DCA8
- push {r4,r5,lr}
- ldr r5, _0803DCD8
- ldr r4, _0803DCDC
- ldrb r0, [r4, 0x9]
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r4, 0x1]
- lsls r2, 27
- lsrs r2, 31
- lsls r1, r2, 2
- adds r1, r2
- adds r0, r1
- adds r0, r5
- ldrb r0, [r0]
- ldr r1, _0803DCE0
- adds r0, r1
- ldrb r0, [r0]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0803DCD8: .4byte gUnknown_082082E8
-_0803DCDC: .4byte 0x02017000
-_0803DCE0: .4byte gTrainerClassToPicIndex
- thumb_func_end sub_803DCA8
-
- thumb_func_start sub_803DCE4
-sub_803DCE4: @ 803DCE4
- push {r4,r5,lr}
- ldr r5, _0803DD14
- ldr r4, _0803DD18
- ldrb r0, [r4, 0x9]
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r4, 0x1]
- lsls r2, 27
- lsrs r2, 31
- lsls r1, r2, 2
- adds r1, r2
- adds r0, r1
- adds r0, r5
- ldrb r0, [r0]
- ldr r1, _0803DD1C
- adds r0, r1
- ldrb r0, [r0]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0803DD14: .4byte gUnknown_082082E8
-_0803DD18: .4byte 0x02017000
-_0803DD1C: .4byte gTrainerClassToNameIndex
- thumb_func_end sub_803DCE4
-
- thumb_func_start sub_803DD20
-sub_803DD20: @ 803DD20
- push {r4,lr}
- movs r4, 0
-_0803DD24:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _0803DD3C
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- bne _0803DD40
- movs r0, 0
- b _0803DD4E
- .align 2, 0
-_0803DD3C: .4byte 0x03004360
-_0803DD40:
- adds r4, 0x1
- cmp r4, 0x5
- ble _0803DD24
- bl sub_803DD54
- lsls r0, 24
- lsrs r0, 24
-_0803DD4E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_803DD20
-
- thumb_func_start sub_803DD54
-sub_803DD54: @ 803DD54
- push {r4-r7,lr}
- sub sp, 0x4
- movs r3, 0
- movs r7, 0
-_0803DD5C:
- movs r5, 0
- adds r6, r7, 0
- movs r4, 0
-_0803DD62:
- ldr r0, _0803DD7C
- adds r0, r4, r0
- adds r0, r6, r0
- movs r1, 0xB
- movs r2, 0
- str r3, [sp]
- bl PokemonGetEncryptedField
- ldr r3, [sp]
- cmp r0, 0
- bne _0803DD80
- movs r0, 0
- b _0803DD96
- .align 2, 0
-_0803DD7C: .4byte 0x020300a4
-_0803DD80:
- adds r4, 0x50
- adds r5, 0x1
- cmp r5, 0x1D
- ble _0803DD62
- movs r0, 0x96
- lsls r0, 4
- adds r7, r0
- adds r3, 0x1
- cmp r3, 0xD
- ble _0803DD5C
- movs r0, 0x1
-_0803DD96:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803DD54
-
- thumb_func_start GetSpeciesName
-GetSpeciesName: @ 803DDA0
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- movs r1, 0
- movs r0, 0xCE
- lsls r0, 1
- mov r12, r0
- ldr r7, _0803DDBC
- movs r0, 0xB
- muls r0, r5
- adds r3, r0, r7
- adds r2, r6, 0
- b _0803DDC6
- .align 2, 0
-_0803DDBC: .4byte gSpeciesNames
-_0803DDC0:
- adds r3, 0x1
- adds r2, 0x1
- adds r1, 0x1
-_0803DDC6:
- adds r4, r6, r1
- cmp r1, 0xA
- bgt _0803DDE0
- cmp r5, r12
- bls _0803DDD6
- adds r0, r1, r7
- ldrb r0, [r0]
- b _0803DDD8
-_0803DDD6:
- ldrb r0, [r3]
-_0803DDD8:
- strb r0, [r2]
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _0803DDC0
-_0803DDE0:
- movs r0, 0xFF
- strb r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end GetSpeciesName
-
- thumb_func_start CalcPPWithPPUps
-CalcPPWithPPUps: @ 803DDEC
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 24
- lsrs r2, 24
- ldr r4, _0803DE2C
- lsls r3, r0, 1
- adds r3, r0
- lsls r3, 2
- adds r3, r4
- ldrb r4, [r3, 0x4]
- ldr r0, _0803DE30
- adds r0, r2, r0
- ldrb r3, [r0]
- ands r3, r1
- lsls r2, 1
- asrs r3, r2
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- muls r0, r4
- movs r1, 0x64
- bl __divsi3
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0803DE2C: .4byte gBattleMoves
-_0803DE30: .4byte gUnknown_08208238
- thumb_func_end CalcPPWithPPUps
-
- thumb_func_start sub_803DE34
-sub_803DE34: @ 803DE34
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- ldr r1, _0803DE6C
- adds r4, r1
- ldrb r1, [r4]
- ands r1, r0
- mov r0, sp
- strb r1, [r0]
- adds r0, r5, 0
- movs r1, 0x15
- mov r2, sp
- bl pokemon_setattr
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803DE6C: .4byte gUnknown_0820823C
- thumb_func_end sub_803DE34
-
- thumb_func_start sub_803DE70
-sub_803DE70: @ 803DE70
- lsls r1, 24
- lsrs r1, 24
- adds r0, 0x3B
- ldr r2, _0803DE84
- adds r1, r2
- ldrb r2, [r0]
- ldrb r1, [r1]
- ands r1, r2
- strb r1, [r0]
- bx lr
- .align 2, 0
-_0803DE84: .4byte gUnknown_0820823C
- thumb_func_end sub_803DE70
-
- thumb_func_start battle_data_fill
-battle_data_fill: @ 803DE88
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r0, 0x64
- mov r5, r9
- muls r5, r0
- ldr r0, _0803E170
- adds r5, r0
- adds r0, r5, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- ldr r1, _0803E174
- mov r8, r1
- movs r1, 0x58
- ldr r2, [sp, 0x14]
- adds r4, r2, 0
- muls r4, r1
- mov r3, r8
- adds r6, r4, r3
- strh r0, [r6]
- adds r0, r5, 0
- movs r1, 0xC
- movs r2, 0
- bl PokemonGetField
- strh r0, [r6, 0x2E]
- movs r6, 0
- mov r0, r8
- adds r0, 0x24
- adds r7, r4, r0
-_0803DEDA:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r5, 0
- movs r2, 0
- bl PokemonGetField
- movs r1, 0xC
- add r1, r8
- mov r10, r1
- adds r1, r4, r1
- strh r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r5, 0
- movs r2, 0
- bl PokemonGetField
- strb r0, [r7]
- adds r7, 0x1
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0803DEDA
- movs r0, 0x64
- mov r4, r9
- muls r4, r0
- ldr r0, _0803E170
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- movs r2, 0xC
- negs r2, r2
- add r2, r10
- mov r9, r2
- movs r1, 0x58
- ldr r3, [sp, 0x14]
- adds r5, r3, 0
- muls r5, r1
- adds r7, r5, r2
- adds r1, r7, 0
- adds r1, 0x3B
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x20
- movs r2, 0
- bl PokemonGetField
- adds r1, r7, 0
- adds r1, 0x2B
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x19
- movs r2, 0
- bl PokemonGetField
- mov r1, r10
- adds r1, 0x38
- adds r1, r5, r1
- str r0, [r1]
- adds r0, r4, 0
- movs r1, 0x27
- movs r2, 0
- bl PokemonGetField
- movs r6, 0x1F
- ands r0, r6
- ldrb r2, [r7, 0x14]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x14]
- adds r0, r4, 0
- movs r1, 0x28
- movs r2, 0
- bl PokemonGetField
- movs r1, 0x1F
- mov r8, r1
- mov r2, r8
- ands r0, r2
- lsls r0, 5
- ldrh r2, [r7, 0x14]
- ldr r1, _0803E178
- ands r1, r2
- orrs r1, r0
- strh r1, [r7, 0x14]
- adds r0, r4, 0
- movs r1, 0x29
- movs r2, 0
- bl PokemonGetField
- ands r0, r6
- lsls r0, 2
- ldrb r2, [r7, 0x15]
- movs r1, 0x7D
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x15]
- adds r0, r4, 0
- movs r1, 0x2A
- movs r2, 0
- bl PokemonGetField
- movs r1, 0x1F
- ands r1, r0
- lsls r1, 15
- ldr r0, [r7, 0x14]
- ldr r2, _0803E17C
- ands r0, r2
- orrs r0, r1
- str r0, [r7, 0x14]
- adds r0, r4, 0
- movs r1, 0x2B
- movs r2, 0
- bl PokemonGetField
- mov r3, r8
- ands r0, r3
- lsls r0, 4
- ldrh r2, [r7, 0x16]
- ldr r1, _0803E180
- ands r1, r2
- orrs r1, r0
- strh r1, [r7, 0x16]
- adds r0, r4, 0
- movs r1, 0x2C
- movs r2, 0
- bl PokemonGetField
- ands r0, r6
- lsls r0, 1
- ldrb r2, [r7, 0x17]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x17]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl PokemonGetField
- mov r1, r10
- adds r1, 0x3C
- adds r1, r5, r1
- str r0, [r1]
- adds r0, r4, 0
- movs r1, 0x37
- movs r2, 0
- bl PokemonGetField
- mov r1, r10
- adds r1, 0x40
- adds r1, r5, r1
- str r0, [r1]
- adds r0, r4, 0
- movs r1, 0x38
- movs r2, 0
- bl PokemonGetField
- adds r1, r7, 0
- adds r1, 0x2A
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x39
- movs r2, 0
- bl PokemonGetField
- strh r0, [r7, 0x28]
- adds r0, r4, 0
- movs r1, 0x3A
- movs r2, 0
- bl PokemonGetField
- strh r0, [r7, 0x2C]
- adds r0, r4, 0
- movs r1, 0x3B
- movs r2, 0
- bl PokemonGetField
- strh r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- movs r2, 0
- bl PokemonGetField
- strh r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- movs r2, 0
- bl PokemonGetField
- strh r0, [r7, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- movs r2, 0
- bl PokemonGetField
- strh r0, [r7, 0x8]
- adds r0, r4, 0
- movs r1, 0x3F
- movs r2, 0
- bl PokemonGetField
- strh r0, [r7, 0xA]
- adds r0, r4, 0
- movs r1, 0x2D
- movs r2, 0
- bl PokemonGetField
- movs r1, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r7, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- movs r2, 0
- bl PokemonGetField
- lsls r0, 7
- ldrb r2, [r7, 0x17]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x17]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl PokemonGetField
- mov r1, r10
- adds r1, 0x48
- adds r1, r5, r1
- str r0, [r1]
- ldr r2, _0803E184
- ldrh r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- adds r1, r7, 0
- adds r1, 0x21
- strb r0, [r1]
- ldrh r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x7]
- adds r1, r7, 0
- adds r1, 0x22
- strb r0, [r1]
- ldrh r0, [r7]
- ldrb r1, [r7, 0x17]
- lsrs r1, 7
- bl sub_803DB14
- adds r1, r7, 0
- adds r1, 0x20
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl PokemonGetField
- mov r0, r10
- adds r0, 0x24
- adds r0, r5, r0
- mov r1, sp
- bl StringCopy10
- mov r2, r10
- adds r2, 0x30
- adds r2, r5, r2
- adds r0, r4, 0
- movs r1, 0x7
- bl PokemonGetField
- ldr r0, [sp, 0x14]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 23
- ldr r1, _0803E188
- adds r0, r1
- ldrh r1, [r7, 0x28]
- strh r1, [r0]
- movs r2, 0x6
- mov r1, r9
- movs r6, 0x7
- add r5, r10
- adds r0, r5, 0
- adds r0, 0x13
-_0803E13A:
- strb r2, [r0]
- subs r0, 0x1
- subs r6, 0x1
- cmp r6, 0
- bge _0803E13A
- movs r2, 0
- movs r0, 0x58
- ldr r3, [sp, 0x14]
- muls r0, r3
- adds r1, 0x50
- adds r0, r1
- str r2, [r0]
- ldr r0, [sp, 0x14]
- bl sub_80157C4
- ldr r0, [sp, 0x14]
- movs r1, 0
- bl sub_8032AA8
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803E170: .4byte 0x03004360
-_0803E174: .4byte 0x02024a80
-_0803E178: .4byte 0xfffffc1f
-_0803E17C: .4byte 0xfff07fff
-_0803E180: .4byte 0xfffffe0f
-_0803E184: .4byte gBaseStats
-_0803E188: .4byte 0x020160bc
- thumb_func_end battle_data_fill
-
- thumb_func_start ExecuteTableBasedItemEffect_
-ExecuteTableBasedItemEffect_: @ 803E18C
- push {r4,lr}
- sub sp, 0x4
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r4, 0
- str r4, [sp]
- bl sub_803E1B0
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ExecuteTableBasedItemEffect_
-
- thumb_func_start sub_803E1B0
-sub_803E1B0: @ 803E1B0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- mov r8, r0
- ldr r0, [sp, 0x5C]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x8]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0xC]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x10]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- movs r0, 0x1
- str r0, [sp, 0x1C]
- movs r1, 0x6
- str r1, [sp, 0x24]
- movs r2, 0
- str r2, [sp, 0x2C]
- movs r3, 0x4
- str r3, [sp, 0x34]
- mov r0, r8
- movs r1, 0xC
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803E240
- ldr r0, _0803E21C
- ldr r4, _0803E220
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E22C
- ldr r2, _0803E224
- ldr r0, _0803E228
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x7]
- b _0803E248
- .align 2, 0
-_0803E21C: .4byte 0x03001770
-_0803E220: .4byte 0x0000043d
-_0803E224: .4byte 0x02024df0
-_0803E228: .4byte 0x02024e6c
-_0803E22C:
- ldr r0, _0803E238
- ldr r5, _0803E23C
- adds r0, r5
- ldrb r0, [r0]
- b _0803E248
- .align 2, 0
-_0803E238: .4byte 0x02025734
-_0803E23C: .4byte 0x00003688
-_0803E240:
- bl itemid_get_x12
- lsls r0, 24
- lsrs r0, 24
-_0803E248:
- str r0, [sp, 0x30]
- ldr r1, _0803E2A4
- ldr r0, _0803E2A8
- ldrb r2, [r0]
- strb r2, [r1]
- ldr r0, _0803E2AC
- ldr r1, _0803E2B0
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0803E2E8
- ldr r0, _0803E2B4
- strb r2, [r0]
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- str r1, [sp, 0x18]
- ldr r0, _0803E2B8
- ldr r4, [sp, 0x8]
- subs r4, 0xD
- ldrb r0, [r0]
- cmp r1, r0
- bge _0803E2F4
- ldr r2, _0803E2BC
- lsls r0, r1, 1
- adds r0, r2
- ldrh r3, [r0]
- ldr r5, [sp, 0xC]
- lsls r0, r5, 16
- lsrs r1, r0, 16
- adds r5, r0, 0
- cmp r3, r1
- bne _0803E2C0
- ldr r0, [sp, 0x18]
- str r0, [sp, 0x34]
- b _0803E2F4
- .align 2, 0
-_0803E2A4: .4byte 0x02024c0b
-_0803E2A8: .4byte 0x02024e6c
-_0803E2AC: .4byte 0x03001770
-_0803E2B0: .4byte 0x0000043d
-_0803E2B4: .4byte 0x02024a60
-_0803E2B8: .4byte 0x02024a68
-_0803E2BC: .4byte 0x02024a6a
-_0803E2C0:
- ldr r1, [sp, 0x18]
- adds r1, 0x2
- str r1, [sp, 0x18]
- ldr r0, _0803E2E4
- ldrb r0, [r0]
- cmp r1, r0
- bge _0803E2F4
- lsls r0, r1, 1
- adds r0, r2
- ldrh r1, [r0]
- lsrs r0, r5, 16
- cmp r1, r0
- bne _0803E2C0
- ldr r2, [sp, 0x18]
- lsls r0, r2, 24
- lsrs r0, 24
- str r0, [sp, 0x34]
- b _0803E2F4
- .align 2, 0
-_0803E2E4: .4byte 0x02024a68
-_0803E2E8:
- ldr r0, _0803E310
- strb r1, [r0]
- movs r3, 0x4
- str r3, [sp, 0x34]
- ldr r4, [sp, 0x8]
- subs r4, 0xD
-_0803E2F4:
- lsls r0, r4, 16
- lsrs r0, 16
- cmp r0, 0xA5
- bhi _0803E36C
- ldr r1, _0803E314
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _0803E318
- ldr r4, [sp, 0x8]
- cmp r4, 0xAF
- beq _0803E31E
- b _0803E36C
- .align 2, 0
-_0803E310: .4byte 0x02024a60
-_0803E314: .4byte gItemEffectTable
-_0803E318:
- ldr r5, [sp, 0x8]
- cmp r5, 0xAF
- bne _0803E372
-_0803E31E:
- ldr r0, _0803E340
- ldr r1, _0803E344
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E350
- ldr r0, _0803E348
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _0803E34C
- adds r0, r1
- b _0803E372
- .align 2, 0
-_0803E340: .4byte 0x03001770
-_0803E344: .4byte 0x0000043d
-_0803E348: .4byte 0x02024a60
-_0803E34C: .4byte 0x02024df8
-_0803E350:
- ldr r2, _0803E358
- str r2, [sp, 0x20]
- b _0803E374
- .align 2, 0
-_0803E358: .4byte 0x02028daa
-_0803E35C:
- mov r0, r8
- movs r2, 0
- ldr r3, [sp, 0xC]
- bl sub_8111924
- movs r0, 0
- bl _0803F15C
-_0803E36C:
- movs r0, 0x1
- bl _0803F15C
-_0803E372:
- str r0, [sp, 0x20]
-_0803E374:
- movs r3, 0
- str r3, [sp, 0x18]
-_0803E378:
- ldr r4, [sp, 0x18]
- cmp r4, 0x5
- bls _0803E382
- bl _0803F14C
-_0803E382:
- lsls r0, r4, 2
- ldr r1, _0803E38C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803E38C: .4byte _0803E390
- .align 2, 0
-_0803E390:
- .4byte _0803E3A8
- .4byte _0803E474
- .4byte _0803E508
- .4byte _0803E59C
- .4byte _0803E77C
- .4byte _0803EE1E
-_0803E3A8:
- ldr r5, [sp, 0x20]
- ldr r0, [sp, 0x18]
- adds r2, r5, r0
- ldrb r1, [r2]
- movs r0, 0x80
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- beq _0803E3F0
- ldr r0, _0803E460
- ldr r1, _0803E464
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E3F0
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803E3F0
- ldr r1, _0803E468
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r1
- cmp r0, 0
- beq _0803E3F0
- ldr r0, _0803E46C
- ands r1, r0
- str r1, [r2]
- movs r3, 0
- str r3, [sp, 0x1C]
-_0803E3F0:
- ldrb r1, [r6]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _0803E41E
- ldr r1, _0803E468
- ldr r0, _0803E470
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 13
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0803E41E
- orrs r1, r3
- str r1, [r2]
- movs r4, 0
- str r4, [sp, 0x1C]
-_0803E41E:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _0803E42C
- bl _0803F14C
-_0803E42C:
- ldr r6, _0803E468
- ldr r5, _0803E470
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x19]
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _0803E446
- bl _0803F14C
-_0803E446:
- adds r0, r2, r3
- strb r0, [r1, 0x19]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- bgt _0803E45A
- b _0803E74E
-_0803E45A:
- movs r0, 0xC
- strb r0, [r1, 0x19]
- b _0803E74E
- .align 2, 0
-_0803E460: .4byte 0x03001770
-_0803E464: .4byte 0x0000043d
-_0803E468: .4byte 0x02024a80
-_0803E46C: .4byte 0xfff0ffff
-_0803E470: .4byte 0x02024a60
-_0803E474:
- ldr r0, [sp, 0x20]
- ldr r1, [sp, 0x18]
- adds r2, r0, r1
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- lsls r3, r0, 24
- adds r6, r2, 0
- cmp r3, 0
- beq _0803E4BA
- ldr r7, _0803E500
- ldr r5, _0803E504
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r7
- ldrb r2, [r1, 0x1A]
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _0803E4BA
- lsrs r0, r3, 28
- adds r0, r2, r0
- strb r0, [r1, 0x1A]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r7
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0803E4B6
- movs r0, 0xC
- strb r0, [r1, 0x1A]
-_0803E4B6:
- movs r2, 0
- str r2, [sp, 0x1C]
-_0803E4BA:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _0803E4C8
- bl _0803F14C
-_0803E4C8:
- ldr r6, _0803E500
- ldr r5, _0803E504
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x1B]
- movs r0, 0x1B
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _0803E4E2
- bl _0803F14C
-_0803E4E2:
- adds r0, r2, r3
- strb r0, [r1, 0x1B]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x1B
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0803E4F8
- movs r0, 0xC
- strb r0, [r1, 0x1B]
-_0803E4F8:
- movs r3, 0
- str r3, [sp, 0x1C]
- bl _0803F14C
- .align 2, 0
-_0803E500: .4byte 0x02024a80
-_0803E504: .4byte 0x02024a60
-_0803E508:
- ldr r4, [sp, 0x20]
- ldr r5, [sp, 0x18]
- adds r2, r4, r5
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- lsls r3, r0, 24
- adds r6, r2, 0
- cmp r3, 0
- beq _0803E54E
- ldr r7, _0803E594
- ldr r5, _0803E598
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r7
- ldrb r2, [r1, 0x1E]
- movs r0, 0x1E
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _0803E54E
- lsrs r0, r3, 28
- adds r0, r2, r0
- strb r0, [r1, 0x1E]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r7
- movs r0, 0x1E
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0803E54A
- movs r0, 0xC
- strb r0, [r1, 0x1E]
-_0803E54A:
- movs r0, 0
- str r0, [sp, 0x1C]
-_0803E54E:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _0803E55C
- bl _0803F14C
-_0803E55C:
- ldr r6, _0803E594
- ldr r5, _0803E598
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x1C]
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _0803E576
- bl _0803F14C
-_0803E576:
- adds r0, r2, r3
- strb r0, [r1, 0x1C]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0803E58C
- movs r0, 0xC
- strb r0, [r1, 0x1C]
-_0803E58C:
- movs r1, 0
- str r1, [sp, 0x1C]
- bl _0803F14C
- .align 2, 0
-_0803E594: .4byte 0x02024a80
-_0803E598: .4byte 0x02024a60
-_0803E59C:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x18]
- adds r2, r3, r4
- ldrb r1, [r2]
- movs r0, 0x80
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- beq _0803E5E4
- ldr r5, _0803E758
- ldr r4, _0803E75C
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- bne _0803E5E4
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x5
- strb r0, [r1, 0x2]
- movs r5, 0
- str r5, [sp, 0x1C]
-_0803E5E4:
- ldrb r1, [r6]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0803E646
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0x64
- beq _0803E646
- ldr r5, _0803E760
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- adds r4, 0x1
- lsls r4, 2
- ldr r2, _0803E764
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r1
- adds r4, r0
- adds r4, r5
- ldr r0, [r4]
- str r0, [sp]
- mov r0, r8
- movs r1, 0x19
- mov r2, sp
- bl pokemon_setattr
- mov r0, r8
- bl pokemon_calc_effective_stats
- movs r0, 0
- str r0, [sp, 0x1C]
-_0803E646:
- ldrb r1, [r6]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0803E682
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x7
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E682
- ldr r1, [sp, 0x34]
- cmp r1, 0x4
- beq _0803E67E
- ldr r1, _0803E768
- movs r0, 0x58
- ldr r3, [sp, 0x34]
- adds r2, r3, 0
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _0803E76C
- ands r0, r1
- str r0, [r2]
-_0803E67E:
- movs r4, 0
- str r4, [sp, 0x1C]
-_0803E682:
- ldrb r1, [r6]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0803E6A2
- ldr r2, _0803E770
- mov r0, r8
- ldr r1, [sp, 0xC]
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E6A2
- movs r5, 0
- str r5, [sp, 0x1C]
-_0803E6A2:
- ldrb r1, [r6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803E6C2
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x10
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E6C2
- movs r0, 0
- str r0, [sp, 0x1C]
-_0803E6C2:
- ldrb r1, [r6]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803E6E2
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x20
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E6E2
- movs r1, 0
- str r1, [sp, 0x1C]
-_0803E6E2:
- ldrb r1, [r6]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E702
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x40
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E702
- movs r2, 0
- str r2, [sp, 0x1C]
-_0803E702:
- ldrb r1, [r6]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0803E710
- bl _0803F14C
-_0803E710:
- ldr r0, _0803E774
- ldr r3, _0803E778
- adds r0, r3
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0803E724
- bl _0803F14C
-_0803E724:
- ldr r4, [sp, 0x34]
- cmp r4, 0x4
- bne _0803E72E
- bl _0803F14C
-_0803E72E:
- ldr r1, _0803E768
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0803E746
- bl _0803F14C
-_0803E746:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
-_0803E74E:
- movs r5, 0
- str r5, [sp, 0x1C]
- bl _0803F14C
- .align 2, 0
-_0803E758: .4byte 0x02024c80
-_0803E75C: .4byte 0x02024a60
-_0803E760: .4byte gExperienceTables
-_0803E764: .4byte gBaseStats
-_0803E768: .4byte 0x02024a80
-_0803E76C: .4byte 0xf7ffffff
-_0803E770: .4byte 0x00000f88
-_0803E774: .4byte 0x03001770
-_0803E778: .4byte 0x0000043d
-_0803E77C:
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x18]
- adds r0, r1, r2
- ldrb r0, [r0]
- mov r10, r0
- movs r0, 0x20
- mov r3, r10
- ands r0, r3
- cmp r0, 0
- beq _0803E854
- movs r0, 0xDF
- ands r3, r0
- mov r10, r3
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- ldr r1, _0803E880
- ldr r4, [sp, 0x10]
- adds r1, r4, r1
- ldrb r1, [r1]
- ands r0, r1
- lsls r1, r4, 1
- lsrs r0, r1
- str r0, [sp]
- adds r5, r4, 0
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalcPPWithPPUps
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x28]
- ldr r0, [sp]
- cmp r0, 0x2
- bhi _0803E854
- ldr r0, [sp, 0x28]
- cmp r0, 0x4
- bls _0803E854
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- ldr r1, _0803E884
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- movs r1, 0x15
- mov r2, sp
- bl pokemon_setattr
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, [sp, 0x10]
- bl CalcPPWithPPUps
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [sp, 0x28]
- subs r0, r3
- str r0, [sp]
- ldr r4, [sp, 0x10]
- adds r4, 0x11
- mov r0, r8
- adds r1, r4, 0
- movs r2, 0
- bl PokemonGetField
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r2, sp
- bl pokemon_setattr
- movs r4, 0
- str r4, [sp, 0x1C]
-_0803E854:
- movs r5, 0
- str r5, [sp, 0x28]
- mov r0, r10
- cmp r0, 0
- bne _0803E862
- bl _0803F14C
-_0803E862:
- movs r0, 0x1
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- bne _0803E86E
- b _0803EE0A
-_0803E86E:
- ldr r2, [sp, 0x28]
- cmp r2, 0x7
- bls _0803E876
- b _0803EE0A
-_0803E876:
- lsls r0, r2, 2
- ldr r1, _0803E888
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803E880: .4byte gUnknown_08208238
-_0803E884: .4byte gUnknown_08208240
-_0803E888: .4byte _0803E88C
- .align 2, 0
-_0803E88C:
- .4byte _0803E8AC
- .4byte _0803E8AC
- .4byte _0803E934
- .4byte _0803EB5C
- .4byte _0803EE0A
- .4byte _0803EE0A
- .4byte _0803EE0A
- .4byte _0803EDF4
-_0803E8AC:
- mov r0, r8
- bl sub_8040020
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _0803E8EC
- cmp r5, r0
- bls _0803E8BE
- b _0803E36C
-_0803E8BE:
- ldr r0, _0803E8F0
- ldr r3, [sp, 0x28]
- adds r0, r3, r0
- ldrb r1, [r0]
- mov r0, r8
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- str r1, [sp]
- cmp r1, 0x63
- bls _0803E8D8
- b _0803EE0A
-_0803E8D8:
- ldr r4, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x64
- bls _0803E8F4
- adds r0, 0x64
- subs r4, r0, r1
- b _0803E8F6
- .align 2, 0
-_0803E8EC: .4byte 0x000001fd
-_0803E8F0: .4byte gUnknown_082082F2
-_0803E8F4:
- adds r4, r0, 0
-_0803E8F6:
- adds r1, r5, r4
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- bls _0803E904
- adds r0, r4, r0
- subs r4, r0, r1
-_0803E904:
- ldr r0, [sp]
- adds r0, r4
- str r0, [sp]
- ldr r0, _0803E930
- ldr r3, [sp, 0x28]
- adds r0, r3, r0
- ldrb r1, [r0]
- mov r0, r8
- mov r2, sp
- bl pokemon_setattr
- mov r0, r8
- bl pokemon_calc_effective_stats
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- movs r4, 0
- str r4, [sp, 0x1C]
- b _0803EE0A
- .align 2, 0
-_0803E930: .4byte gUnknown_082082F2
-_0803E934:
- movs r0, 0x10
- mov r5, r10
- ands r0, r5
- cmp r0, 0
- beq _0803E9F4
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- beq _0803E954
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- b _0803EC9E
-_0803E954:
- ldr r0, _0803E99C
- ldr r1, _0803E9A0
- adds r0, r1
- ldrb r1, [r0]
- movs r4, 0x2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803EA0A
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803E9B4
- ldr r2, _0803E9A4
- ldr r1, _0803E9A8
- ldr r3, [sp, 0x34]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r2]
- bics r0, r1
- strb r0, [r2]
- ldr r1, _0803E9AC
- lsls r0, r3, 1
- adds r0, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, [sp, 0x34]
- bl battle_data_fill
- ldr r0, _0803E9B0
- ldrb r0, [r0]
- b _0803E9CC
- .align 2, 0
-_0803E99C: .4byte 0x03001770
-_0803E9A0: .4byte 0x0000043d
-_0803E9A4: .4byte 0x02024c0c
-_0803E9A8: .4byte gBitTable
-_0803E9AC: .4byte 0x02024a6a
-_0803E9B0: .4byte 0x02024a60
-_0803E9B4:
- ldr r3, _0803E9E4
- ldr r1, _0803E9E8
- ldr r2, _0803E9EC
- ldrb r0, [r2]
- eors r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r3]
- bics r0, r1
- strb r0, [r3]
- ldrb r0, [r2]
-_0803E9CC:
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803EA0A
- ldr r1, _0803E9F0
- ldrb r0, [r1, 0x4]
- cmp r0, 0xFE
- bhi _0803EA0A
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _0803EA0A
- .align 2, 0
-_0803E9E4: .4byte 0x02024c0c
-_0803E9E8: .4byte gBitTable
-_0803E9EC: .4byte 0x02024a60
-_0803E9F0: .4byte 0x030042e0
-_0803E9F4:
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- bne _0803EA0A
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- b _0803EC9E
-_0803EA0A:
- ldr r1, [sp, 0x24]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- ldr r4, [sp, 0x20]
- adds r1, r4, r1
- ldrb r1, [r1]
- str r1, [sp]
- adds r0, r1, 0
- cmp r0, 0xFE
- beq _0803EA4C
- cmp r0, 0xFE
- bhi _0803EA2C
- cmp r0, 0xFD
- beq _0803EA62
- b _0803EA6C
-_0803EA2C:
- cmp r1, 0xFF
- bne _0803EA6C
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl PokemonGetField
- subs r4, r0
- str r4, [sp]
- b _0803EA6C
-_0803EA4C:
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl PokemonGetField
- lsrs r0, 1
- str r0, [sp]
- cmp r0, 0
- bne _0803EA6C
- movs r0, 0x1
- b _0803EA6A
-_0803EA62:
- ldr r0, _0803EB24
- ldr r5, _0803EB28
- adds r0, r5
- ldrb r0, [r0]
-_0803EA6A:
- str r0, [sp]
-_0803EA6C:
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl PokemonGetField
- cmp r4, r0
- beq _0803EB4C
- ldr r0, [sp, 0x14]
- cmp r0, 0
- bne _0803EB40
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl PokemonGetField
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl PokemonGetField
- ldr r1, [sp]
- cmp r1, r0
- bls _0803EAB8
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl PokemonGetField
- str r0, [sp]
-_0803EAB8:
- mov r0, r8
- movs r1, 0x39
- mov r2, sp
- bl pokemon_setattr
- ldr r0, _0803EB2C
- ldr r1, _0803EB30
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803EB48
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803EB48
- ldr r1, _0803EB34
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldr r1, [sp]
- strh r1, [r0, 0x28]
- movs r0, 0x10
- mov r3, r10
- ands r0, r3
- cmp r0, 0
- bne _0803EB48
- ldr r4, _0803EB38
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803EB48
- ldr r1, _0803EB3C
- ldrb r0, [r1, 0x3]
- cmp r0, 0xFE
- bhi _0803EB08
- adds r0, 0x1
- strb r0, [r1, 0x3]
-_0803EB08:
- ldrb r5, [r4]
- add r0, sp, 0x34
- ldrb r0, [r0]
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x00_a_b_0
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- strb r5, [r4]
- b _0803EB48
- .align 2, 0
-_0803EB24: .4byte 0x02000000
-_0803EB28: .4byte 0x000160fa
-_0803EB2C: .4byte 0x03001770
-_0803EB30: .4byte 0x0000043d
-_0803EB34: .4byte 0x02024a80
-_0803EB38: .4byte 0x02024a60
-_0803EB3C: .4byte 0x030042e0
-_0803EB40:
- ldr r1, _0803EB58
- ldr r0, [sp]
- negs r0, r0
- str r0, [r1]
-_0803EB48:
- movs r1, 0
- str r1, [sp, 0x1C]
-_0803EB4C:
- movs r0, 0xEF
- mov r2, r10
- ands r2, r0
- mov r10, r2
- b _0803EE0A
- .align 2, 0
-_0803EB58: .4byte 0x02024bec
-_0803EB5C:
- movs r7, 0x2
- mov r0, r10
- ands r0, r7
- cmp r0, 0
- beq _0803EB68
- b _0803ECB8
-_0803EB68:
- movs r5, 0
- ldr r3, [sp, 0x24]
- adds r3, 0x1
- str r3, [sp, 0x38]
-_0803EB70:
- movs r4, 0x11
- adds r4, r5
- mov r9, r4
- mov r0, r8
- mov r1, r9
- movs r2, 0
- bl PokemonGetField
- str r0, [sp]
- adds r7, r5, 0
- adds r7, 0xD
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r5, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalcPPWithPPUps
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- beq _0803EC92
- ldr r2, [sp, 0x20]
- ldr r3, [sp, 0x24]
- adds r0, r2, r3
- ldrb r0, [r0]
- adds r0, r1, r0
- str r0, [sp]
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalcPPWithPPUps
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- bls _0803EC28
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalcPPWithPPUps
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_0803EC28:
- mov r0, r8
- mov r1, r9
- mov r2, sp
- bl pokemon_setattr
- ldr r0, _0803ECA4
- ldr r4, _0803ECA8
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803EC8E
- ldr r0, [sp, 0x34]
- cmp r0, 0x4
- beq _0803EC8E
- ldr r4, _0803ECAC
- movs r0, 0x58
- ldr r1, [sp, 0x34]
- adds r3, r1, 0
- muls r3, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 14
- ands r1, r0
- cmp r1, 0
- bne _0803EC8E
- ldr r1, _0803ECB0
- ldr r2, [sp, 0x34]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0803ECB4
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803EC8E
- adds r0, r5, r3
- adds r1, r4, 0
- adds r1, 0x24
- adds r0, r1
- ldr r1, [sp]
- strb r1, [r0]
-_0803EC8E:
- movs r3, 0
- str r3, [sp, 0x1C]
-_0803EC92:
- adds r5, 0x1
- cmp r5, 0x3
- bgt _0803EC9A
- b _0803EB70
-_0803EC9A:
- ldr r4, [sp, 0x38]
- lsls r0, r4, 24
-_0803EC9E:
- lsrs r0, 24
- str r0, [sp, 0x24]
- b _0803EE0A
- .align 2, 0
-_0803ECA4: .4byte 0x03001770
-_0803ECA8: .4byte 0x0000043d
-_0803ECAC: .4byte 0x02024a80
-_0803ECB0: .4byte 0x02024ca8
-_0803ECB4: .4byte gBitTable
-_0803ECB8:
- ldr r6, [sp, 0x10]
- adds r6, 0x11
- mov r0, r8
- adds r1, r6, 0
- movs r2, 0
- bl PokemonGetField
- str r0, [sp]
- ldr r5, [sp, 0x10]
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalcPPWithPPUps
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp]
- cmp r2, r0
- bne _0803ED00
- b _0803EE0A
-_0803ED00:
- ldr r1, [sp, 0x24]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- ldr r0, [sp, 0x20]
- adds r1, r0, r1
- ldrb r0, [r1]
- adds r0, r2, r0
- str r0, [sp]
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalcPPWithPPUps
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- bls _0803ED74
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalcPPWithPPUps
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_0803ED74:
- mov r0, r8
- adds r1, r6, 0
- mov r2, sp
- bl pokemon_setattr
- ldr r0, _0803EDE0
- ldr r1, _0803EDE4
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _0803EDD8
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803EDD8
- ldr r4, _0803EDE8
- movs r0, 0x58
- adds r3, r2, 0
- muls r3, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _0803EDD8
- ldr r1, _0803EDEC
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0803EDF0
- ldr r5, [sp, 0x10]
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803EDD8
- adds r0, r5, r3
- adds r1, r4, 0
- adds r1, 0x24
- adds r0, r1
- ldr r1, [sp]
- strb r1, [r0]
-_0803EDD8:
- movs r0, 0
- str r0, [sp, 0x1C]
- b _0803EE0A
- .align 2, 0
-_0803EDE0: .4byte 0x03001770
-_0803EDE4: .4byte 0x0000043d
-_0803EDE8: .4byte 0x02024a80
-_0803EDEC: .4byte 0x02024ca8
-_0803EDF0: .4byte gBitTable
-_0803EDF4:
- mov r0, r8
- movs r1, 0x2
- ldr r2, [sp, 0x8]
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803EE0A
- bl _0803E35C
-_0803EE0A:
- ldr r1, [sp, 0x28]
- adds r1, 0x1
- str r1, [sp, 0x28]
- mov r2, r10
- lsrs r2, 1
- mov r10, r2
- cmp r2, 0
- beq _0803EE1C
- b _0803E862
-_0803EE1C:
- b _0803F14C
-_0803EE1E:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x18]
- adds r0, r3, r4
- ldrb r0, [r0]
- mov r10, r0
- movs r5, 0
- str r5, [sp, 0x28]
- cmp r0, 0
- bne _0803EE32
- b _0803F14C
-_0803EE32:
- movs r0, 0x1
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- bne _0803EE3E
- b _0803F13A
-_0803EE3E:
- ldr r2, [sp, 0x28]
- cmp r2, 0x7
- bls _0803EE46
- b _0803F13A
-_0803EE46:
- lsls r0, r2, 2
- ldr r1, _0803EE50
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803EE50: .4byte _0803EE54
- .align 2, 0
-_0803EE54:
- .4byte _0803EE74
- .4byte _0803EE74
- .4byte _0803EE74
- .4byte _0803EE74
- .4byte _0803EEF8
- .4byte _0803EFCC
- .4byte _0803F026
- .4byte _0803F07C
-_0803EE74:
- mov r0, r8
- bl sub_8040020
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _0803EEBC
- cmp r5, r0
- bls _0803EE88
- bl _0803E36C
-_0803EE88:
- ldr r0, _0803EEC0
- ldr r4, [sp, 0x28]
- adds r4, 0x2
- adds r0, r4, r0
- ldrb r1, [r0]
- mov r0, r8
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- str r1, [sp]
- adds r2, r4, 0
- cmp r1, 0x63
- bls _0803EEA6
- b _0803F13A
-_0803EEA6:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x24]
- adds r0, r3, r4
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x64
- bls _0803EEC4
- adds r0, 0x64
- subs r4, r0, r1
- b _0803EEC6
- .align 2, 0
-_0803EEBC: .4byte 0x000001fd
-_0803EEC0: .4byte gUnknown_082082F2
-_0803EEC4:
- adds r4, r0, 0
-_0803EEC6:
- adds r1, r5, r4
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- bls _0803EED4
- adds r0, r4, r0
- subs r4, r0, r1
-_0803EED4:
- ldr r0, [sp]
- adds r0, r4
- str r0, [sp]
- ldr r0, _0803EEF4
- adds r0, r2, r0
- ldrb r1, [r0]
- mov r0, r8
- mov r2, sp
- bl pokemon_setattr
- mov r0, r8
- bl pokemon_calc_effective_stats
- movs r5, 0
- str r5, [sp, 0x1C]
- b _0803F130
- .align 2, 0
-_0803EEF4: .4byte gUnknown_082082F2
-_0803EEF8:
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- ldr r1, _0803EFC0
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- ldrb r1, [r1]
- ands r0, r1
- lsls r1, r2, 1
- lsrs r0, r1
- str r0, [sp]
- cmp r0, 0x2
- bls _0803EF18
- b _0803F13A
-_0803EF18:
- adds r5, r2, 0
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalcPPWithPPUps
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetField
- str r0, [sp]
- ldr r1, _0803EFC4
- ldr r3, [sp, 0x10]
- adds r1, r3, r1
- ldrb r2, [r1]
- ands r2, r0
- str r2, [sp]
- ldr r0, _0803EFC8
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- adds r2, r0
- str r2, [sp]
- mov r0, r8
- movs r1, 0x15
- mov r2, sp
- bl pokemon_setattr
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, [sp, 0x10]
- bl CalcPPWithPPUps
- lsls r0, 24
- lsrs r0, 24
- subs r0, r4
- str r0, [sp]
- ldr r4, [sp, 0x10]
- adds r4, 0x11
- mov r0, r8
- adds r1, r4, 0
- movs r2, 0
- bl PokemonGetField
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r2, sp
- bl pokemon_setattr
- movs r4, 0
- str r4, [sp, 0x1C]
- b _0803F13A
- .align 2, 0
-_0803EFC0: .4byte gUnknown_08208238
-_0803EFC4: .4byte gUnknown_0820823C
-_0803EFC8: .4byte gUnknown_08208240
-_0803EFCC:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0x63
- bls _0803EFDC
- b _0803F130
-_0803EFDC:
- ldr r5, [sp, 0x1C]
- cmp r5, 0
- beq _0803EFE4
- b _0803F130
-_0803EFE4:
- ldr r0, [sp, 0x2C]
- cmp r0, 0
- beq _0803EFEC
- b _0803F130
-_0803EFEC:
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r1, r2
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl PokemonGetField
- adds r5, r0, 0
- str r5, [sp, 0x4]
- ldr r3, [sp, 0x2C]
- lsls r4, r3, 24
- asrs r1, r4, 24
- cmp r1, 0
- ble _0803F0D0
- ldr r0, [sp, 0x30]
- cmp r0, 0x1B
- bne _0803F0D0
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, r5, r0
- str r0, [sp, 0x4]
- adds r2, r4, 0
- b _0803F0DC
-_0803F026:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0x63
- bls _0803F130
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0xC7
- bhi _0803F130
- ldr r2, [sp, 0x1C]
- cmp r2, 0
- bne _0803F130
- ldr r3, [sp, 0x2C]
- cmp r3, 0
- bne _0803F130
- ldr r4, [sp, 0x20]
- ldr r5, [sp, 0x24]
- adds r0, r4, r5
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- str r4, [sp, 0x4]
- ldr r0, [sp, 0x2C]
- lsls r5, r0, 24
- asrs r1, r5, 24
- cmp r1, 0
- ble _0803F076
- ldr r2, [sp, 0x30]
- cmp r2, 0x1B
- beq _0803F0BE
-_0803F076:
- ldr r3, [sp, 0x2C]
- lsls r2, r3, 24
- b _0803F0D4
-_0803F07C:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0xC7
- bls _0803F130
- ldr r4, [sp, 0x1C]
- cmp r4, 0
- bne _0803F130
- ldr r5, [sp, 0x2C]
- cmp r5, 0
- bne _0803F130
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r1, r2
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- str r4, [sp, 0x4]
- ldr r3, [sp, 0x2C]
- lsls r5, r3, 24
- asrs r1, r5, 24
- cmp r1, 0
- ble _0803F0D0
- ldr r0, [sp, 0x30]
- cmp r0, 0x1B
- bne _0803F0D0
-_0803F0BE:
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, r4, r0
- str r0, [sp, 0x4]
- adds r2, r5, 0
- b _0803F0DC
-_0803F0D0:
- ldr r1, [sp, 0x2C]
- lsls r2, r1, 24
-_0803F0D4:
- asrs r1, r2, 24
- ldr r0, [sp, 0x4]
- adds r0, r1
- str r0, [sp, 0x4]
-_0803F0DC:
- cmp r2, 0
- ble _0803F112
- mov r0, r8
- movs r1, 0x26
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0xB
- bne _0803F0F4
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
-_0803F0F4:
- mov r0, r8
- movs r1, 0x23
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- bl sav1_map_get_name
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _0803F112
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
-_0803F112:
- ldr r0, [sp, 0x4]
- cmp r0, 0
- bge _0803F11C
- movs r0, 0
- str r0, [sp, 0x4]
-_0803F11C:
- ldr r0, [sp, 0x4]
- cmp r0, 0xFF
- ble _0803F126
- movs r0, 0xFF
- str r0, [sp, 0x4]
-_0803F126:
- add r2, sp, 0x4
- mov r0, r8
- movs r1, 0x20
- bl pokemon_setattr
-_0803F130:
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
-_0803F13A:
- ldr r2, [sp, 0x28]
- adds r2, 0x1
- str r2, [sp, 0x28]
- mov r3, r10
- lsrs r3, 1
- mov r10, r3
- cmp r3, 0
- beq _0803F14C
- b _0803EE32
-_0803F14C:
- ldr r4, [sp, 0x18]
- adds r4, 0x1
- str r4, [sp, 0x18]
- cmp r4, 0x5
- bgt _0803F15A
- bl _0803E378
-_0803F15A:
- ldr r0, [sp, 0x1C]
-_0803F15C:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803E1B0
-
- thumb_func_start HealStatusConditions
-HealStatusConditions: @ 803F16C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r4, r2, 0
- lsls r3, 24
- lsrs r6, r3, 24
- movs r1, 0x37
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- str r1, [sp]
- ands r0, r4
- cmp r0, 0
- beq _0803F1D0
- mvns r4, r4
- ands r1, r4
- str r1, [sp]
- adds r0, r5, 0
- movs r1, 0x37
- mov r2, sp
- bl pokemon_setattr
- ldr r0, _0803F1C4
- ldr r1, _0803F1C8
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803F1BE
- cmp r6, 0x4
- beq _0803F1BE
- ldr r0, _0803F1CC
- movs r1, 0x58
- muls r1, r6
- adds r0, 0x4C
- adds r1, r0
- ldr r0, [r1]
- ands r0, r4
- str r0, [r1]
-_0803F1BE:
- movs r0, 0
- b _0803F1D2
- .align 2, 0
-_0803F1C4: .4byte 0x03001770
-_0803F1C8: .4byte 0x0000043d
-_0803F1CC: .4byte 0x02024a80
-_0803F1D0:
- movs r0, 0x1
-_0803F1D2:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end HealStatusConditions
-
- thumb_func_start sub_803F1DC
-sub_803F1DC: @ 803F1DC
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r7, 0x6
- ldr r1, _0803F204
- adds r0, r3, 0
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _0803F208
- cmp r3, 0xAF
- beq _0803F20C
-_0803F200:
- movs r0, 0
- b _0803F31C
- .align 2, 0
-_0803F204: .4byte gItemEffectTable
-_0803F208:
- cmp r3, 0xAF
- bne _0803F21A
-_0803F20C:
- ldr r0, _0803F22C
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _0803F230
- adds r0, r1
-_0803F21A:
- mov r12, r0
- movs r2, 0
-_0803F21E:
- cmp r2, 0x4
- beq _0803F23E
- cmp r2, 0x4
- ble _0803F234
- cmp r2, 0x5
- beq _0803F2C8
- b _0803F312
- .align 2, 0
-_0803F22C: .4byte 0x02024a60
-_0803F230: .4byte 0x02024df8
-_0803F234:
- cmp r2, 0
- blt _0803F312
- cmp r2, r4
- bne _0803F312
- b _0803F200
-_0803F23E:
- mov r0, r12
- ldrb r3, [r0, 0x4]
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _0803F24E
- movs r0, 0xDF
- ands r3, r0
-_0803F24E:
- movs r6, 0
- cmp r3, 0
- beq _0803F312
-_0803F254:
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0803F2B4
- cmp r6, 0x7
- bhi _0803F2B4
- lsls r0, r6, 2
- ldr r1, _0803F26C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803F26C: .4byte _0803F270
- .align 2, 0
-_0803F270:
- .4byte _0803F29C
- .4byte _0803F29C
- .4byte _0803F290
- .4byte _0803F29C
- .4byte _0803F2B4
- .4byte _0803F2B4
- .4byte _0803F2B4
- .4byte _0803F2B0
-_0803F290:
- movs r0, 0x10
- ands r0, r3
- cmp r0, 0
- beq _0803F29C
- movs r0, 0xEF
- ands r3, r0
-_0803F29C:
- cmp r2, r4
- bne _0803F2A8
- adds r0, r3, 0
- ands r0, r5
- cmp r0, 0
- bne _0803F31A
-_0803F2A8:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- b _0803F2B4
-_0803F2B0:
- cmp r2, r4
- beq _0803F200
-_0803F2B4:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- lsrs r3, 1
- cmp r2, r4
- bne _0803F2C2
- lsrs r5, 1
-_0803F2C2:
- cmp r3, 0
- bne _0803F254
- b _0803F312
-_0803F2C8:
- mov r0, r12
- ldrb r3, [r0, 0x5]
- movs r6, 0
-_0803F2CE:
- cmp r3, 0
- beq _0803F312
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0803F302
- cmp r6, 0
- blt _0803F302
- cmp r6, 0x6
- ble _0803F2E8
- cmp r6, 0x7
- beq _0803F2FC
- b _0803F302
-_0803F2E8:
- cmp r2, r4
- bne _0803F2F4
- adds r0, r3, 0
- ands r0, r5
- cmp r0, 0
- bne _0803F31A
-_0803F2F4:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- b _0803F302
-_0803F2FC:
- cmp r2, r4
- bne _0803F302
- b _0803F200
-_0803F302:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- lsrs r3, 1
- cmp r2, r4
- bne _0803F2CE
- lsrs r5, 1
- b _0803F2CE
-_0803F312:
- adds r2, 0x1
- cmp r2, 0x5
- bgt _0803F31A
- b _0803F21E
-_0803F31A:
- adds r0, r7, 0
-_0803F31C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803F1DC
-
- thumb_func_start sub_803F324
-sub_803F324: @ 803F324
- push {lr}
- ldr r2, _0803F358
- ldr r1, _0803F35C
- ldrb r1, [r1]
- strb r1, [r2]
- ldr r3, _0803F360
- ldr r2, _0803F364
- ldr r1, _0803F368
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r1, [r0]
- adds r0, r3, 0
- bl StringCopy
- ldr r0, _0803F36C
- ldr r1, _0803F370
- bl StringCopy
- ldr r0, _0803F374
- bl get_battle_strings_
- pop {r0}
- bx r0
- .align 2, 0
-_0803F358: .4byte 0x02024c08
-_0803F35C: .4byte 0x02024e6c
-_0803F360: .4byte 0x030041c0
-_0803F364: .4byte gUnknown_08400F58
-_0803F368: .4byte gUnknown_082082F8
-_0803F36C: .4byte 0x03004290
-_0803F370: .4byte gUnknown_083FFDB3
-_0803F374: .4byte gUnknown_083FFDD3
- thumb_func_end sub_803F324
-
- thumb_func_start sub_803F378
-sub_803F378: @ 803F378
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803F3C0
- ldr r0, _0803F3A8
- ldr r1, _0803F3AC
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803F3B8
- ldr r2, _0803F3B0
- ldrb r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _0803F3B4
- adds r7, r0, r1
- b _0803F3CC
- .align 2, 0
-_0803F3A8: .4byte 0x03001770
-_0803F3AC: .4byte 0x0000043d
-_0803F3B0: .4byte 0x02024e6c
-_0803F3B4: .4byte 0x02024df8
-_0803F3B8:
- ldr r7, _0803F3BC
- b _0803F3CA
- .align 2, 0
-_0803F3BC: .4byte 0x02028daa
-_0803F3C0:
- ldr r1, _0803F404
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r7, [r0]
-_0803F3CA:
- ldr r2, _0803F408
-_0803F3CC:
- ldr r1, _0803F40C
- ldrb r0, [r2]
- strb r0, [r1]
- movs r5, 0
- ldr r0, _0803F410
- mov r8, r0
- movs r6, 0
-_0803F3DA:
- adds r4, r7, r5
- ldrb r1, [r4]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- beq _0803F3EC
- adds r0, r6, 0
- bl sub_803F324
-_0803F3EC:
- ldrb r1, [r4]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- beq _0803F422
- cmp r5, 0
- beq _0803F414
- adds r0, r6, 0x1
- bl sub_803F324
- b _0803F422
- .align 2, 0
-_0803F404: .4byte gItemEffectTable
-_0803F408: .4byte 0x02024e6c
-_0803F40C: .4byte 0x02024c0b
-_0803F410: .4byte 0x02024c07
-_0803F414:
- ldr r0, _0803F450
- ldrb r0, [r0]
- mov r1, r8
- strb r0, [r1]
- ldr r0, _0803F454
- bl get_battle_strings_
-_0803F422:
- adds r6, 0x2
- adds r5, 0x1
- cmp r5, 0x2
- ble _0803F3DA
- ldrb r1, [r7, 0x3]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0803F442
- ldr r1, _0803F458
- ldr r0, _0803F450
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0803F45C
- bl get_battle_strings_
-_0803F442:
- ldr r0, _0803F460
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803F450: .4byte 0x02024e6c
-_0803F454: .4byte gUnknown_083FEE92
-_0803F458: .4byte 0x02024c07
-_0803F45C: .4byte gUnknown_083FEE5D
-_0803F460: .4byte 0x020238cc
- thumb_func_end sub_803F378
-
- thumb_func_start GetNature
-GetNature: @ 803F464
- push {lr}
- movs r1, 0
- movs r2, 0
- bl PokemonGetField
- movs r1, 0x19
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetNature
-
- thumb_func_start GetNatureFromPersonality
-GetNatureFromPersonality: @ 803F47C
- push {lr}
- movs r1, 0x19
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetNatureFromPersonality
-
- thumb_func_start GetEvolutionTargetSpecies
-GetEvolutionTargetSpecies: @ 803F48C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r8, r0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 16
- lsrs r2, 16
- mov r9, r2
- movs r0, 0
- mov r10, r0
- mov r0, r8
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r7, r0, 16
- mov r0, r8
- movs r1, 0xC
- movs r2, 0
- bl PokemonGetField
- mov r1, sp
- strh r0, [r1]
- mov r0, r8
- movs r1, 0
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x17
- movs r2, 0
- bl PokemonGetField
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
- lsrs r4, 16
- str r4, [sp, 0x10]
- mov r0, sp
- ldrh r0, [r0]
- cmp r0, 0xAF
- bne _0803F500
- ldr r0, _0803F4F8
- ldr r1, _0803F4FC
- adds r0, r1
- ldrb r0, [r0]
- b _0803F508
- .align 2, 0
-_0803F4F8: .4byte 0x02025734
-_0803F4FC: .4byte 0x00003688
-_0803F500:
- bl itemid_get_x12
- lsls r0, 24
- lsrs r0, 24
-_0803F508:
- cmp r0, 0x26
- bne _0803F514
- cmp r5, 0x3
- beq _0803F514
- movs r0, 0
- b _0803F7A4
-_0803F514:
- cmp r5, 0x1
- bne _0803F51A
- b _0803F734
-_0803F51A:
- cmp r5, 0x1
- bgt _0803F524
- cmp r5, 0
- beq _0803F538
- b _0803F7A2
-_0803F524:
- cmp r5, 0x3
- ble _0803F52A
- b _0803F7A2
-_0803F52A:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r3, _0803F534
- lsls r6, r7, 2
- b _0803F782
- .align 2, 0
-_0803F534: .4byte gEvolutionTable
-_0803F538:
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl PokemonGetField
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r6, r7, 2
-_0803F55E:
- ldr r1, _0803F584
- ldr r0, [sp, 0x4]
- lsls r2, r0, 3
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r2, r0
- adds r0, r1
- ldrh r0, [r0]
- subs r0, 0x1
- adds r3, r1, 0
- adds r4, r2, 0
- cmp r0, 0xE
- bls _0803F57A
- b _0803F726
-_0803F57A:
- lsls r0, 2
- ldr r1, _0803F588
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803F584: .4byte gEvolutionTable
-_0803F588: .4byte _0803F58C
- .align 2, 0
-_0803F58C:
- .4byte _0803F5C8
- .4byte _0803F5DA
- .4byte _0803F5FC
- .4byte _0803F62C
- .4byte _0803F726
- .4byte _0803F726
- .4byte _0803F726
- .4byte _0803F63C
- .4byte _0803F666
- .4byte _0803F690
- .4byte _0803F6BE
- .4byte _0803F6DE
- .4byte _0803F702
- .4byte _0803F726
- .4byte _0803F712
-_0803F5C8:
- ldr r1, [sp, 0x8]
- cmp r1, 0xDB
- bhi _0803F5D0
- b _0803F726
-_0803F5D0:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r0, r3
- b _0803F61C
-_0803F5DA:
- bl RtcCalcLocalTime
- ldr r0, _0803F5F8
- ldrb r0, [r0, 0x2]
- subs r0, 0xC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB
- bls _0803F5EE
- b _0803F726
-_0803F5EE:
- ldr r2, [sp, 0x8]
- cmp r2, 0xDB
- bhi _0803F5F6
- b _0803F726
-_0803F5F6:
- b _0803F612
- .align 2, 0
-_0803F5F8: .4byte 0x03004038
-_0803F5FC:
- bl RtcCalcLocalTime
- ldr r0, _0803F624
- ldrb r0, [r0, 0x2]
- cmp r0, 0xB
- bls _0803F60A
- b _0803F726
-_0803F60A:
- ldr r0, [sp, 0x8]
- cmp r0, 0xDB
- bhi _0803F612
- b _0803F726
-_0803F612:
- ldr r1, _0803F628
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r0, r1
-_0803F61C:
- ldrh r0, [r0, 0x4]
- mov r10, r0
- b _0803F726
- .align 2, 0
-_0803F624: .4byte 0x03004038
-_0803F628: .4byte gEvolutionTable
-_0803F62C:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- cmp r0, r9
- bhi _0803F726
- b _0803F722
-_0803F63C:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r5, r0, r3
- ldrh r0, [r5, 0x2]
- cmp r0, r9
- bhi _0803F726
- mov r0, r8
- movs r1, 0x3B
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x3C
- movs r2, 0
- bl PokemonGetField
- cmp r4, r0
- bls _0803F726
- b _0803F6B8
-_0803F666:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r5, r0, r3
- ldrh r0, [r5, 0x2]
- cmp r0, r9
- bhi _0803F726
- mov r0, r8
- movs r1, 0x3B
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x3C
- movs r2, 0
- bl PokemonGetField
- cmp r4, r0
- bne _0803F726
- b _0803F6B8
-_0803F690:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r5, r0, r3
- ldrh r0, [r5, 0x2]
- cmp r0, r9
- bhi _0803F726
- mov r0, r8
- movs r1, 0x3B
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x3C
- movs r2, 0
- bl PokemonGetField
- cmp r4, r0
- bcs _0803F726
-_0803F6B8:
- ldrh r5, [r5, 0x4]
- mov r10, r5
- b _0803F726
-_0803F6BE:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r4, r0, r3
- ldrh r0, [r4, 0x2]
- cmp r0, r9
- bhi _0803F726
- ldr r0, [sp, 0x10]
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bhi _0803F726
- b _0803F6FC
-_0803F6DE:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r4, r0, r3
- ldrh r0, [r4, 0x2]
- cmp r0, r9
- bhi _0803F726
- ldr r0, [sp, 0x10]
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bls _0803F726
-_0803F6FC:
- ldrh r4, [r4, 0x4]
- mov r10, r4
- b _0803F726
-_0803F702:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- cmp r0, r9
- bhi _0803F726
- b _0803F722
-_0803F712:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- ldr r2, [sp, 0xC]
- cmp r0, r2
- bhi _0803F726
-_0803F722:
- ldrh r1, [r1, 0x4]
- mov r10, r1
-_0803F726:
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
- cmp r0, 0x4
- bgt _0803F732
- b _0803F55E
-_0803F732:
- b _0803F7A2
-_0803F734:
- lsls r6, r7, 2
- ldr r1, _0803F778
- adds r0, r6, r7
- lsls r0, 3
- adds r4, r0, r1
- mov r5, sp
- movs r1, 0x4
- str r1, [sp, 0x4]
-_0803F744:
- ldrh r0, [r4]
- cmp r0, 0x5
- beq _0803F764
- cmp r0, 0x6
- bne _0803F768
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5]
- cmp r0, r1
- bne _0803F768
- movs r0, 0
- strh r0, [r5]
- mov r0, r8
- movs r1, 0xC
- mov r2, sp
- bl pokemon_setattr
-_0803F764:
- ldrh r2, [r4, 0x4]
- mov r10, r2
-_0803F768:
- adds r4, 0x8
- ldr r0, [sp, 0x4]
- subs r0, 0x1
- str r0, [sp, 0x4]
- cmp r0, 0
- bge _0803F744
- b _0803F7A2
- .align 2, 0
-_0803F778: .4byte gEvolutionTable
-_0803F77C:
- ldrh r1, [r1, 0x4]
- mov r10, r1
- b _0803F7A2
-_0803F782:
- adds r0, r6, r7
- ldr r1, [sp, 0x4]
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r3
- ldrh r0, [r1]
- cmp r0, 0x7
- bne _0803F798
- ldrh r0, [r1, 0x2]
- cmp r0, r9
- beq _0803F77C
-_0803F798:
- ldr r2, [sp, 0x4]
- adds r2, 0x1
- str r2, [sp, 0x4]
- cmp r2, 0x4
- ble _0803F782
-_0803F7A2:
- mov r0, r10
-_0803F7A4:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GetEvolutionTargetSpecies
-
- thumb_func_start HoennPokedexNumToSpecies
-HoennPokedexNumToSpecies: @ 803F7B4
- push {r4,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _0803F7F8
- movs r1, 0
- ldr r3, _0803F7F0
- ldrh r0, [r3]
- cmp r0, r2
- beq _0803F7E0
- movs r4, 0xCD
- lsls r4, 1
-_0803F7CC:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bhi _0803F7E0
- lsls r0, r1, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0803F7CC
-_0803F7E0:
- ldr r0, _0803F7F4
- cmp r1, r0
- beq _0803F7F8
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- b _0803F7FA
- .align 2, 0
-_0803F7F0: .4byte gSpeciesToHoennPokedexNum
-_0803F7F4: .4byte 0x0000019b
-_0803F7F8:
- movs r0, 0
-_0803F7FA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end HoennPokedexNumToSpecies
-
- thumb_func_start NationalPokedexNumToSpecies
-NationalPokedexNumToSpecies: @ 803F800
- push {r4,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _0803F844
- movs r1, 0
- ldr r3, _0803F83C
- ldrh r0, [r3]
- cmp r0, r2
- beq _0803F82C
- movs r4, 0xCD
- lsls r4, 1
-_0803F818:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bhi _0803F82C
- lsls r0, r1, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0803F818
-_0803F82C:
- ldr r0, _0803F840
- cmp r1, r0
- beq _0803F844
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- b _0803F846
- .align 2, 0
-_0803F83C: .4byte gSpeciesToNationalPokedexNum
-_0803F840: .4byte 0x0000019b
-_0803F844:
- movs r0, 0
-_0803F846:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end NationalPokedexNumToSpecies
-
- thumb_func_start NationalToHoennOrder
-NationalToHoennOrder: @ 803F84C
- push {r4,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _0803F890
- movs r1, 0
- ldr r3, _0803F888
- ldrh r0, [r3]
- cmp r0, r2
- beq _0803F878
- movs r4, 0xCD
- lsls r4, 1
-_0803F864:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bhi _0803F878
- lsls r0, r1, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0803F864
-_0803F878:
- ldr r0, _0803F88C
- cmp r1, r0
- beq _0803F890
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- b _0803F892
- .align 2, 0
-_0803F888: .4byte gHoennToNationalOrder
-_0803F88C: .4byte 0x0000019b
-_0803F890:
- movs r0, 0
-_0803F892:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end NationalToHoennOrder
-
- thumb_func_start SpeciesToNationalPokedexNum
-SpeciesToNationalPokedexNum: @ 803F898
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803F8B4
- ldr r0, _0803F8B0
- subs r1, 0x1
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _0803F8B6
- .align 2, 0
-_0803F8B0: .4byte gSpeciesToNationalPokedexNum
-_0803F8B4:
- movs r0, 0
-_0803F8B6:
- pop {r1}
- bx r1
- thumb_func_end SpeciesToNationalPokedexNum
-
- thumb_func_start SpeciesToHoennPokedexNum
-SpeciesToHoennPokedexNum: @ 803F8BC
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803F8D8
- ldr r0, _0803F8D4
- subs r1, 0x1
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _0803F8DA
- .align 2, 0
-_0803F8D4: .4byte gSpeciesToHoennPokedexNum
-_0803F8D8:
- movs r0, 0
-_0803F8DA:
- pop {r1}
- bx r1
- thumb_func_end SpeciesToHoennPokedexNum
-
- thumb_func_start HoennToNationalOrder
-HoennToNationalOrder: @ 803F8E0
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803F8FC
- ldr r0, _0803F8F8
- subs r1, 0x1
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _0803F8FE
- .align 2, 0
-_0803F8F8: .4byte gHoennToNationalOrder
-_0803F8FC:
- movs r0, 0
-_0803F8FE:
- pop {r1}
- bx r1
- thumb_func_end HoennToNationalOrder
-
- thumb_func_start speciesid_conv
-speciesid_conv: @ 803F904
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, 0
- cmp r0, 0xFA
- bls _0803F932
- ldr r0, _0803F924
- cmp r1, r0
- bls _0803F930
- ldr r0, _0803F928
- ldr r2, _0803F92C
- adds r1, r2
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _0803F932
- .align 2, 0
-_0803F924: .4byte 0x00000113
-_0803F928: .4byte gSpeciesIdToCryId
-_0803F92C: .4byte 0xfffffeec
-_0803F930:
- movs r0, 0xC8
-_0803F932:
- pop {r1}
- bx r1
- thumb_func_end speciesid_conv
-
- thumb_func_start unref_sub_803F938
-unref_sub_803F938: @ 803F938
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r1, 0
- mov r10, r2
- lsls r0, 16
- movs r1, 0x9A
- lsls r1, 17
- cmp r0, r1
- bne _0803FA42
- ldr r1, _0803FA04
- ldr r0, [r1]
- cmp r10, r0
- beq _0803FA42
- ldr r0, [r1, 0x8]
- cmp r10, r0
- beq _0803FA42
- movs r6, 0
-_0803F962:
- lsls r3, r6, 3
- adds r3, r6
- lsls r3, 2
- ldr r0, _0803FA08
- adds r4, r3, r0
- ldrb r1, [r4]
- adds r1, 0xF8
- movs r2, 0xF
- adds r0, r5, 0
- ands r0, r2
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- ldrb r1, [r4, 0x1]
- adds r1, 0xF8
- movs r0, 0xF0
- ands r0, r5
- lsrs r0, 4
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- lsrs r5, 8
- str r5, [sp, 0x4]
- adds r6, 0x1
- str r6, [sp]
- mov r9, r3
-_0803F99A:
- lsls r0, r2, 1
- add r0, r9
- ldr r3, _0803FA0C
- adds r0, r3
- ldrh r3, [r0]
- mov r4, r12
- adds r0, r4, 0
- adds r0, 0x10
- adds r7, r1, 0x1
- adds r2, 0x1
- mov r8, r2
- cmp r4, r0
- bge _0803FA30
- lsrs r0, r1, 3
- lsls r6, r0, 8
- movs r0, 0x7
- ands r1, r0
- lsls r5, r1, 2
-_0803F9BE:
- adds r0, r4, 0
- cmp r4, 0
- bge _0803F9C6
- adds r0, r4, 0x7
-_0803F9C6:
- asrs r0, 3
- lsls r2, r0, 5
- add r2, r10
- lsls r0, 3
- subs r0, r4, r0
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r2, r0
- adds r2, r6
- adds r2, r5
- movs r1, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0803FA24
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0803FA10
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x20
- bhi _0803FA24
- adds r0, r1, 0
- adds r0, 0x40
- b _0803FA22
- .align 2, 0
-_0803FA04: .4byte gUnknown_081FAF4C
-_0803FA08: .4byte gSpindaSpotGraphics
-_0803FA0C: .4byte gSpindaSpotGraphics + 0x2
-_0803FA10:
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0803FA24
- adds r0, r1, 0x4
-_0803FA22:
- strb r0, [r2]
-_0803FA24:
- asrs r3, 1
- adds r4, 0x1
- mov r0, r12
- adds r0, 0x10
- cmp r4, r0
- blt _0803F9BE
-_0803FA30:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- mov r2, r8
- cmp r2, 0xF
- ble _0803F99A
- ldr r5, [sp, 0x4]
- ldr r6, [sp]
- cmp r6, 0x3
- ble _0803F962
-_0803FA42:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_803F938
-
- thumb_func_start DrawSpindaSpots
-DrawSpindaSpots: @ 803FA54
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r1, 0
- str r2, [sp]
- lsls r0, 16
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0x9A
- lsls r1, 17
- cmp r0, r1
- bne _0803FB56
- cmp r3, 0
- beq _0803FB56
- movs r6, 0
-_0803FA78:
- lsls r3, r6, 3
- adds r3, r6
- lsls r3, 2
- ldr r0, _0803FB1C
- adds r4, r3, r0
- ldrb r1, [r4]
- adds r1, 0xF8
- movs r2, 0xF
- adds r0, r5, 0
- ands r0, r2
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- ldrb r1, [r4, 0x1]
- adds r1, 0xF8
- movs r0, 0xF0
- ands r0, r5
- lsrs r0, 4
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- lsrs r5, 8
- str r5, [sp, 0x4]
- adds r6, 0x1
- mov r10, r6
- mov r9, r3
-_0803FAB0:
- lsls r0, r2, 1
- add r0, r9
- ldr r3, _0803FB20
- adds r0, r3
- ldrh r3, [r0]
- mov r4, r12
- adds r0, r4, 0
- adds r0, 0x10
- adds r7, r1, 0x1
- adds r2, 0x1
- mov r8, r2
- cmp r4, r0
- bge _0803FB44
- lsrs r0, r1, 3
- lsls r6, r0, 8
- movs r0, 0x7
- ands r1, r0
- lsls r5, r1, 2
-_0803FAD4:
- adds r0, r4, 0
- cmp r4, 0
- bge _0803FADC
- adds r0, r4, 0x7
-_0803FADC:
- asrs r0, 3
- lsls r2, r0, 5
- ldr r1, [sp]
- adds r2, r1, r2
- lsls r0, 3
- subs r0, r4, r0
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r2, r0
- adds r2, r6
- adds r2, r5
- movs r1, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0803FB38
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0803FB24
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x20
- bhi _0803FB38
- adds r0, r1, 0
- adds r0, 0x40
- b _0803FB36
- .align 2, 0
-_0803FB1C: .4byte gSpindaSpotGraphics
-_0803FB20: .4byte gSpindaSpotGraphics + 0x2
-_0803FB24:
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0803FB38
- adds r0, r1, 0x4
-_0803FB36:
- strb r0, [r2]
-_0803FB38:
- asrs r3, 1
- adds r4, 0x1
- mov r0, r12
- adds r0, 0x10
- cmp r4, r0
- blt _0803FAD4
-_0803FB44:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- mov r2, r8
- cmp r2, 0xF
- ble _0803FAB0
- ldr r5, [sp, 0x4]
- mov r6, r10
- cmp r6, 0x3
- ble _0803FA78
-_0803FB56:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end DrawSpindaSpots
-
- thumb_func_start sub_803FB68
-sub_803FB68: @ 803FB68
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r4, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r5, _0803FBB4
- movs r1, 0x2
- adds r2, r5, 0
- bl PokemonGetField
- movs r6, 0xB
- adds r0, r4, 0
- muls r0, r6
- ldr r4, _0803FBB8
- adds r0, r4
- adds r1, r5, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _0803FBA8
- mov r2, r8
- muls r2, r6
- adds r2, r4
- adds r0, r7, 0
- movs r1, 0x2
- bl pokemon_setattr
-_0803FBA8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803FBB4: .4byte 0x020231cc
-_0803FBB8: .4byte gSpeciesNames
- thumb_func_end sub_803FB68
-
- thumb_func_start sub_803FBBC
-sub_803FBBC: @ 803FBBC
- push {r4,r5,lr}
- movs r5, 0
- ldr r4, _0803FBE4
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x18]
- cmp r0, 0x2
- bgt _0803FBE8
- cmp r0, 0x1
- bge _0803FBF0
- cmp r0, 0
- beq _0803FBEC
- b _0803FBF2
- .align 2, 0
-_0803FBE4: .4byte 0x03002970
-_0803FBE8:
- cmp r0, 0x3
- bne _0803FBF2
-_0803FBEC:
- movs r5, 0
- b _0803FBF2
-_0803FBF0:
- movs r5, 0x1
-_0803FBF2:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_803FBBC
-
- thumb_func_start sub_803FBFC
-sub_803FBFC: @ 803FBFC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- ldr r2, _0803FC20
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x18]
- cmp r0, 0x2
- bgt _0803FC24
- cmp r0, 0x1
- bge _0803FC2C
- cmp r0, 0
- beq _0803FC28
- b _0803FC2E
- .align 2, 0
-_0803FC20: .4byte 0x03002970
-_0803FC24:
- cmp r0, 0x3
- bne _0803FC2E
-_0803FC28:
- movs r3, 0
- b _0803FC2E
-_0803FC2C:
- movs r3, 0x1
-_0803FC2E:
- adds r0, r3, 0
- pop {r1}
- bx r1
- thumb_func_end sub_803FBFC
-
- thumb_func_start sub_803FC34
-sub_803FC34: @ 803FC34
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r1, _0803FC40
- b _0803FC4C
- .align 2, 0
-_0803FC40: .4byte 0x03002970
-_0803FC44:
- adds r1, 0x1C
- adds r2, 0x1
- cmp r2, 0x3
- bgt _0803FC52
-_0803FC4C:
- ldrh r0, [r1, 0x18]
- cmp r0, r3
- bne _0803FC44
-_0803FC52:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_803FC34
-
- thumb_func_start sub_803FC58
-sub_803FC58: @ 803FC58
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _0803FC70
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r1, [r1, 0x2]
- movs r0, 0x7F
- ands r0, r1
- bx lr
- .align 2, 0
-_0803FC70: .4byte gTrainers
- thumb_func_end sub_803FC58
-
- thumb_func_start nature_stat_mod
-nature_stat_mod: @ 803FC74
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r2, 24
- lsrs r5, r2, 24
- movs r0, 0xFF
- lsls r0, 24
- adds r2, r0
- lsrs r2, 24
- cmp r2, 0x4
- bls _0803FC92
- adds r0, r3, 0
- b _0803FCCE
-_0803FC92:
- ldr r0, _0803FCB4
- lsls r1, r4, 2
- adds r1, r4
- subs r1, 0x1
- adds r1, r5, r1
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0803FCB8
- cmp r1, 0x1
- bne _0803FCCC
- movs r0, 0x6E
- b _0803FCBA
- .align 2, 0
-_0803FCB4: .4byte gNatureStatTable
-_0803FCB8:
- movs r0, 0x5A
-_0803FCBA:
- muls r0, r3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- b _0803FCCE
-_0803FCCC:
- adds r0, r3, 0
-_0803FCCE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end nature_stat_mod
-
- thumb_func_start sub_803FCD4
-sub_803FCD4: @ 803FCD4
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- movs r1, 0x41
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r7, 0
- movs r1, 0xC
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803FD34
- ldr r0, _0803FD14
- ldr r1, _0803FD18
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803FD20
- ldr r0, _0803FD1C
- ldrb r4, [r0, 0x7]
- b _0803FD3C
- .align 2, 0
-_0803FD14: .4byte 0x03001770
-_0803FD18: .4byte 0x0000043d
-_0803FD1C: .4byte 0x02024df0
-_0803FD20:
- ldr r0, _0803FD2C
- ldr r1, _0803FD30
- adds r0, r1
- ldrb r4, [r0]
- b _0803FD3C
- .align 2, 0
-_0803FD2C: .4byte 0x02025734
-_0803FD30: .4byte 0x00003688
-_0803FD34:
- bl itemid_get_x12
- lsls r0, 24
- lsrs r4, r0, 24
-_0803FD3C:
- cmp r6, 0
- bne _0803FD42
- b _0803FE56
-_0803FD42:
- movs r0, 0xCE
- lsls r0, 1
- cmp r6, r0
- bne _0803FD4C
- b _0803FE56
-_0803FD4C:
- movs r6, 0
- adds r0, r7, 0
- movs r1, 0x20
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- mov r1, sp
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x63
- ble _0803FD6A
- movs r6, 0x1
-_0803FD6A:
- cmp r0, 0xC7
- ble _0803FD74
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0803FD74:
- cmp r5, 0x5
- bne _0803FD84
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _0803FE56
-_0803FD84:
- cmp r5, 0x3
- bne _0803FDB4
- ldr r0, _0803FE60
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803FE56
- ldr r2, _0803FE64
- ldr r0, _0803FE68
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r1, [r0, 0x1]
- adds r0, r1, 0
- subs r0, 0x18
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0803FDB4
- cmp r1, 0x20
- bne _0803FE56
-_0803FDB4:
- ldr r1, _0803FE6C
- lsls r0, r5, 1
- adds r0, r5
- adds r0, r6, r0
- adds r0, r1
- ldrb r2, [r0]
- movs r1, 0
- ldrsb r1, [r0, r1]
- cmp r1, 0
- ble _0803FDDA
- cmp r4, 0x1B
- bne _0803FDDA
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 24
- lsrs r2, r0, 24
-_0803FDDA:
- lsls r2, 24
- asrs r2, 24
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, r2
- mov r1, sp
- strh r0, [r1]
- cmp r2, 0
- ble _0803FE2C
- adds r0, r7, 0
- movs r1, 0x26
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0xB
- bne _0803FE08
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x1
- mov r1, sp
- strh r0, [r1]
-_0803FE08:
- adds r0, r7, 0
- movs r1, 0x23
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- bl sav1_map_get_name
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _0803FE2C
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x1
- mov r1, sp
- strh r0, [r1]
-_0803FE2C:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0803FE3C
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
-_0803FE3C:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0xFF
- ble _0803FE4C
- movs r1, 0xFF
- mov r0, sp
- strh r1, [r0]
-_0803FE4C:
- adds r0, r7, 0
- movs r1, 0x20
- mov r2, sp
- bl pokemon_setattr
-_0803FE56:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803FE60: .4byte 0x020239f8
-_0803FE64: .4byte gTrainers
-_0803FE68: .4byte 0x0202ff5e
-_0803FE6C: .4byte gUnknown_082082FE
- thumb_func_end sub_803FCD4
-
- thumb_func_start sub_803FE70
-sub_803FE70: @ 803FE70
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- mov r8, r0
- lsls r1, 16
- lsrs r5, r1, 16
- movs r4, 0
- movs r7, 0
- movs r6, 0
-_0803FE84:
- adds r1, r6, 0
- adds r1, 0x1A
- mov r0, r8
- movs r2, 0
- bl PokemonGetField
- mov r2, sp
- adds r1, r2, r6
- strb r0, [r1]
- ldrb r0, [r1]
- adds r0, r7, r0
- lsls r0, 16
- lsrs r7, r0, 16
- adds r6, 0x1
- cmp r6, 0x5
- ble _0803FE84
- movs r6, 0
- b _08040006
-_0803FEA8:
- mov r0, r8
- movs r1, 0
- bl sub_8040178
- lsls r0, 24
- movs r2, 0x1
- cmp r0, 0
- beq _0803FEBA
- movs r2, 0x2
-_0803FEBA:
- cmp r6, 0x5
- bhi _0803FF5C
- lsls r0, r6, 2
- ldr r1, _0803FEC8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803FEC8: .4byte _0803FECC
- .align 2, 0
-_0803FECC:
- .4byte _0803FEE4
- .4byte _0803FEF8
- .4byte _0803FF0C
- .4byte _0803FF20
- .4byte _0803FF34
- .4byte _0803FF48
-_0803FEE4:
- ldr r0, _0803FEF4
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 30
- b _0803FF56
- .align 2, 0
-_0803FEF4: .4byte gBaseStats
-_0803FEF8:
- ldr r0, _0803FF08
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- b _0803FF54
- .align 2, 0
-_0803FF08: .4byte gBaseStats
-_0803FF0C:
- ldr r0, _0803FF1C
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 26
- b _0803FF56
- .align 2, 0
-_0803FF1C: .4byte gBaseStats
-_0803FF20:
- ldr r0, _0803FF30
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsrs r0, 6
- b _0803FF58
- .align 2, 0
-_0803FF30: .4byte gBaseStats
-_0803FF34:
- ldr r0, _0803FF44
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 30
- b _0803FF56
- .align 2, 0
-_0803FF44: .4byte gBaseStats
-_0803FF48:
- ldr r0, _0803FF84
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xB]
-_0803FF54:
- lsls r0, 28
-_0803FF56:
- lsrs r0, 30
-_0803FF58:
- adds r4, r0, 0
- muls r4, r2
-_0803FF5C:
- mov r0, r8
- movs r1, 0xC
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803FFA8
- ldr r0, _0803FF88
- ldr r1, _0803FF8C
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803FF94
- ldr r0, _0803FF90
- ldrb r0, [r0, 0x7]
- b _0803FFB0
- .align 2, 0
-_0803FF84: .4byte gBaseStats
-_0803FF88: .4byte 0x03001770
-_0803FF8C: .4byte 0x0000043d
-_0803FF90: .4byte 0x02024df0
-_0803FF94:
- ldr r0, _0803FFA0
- ldr r2, _0803FFA4
- adds r0, r2
- ldrb r0, [r0]
- b _0803FFB0
- .align 2, 0
-_0803FFA0: .4byte 0x02025734
-_0803FFA4: .4byte 0x00003688
-_0803FFA8:
- bl itemid_get_x12
- lsls r0, 24
- lsrs r0, 24
-_0803FFB0:
- cmp r0, 0x18
- bne _0803FFB8
- lsls r0, r4, 17
- lsrs r4, r0, 16
-_0803FFB8:
- lsls r0, r4, 16
- asrs r2, r0, 16
- adds r1, r7, r2
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- ble _0803FFD0
- adds r0, r2, r0
- adds r1, r7, r4
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_0803FFD0:
- mov r0, sp
- adds r2, r0, r6
- ldrb r3, [r2]
- lsls r0, r4, 16
- asrs r1, r0, 16
- adds r0, r3, r1
- cmp r0, 0xFF
- ble _0803FFEC
- adds r0, r1, 0
- adds r0, 0xFF
- adds r1, r3, r4
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_0803FFEC:
- adds r0, r3, r4
- strb r0, [r2]
- adds r0, r7, r4
- lsls r0, 16
- lsrs r7, r0, 16
- adds r1, r6, 0
- adds r1, 0x1A
- mov r0, r8
- bl pokemon_setattr
- adds r6, 0x1
- cmp r6, 0x5
- bgt _0804000E
-_08040006:
- ldr r0, _0804001C
- cmp r7, r0
- bhi _0804000E
- b _0803FEA8
-_0804000E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804001C: .4byte 0x000001fd
- thumb_func_end sub_803FE70
-
- thumb_func_start sub_8040020
-sub_8040020: @ 8040020
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r4, 0
-_08040028:
- adds r1, r4, 0
- adds r1, 0x1A
- adds r0, r6, 0
- movs r2, 0
- bl PokemonGetField
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x1
- cmp r4, 0x5
- ble _08040028
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8040020
-
- thumb_func_start sub_8040048
-sub_8040048: @ 8040048
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- bl Random
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0x80
- lsls r0, 7
- cmp r5, r0
- beq _0804006E
- movs r0, 0x80
- lsls r0, 8
- cmp r5, r0
- beq _0804006E
- movs r0, 0xC0
- lsls r0, 8
- cmp r5, r0
- bne _08040104
-_0804006E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0x64
- muls r0, r5
- adds r4, r6, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- beq _0804006E
- adds r0, r4, 0
- movs r1, 0x2D
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- bne _0804006E
- ldr r1, _0804010C
- lsls r0, r5, 2
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_8040178
- lsls r0, 24
- cmp r0, 0
- bne _08040104
- mov r4, sp
-_080400B8:
- bl Random
- lsls r0, 24
- lsrs r0, 24
- strb r0, [r4]
- cmp r0, 0
- beq _080400B8
- movs r0, 0xF0
- mov r1, sp
- ldrb r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _080400DA
- movs r0, 0x7
- ands r1, r0
- mov r0, sp
- strb r1, [r0]
-_080400DA:
- mov r0, sp
- ldrb r0, [r0]
- lsls r1, r0, 4
- orrs r0, r1
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- movs r1, 0xF3
- ands r1, r0
- mov r0, sp
- strb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- movs r0, 0x64
- muls r0, r5
- adds r0, r6, r0
- movs r1, 0x22
- mov r2, sp
- bl pokemon_setattr
-_08040104:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804010C: .4byte gBitTable
- thumb_func_end sub_8040048
-
- thumb_func_start sub_8040110
-sub_8040110: @ 8040110
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- movs r3, 0
- movs r6, 0x1
- movs r5, 0
- cmp r4, 0
- beq _08040158
-_08040124:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0804014C
- movs r0, 0x64
- muls r0, r3
- adds r0, r7, r0
- movs r1, 0x22
- movs r2, 0
- str r3, [sp]
- bl PokemonGetField
- movs r1, 0xF
- ands r1, r0
- ldr r3, [sp]
- cmp r1, 0
- beq _0804014C
- orrs r5, r6
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_0804014C:
- adds r3, 0x1
- lsls r6, 1
- lsrs r4, 1
- cmp r4, 0
- bne _08040124
- b _0804016C
-_08040158:
- adds r0, r7, 0
- movs r1, 0x22
- movs r2, 0
- bl PokemonGetField
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0
- beq _0804016C
- movs r5, 0x1
-_0804016C:
- adds r0, r5, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8040110
-
- thumb_func_start sub_8040178
-sub_8040178: @ 8040178
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- movs r3, 0
- movs r6, 0x1
- movs r5, 0
- cmp r4, 0
- beq _080401BC
-_0804018C:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080401B0
- movs r0, 0x64
- muls r0, r3
- adds r0, r7, r0
- movs r1, 0x22
- movs r2, 0
- str r3, [sp]
- bl PokemonGetField
- ldr r3, [sp]
- cmp r0, 0
- beq _080401B0
- orrs r5, r6
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_080401B0:
- adds r3, 0x1
- lsls r6, 1
- lsrs r4, 1
- cmp r4, 0
- bne _0804018C
- b _080401CC
-_080401BC:
- adds r0, r7, 0
- movs r1, 0x22
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- beq _080401CC
- movs r5, 0x1
-_080401CC:
- adds r0, r5, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8040178
-
- thumb_func_start sub_80401D8
-sub_80401D8: @ 80401D8
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r7, r0, 16
- movs r5, 0
- mov r6, sp
-_080401E4:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08040224
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- beq _0804023C
- adds r0, r4, 0
- movs r1, 0x22
- movs r2, 0
- bl PokemonGetField
- lsls r0, 24
- lsrs r0, 24
- strb r0, [r6]
- movs r1, 0xF
- adds r2, r0, 0
- ands r1, r2
- cmp r1, 0
- beq _0804023C
- cmp r1, r7
- bcc _0804021E
- cmp r7, 0x4
- bls _08040228
-_0804021E:
- movs r0, 0xF0
- ands r0, r2
- b _0804022A
- .align 2, 0
-_08040224: .4byte 0x03004360
-_08040228:
- subs r0, r2, r7
-_0804022A:
- strb r0, [r6]
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0804024C
- adds r0, r1
- movs r1, 0x22
- mov r2, sp
- bl pokemon_setattr
-_0804023C:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080401E4
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804024C: .4byte 0x03004360
- thumb_func_end sub_80401D8
-
- thumb_func_start atkE5_pickupitemcalculation
-atkE5_pickupitemcalculation: @ 8040250
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _080402F6
- movs r5, 0
-_0804026C:
- movs r0, 0x64
- adds r6, r5, 0
- muls r6, r0
- adds r4, r7, r6
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- cmp r0, 0
- beq _080402F0
- adds r0, r4, 0
- movs r1, 0x22
- movs r2, 0
- bl PokemonGetField
- lsls r0, 24
- lsrs r1, r0, 24
- mov r0, sp
- strb r1, [r0]
- cmp r1, 0
- beq _080402F0
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- beq _080402F0
- cmp r5, 0
- beq _080402C6
- adds r0, r6, 0
- subs r0, 0x64
- adds r4, r7, r0
- adds r0, r4, 0
- movs r1, 0x22
- movs r2, 0
- bl PokemonGetField
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0
- bne _080402C6
- adds r0, r4, 0
- movs r1, 0x22
- mov r2, sp
- bl pokemon_setattr
-_080402C6:
- cmp r5, 0x5
- beq _080402F0
- movs r0, 0x64
- muls r0, r5
- adds r0, 0x64
- adds r4, r7, r0
- adds r0, r4, 0
- movs r1, 0x22
- movs r2, 0
- bl PokemonGetField
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0
- bne _080402F0
- adds r0, r4, 0
- movs r1, 0x22
- mov r2, sp
- bl pokemon_setattr
- adds r5, 0x1
-_080402F0:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0804026C
-_080402F6:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atkE5_pickupitemcalculation
-
- thumb_func_start sub_8040300
-sub_8040300: @ 8040300
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x38
- movs r2, 0
- bl PokemonGetField
- adds r0, 0x1
- mov r1, sp
- strb r0, [r1]
- adds r0, r6, 0
- movs r1, 0x19
- movs r2, 0
- bl PokemonGetField
- ldr r5, _08040358
- mov r1, sp
- ldrb r2, [r1]
- lsls r2, 2
- ldr r3, _0804035C
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- adds r1, r3
- ldrb r3, [r1, 0x13]
- movs r1, 0xCA
- lsls r1, 1
- muls r1, r3
- adds r2, r1
- adds r2, r5
- ldr r1, [r2]
- cmp r0, r1
- bhi _08040360
- movs r0, 0
- b _0804036C
- .align 2, 0
-_08040358: .4byte gExperienceTables
-_0804035C: .4byte gBaseStats
-_08040360:
- adds r0, r6, 0
- movs r1, 0x38
- mov r2, sp
- bl pokemon_setattr
- movs r0, 0x1
-_0804036C:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8040300
-
- thumb_func_start sub_8040374
-sub_8040374: @ 8040374
- push {r4,r5,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- adds r5, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r1, r0, 16
- adds r3, r1, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bne _08040396
- movs r0, 0
- b _080403C2
-_08040396:
- cmp r4, 0x1F
- bls _080403B4
- adds r0, r4, 0
- subs r0, 0x20
- movs r2, 0x1
- lsls r2, r0
- ldr r0, _080403B0
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- ands r0, r2
- b _080403C2
- .align 2, 0
-_080403B0: .4byte gTMHMLearnsets
-_080403B4:
- movs r1, 0x1
- lsls r1, r5
- ldr r2, _080403C8
- lsls r0, r3, 3
- adds r0, r2
- ldr r0, [r0]
- ands r0, r1
-_080403C2:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080403C8: .4byte gTMHMLearnsets
- thumb_func_end sub_8040374
-
- thumb_func_start sub_80403CC
-sub_80403CC: @ 80403CC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- adds r6, r0, 0
- str r1, [sp, 0x8]
- movs r0, 0
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r6, 0
- movs r1, 0x38
- movs r2, 0
- bl PokemonGetField
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
- movs r5, 0
- mov r4, sp
-_08040402:
- adds r1, r5, 0
- adds r1, 0xD
- adds r0, r6, 0
- movs r2, 0
- bl PokemonGetField
- strh r0, [r4]
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _08040402
- movs r5, 0
- ldr r6, _08040510
- lsls r1, r7, 2
- adds r2, r1, r6
- ldr r3, [r2]
- ldrh r0, [r3]
- ldr r4, _08040514
- str r1, [sp, 0x14]
- cmp r0, r4
- beq _080404FC
- mov r9, r2
- str r3, [sp, 0x10]
-_08040430:
- lsls r2, r5, 1
- ldr r1, [sp, 0x10]
- adds r0, r2, r1
- ldrh r3, [r0]
- movs r0, 0xFE
- lsls r0, 8
- ands r0, r3
- ldr r4, [sp, 0xC]
- lsls r1, r4, 9
- adds r7, r2, 0
- adds r5, 0x1
- mov r12, r5
- cmp r0, r1
- bgt _080404E6
- movs r4, 0
- mov r0, sp
- ldrh r1, [r0]
- ldr r0, _08040518
- ands r0, r3
- cmp r1, r0
- beq _08040480
- ldr r0, [sp, 0x14]
- ldr r1, _08040510
- adds r6, r0, r1
- ldr r2, _08040518
- mov r8, r2
- mov r3, sp
- adds r5, r7, 0
-_08040468:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08040480
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _08040468
-_08040480:
- cmp r4, 0x4
- bne _080404E6
- movs r4, 0
- cmp r4, r10
- bge _080404C4
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, [sp, 0x8]
- ldrh r2, [r0]
- ldr r0, _08040518
- ands r0, r1
- cmp r2, r0
- beq _080404C4
- ldr r1, [sp, 0x14]
- ldr r2, _08040510
- adds r6, r1, r2
- ldr r0, _08040518
- mov r8, r0
- ldr r3, [sp, 0x8]
- adds r5, r7, 0
-_080404AC:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, r10
- bge _080404C4
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _080404AC
-_080404C4:
- cmp r4, r10
- bne _080404E6
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r2, r4, 1
- ldr r1, [sp, 0x8]
- adds r2, r1
- mov r4, r9
- ldr r0, [r4]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, _08040518
- ands r0, r1
- strh r0, [r2]
-_080404E6:
- mov r5, r12
- cmp r5, 0x13
- bgt _080404FC
- mov r1, r9
- ldr r0, [r1]
- lsls r1, r5, 1
- adds r1, r0
- ldrh r0, [r1]
- ldr r2, _08040514
- cmp r0, r2
- bne _08040430
-_080404FC:
- mov r0, r10
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08040510: .4byte gLevelUpLearnsetPointers
-_08040514: .4byte 0x0000ffff
-_08040518: .4byte 0x000001ff
- thumb_func_end sub_80403CC
-
- thumb_func_start sub_804051C
-sub_804051C: @ 804051C
- push {r4-r7,lr}
- adds r6, r1, 0
- lsls r0, 16
- movs r5, 0
- movs r4, 0
- ldr r1, _08040568
- lsrs r0, 14
- adds r0, r1
- ldr r2, [r0]
- ldrh r0, [r2]
- ldr r1, _0804056C
- cmp r0, r1
- beq _08040560
- ldr r0, _08040570
- mov r12, r0
- adds r7, r1, 0
- adds r3, r2, 0
-_0804053E:
- adds r1, r5, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 1
- adds r1, r6
- ldrh r2, [r3]
- mov r0, r12
- ands r0, r2
- strh r0, [r1]
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x13
- bgt _08040560
- ldrh r0, [r3]
- cmp r0, r7
- bne _0804053E
-_08040560:
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08040568: .4byte gLevelUpLearnsetPointers
-_0804056C: .4byte 0x0000ffff
-_08040570: .4byte 0x000001ff
- thumb_func_end sub_804051C
-
- thumb_func_start sub_8040574
-sub_8040574: @ 8040574
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- adds r6, r0, 0
- movs r0, 0
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0x41
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r6, 0
- movs r1, 0x38
- movs r2, 0
- bl PokemonGetField
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x30]
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bne _080405B0
- movs r0, 0
- b _080406BA
-_080405B0:
- movs r5, 0
- lsls r4, 2
- str r4, [sp, 0x38]
- mov r4, sp
-_080405B8:
- adds r1, r5, 0
- adds r1, 0xD
- adds r0, r6, 0
- movs r2, 0
- bl PokemonGetField
- strh r0, [r4]
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _080405B8
- movs r5, 0
- ldr r3, _080406CC
- ldr r2, [sp, 0x38]
- adds r1, r2, r3
- ldr r0, [r1]
- ldrh r0, [r0]
- ldr r2, _080406D0
- cmp r0, r2
- beq _080406B8
- mov r9, r1
- mov r4, sp
- adds r4, 0x8
- str r4, [sp, 0x34]
-_080405E8:
- mov r1, r9
- ldr r0, [r1]
- lsls r2, r5, 1
- adds r0, r2, r0
- ldrh r3, [r0]
- movs r0, 0xFE
- lsls r0, 8
- ands r0, r3
- ldr r4, [sp, 0x30]
- lsls r1, r4, 9
- adds r7, r2, 0
- adds r5, 0x1
- mov r12, r5
- cmp r0, r1
- bgt _080406A2
- movs r4, 0
- mov r0, sp
- ldrh r1, [r0]
- ldr r0, _080406D4
- ands r0, r3
- cmp r1, r0
- beq _0804063A
- ldr r0, [sp, 0x38]
- ldr r1, _080406CC
- adds r6, r0, r1
- ldr r2, _080406D4
- mov r8, r2
- mov r3, sp
- adds r5, r7, 0
-_08040622:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- bgt _0804063A
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _08040622
-_0804063A:
- cmp r4, 0x4
- bne _080406A2
- movs r4, 0
- cmp r4, r10
- bge _08040680
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, [sp, 0x34]
- ldrh r2, [r0]
- ldr r0, _080406D4
- ands r0, r1
- add r1, sp, 0x8
- cmp r2, r0
- beq _08040680
- ldr r2, [sp, 0x38]
- ldr r0, _080406CC
- adds r6, r2, r0
- ldr r2, _080406D4
- mov r8, r2
- adds r3, r1, 0
- adds r5, r7, 0
-_08040668:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, r10
- bge _08040680
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _08040668
-_08040680:
- cmp r4, r10
- bne _080406A2
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r2, r4, 1
- ldr r4, [sp, 0x34]
- adds r2, r4, r2
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, _080406D4
- ands r0, r1
- strh r0, [r2]
-_080406A2:
- mov r5, r12
- cmp r5, 0x13
- bgt _080406B8
- mov r2, r9
- ldr r0, [r2]
- lsls r1, r5, 1
- adds r1, r0
- ldrh r0, [r1]
- ldr r4, _080406D0
- cmp r0, r4
- bne _080405E8
-_080406B8:
- mov r0, r10
-_080406BA:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080406CC: .4byte gLevelUpLearnsetPointers
-_080406D0: .4byte 0x0000ffff
-_080406D4: .4byte 0x000001ff
- thumb_func_end sub_8040574
-
- thumb_func_start sub_80406D8
-sub_80406D8: @ 80406D8
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl sub_806912C
- cmp r0, 0
- beq _080406F2
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- b _0804070A
-_080406F2:
- adds r0, r4, 0
- bl SpeciesToHoennPokedexNum
- adds r4, r0, 0
- cmp r4, 0xCA
- bls _08040708
- ldr r0, _08040704
- b _0804070A
- .align 2, 0
-_08040704: .4byte 0x0000ffff
-_08040708:
- adds r0, r4, 0
-_0804070A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80406D8
-
- thumb_func_start sub_8040710
-sub_8040710: @ 8040710
- push {lr}
- ldr r1, _08040724
- movs r2, 0
- adds r0, r1, 0x3
-_08040718:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08040718
- pop {r0}
- bx r0
- .align 2, 0
-_08040724: .4byte 0x02024e84
- thumb_func_end sub_8040710
-
- thumb_func_start sub_8040728
-sub_8040728: @ 8040728
- push {lr}
- ldr r0, _0804073C
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _08040744
- ldr r0, _08040740
- b _080408B2
- .align 2, 0
-_0804073C: .4byte 0x020239f8
-_08040740: .4byte 0x000001cf
-_08040744:
- movs r0, 0x80
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- beq _08040754
- movs r0, 0xE7
- lsls r0, 1
- b _080408B2
-_08040754:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0804075E
- b _080408A8
-_0804075E:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08040768
- b _080408B0
-_08040768:
- ldr r3, _0804078C
- ldr r2, _08040790
- ldrh r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldrb r0, [r0, 0x1]
- subs r0, 0x2
- cmp r0, 0x31
- bls _08040780
- b _080408A8
-_08040780:
- lsls r0, 2
- ldr r1, _08040794
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804078C: .4byte gTrainers
-_08040790: .4byte 0x0202ff5e
-_08040794: .4byte _08040798
- .align 2, 0
-_08040798:
- .4byte _08040860
- .4byte _08040866
- .4byte _08040866
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A0
- .4byte _0804086C
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _08040872
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _0804087C
- .4byte _080408A8
- .4byte _080408A8
- .4byte _08040860
- .4byte _08040866
- .4byte _08040866
-_08040860:
- movs r0, 0xE9
- lsls r0, 1
- b _080408B2
-_08040866:
- movs r0, 0xE5
- lsls r0, 1
- b _080408B2
-_0804086C:
- movs r0, 0xE6
- lsls r0, 1
- b _080408B2
-_08040872:
- ldr r0, _08040878
- b _080408B2
- .align 2, 0
-_08040878: .4byte 0x000001cd
-_0804087C:
- ldrh r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08040898
- adds r0, r1
- ldr r1, _0804089C
- bl StringCompare
- cmp r0, 0
- beq _080408A8
- movs r0, 0xE8
- lsls r0, 1
- b _080408B2
- .align 2, 0
-_08040898: .4byte gTrainers + 0x4
-_0804089C: .4byte gUnknown_08400E42
-_080408A0:
- ldr r0, _080408A4
- b _080408B2
- .align 2, 0
-_080408A4: .4byte 0x000001d1
-_080408A8:
- ldr r0, _080408AC
- b _080408B2
- .align 2, 0
-_080408AC: .4byte 0x000001cb
-_080408B0:
- ldr r0, _080408B8
-_080408B2:
- pop {r1}
- bx r1
- .align 2, 0
-_080408B8: .4byte 0x000001c9
- thumb_func_end sub_8040728
-
- thumb_func_start sub_80408BC
-sub_80408BC: @ 80408BC
- push {lr}
- bl map_music_set_to_zero
- bl m4aMPlayAllStop
- bl sub_8040728
- lsls r0, 16
- lsrs r0, 16
- bl sub_8075474
- pop {r0}
- bx r0
- thumb_func_end sub_80408BC
-
- thumb_func_start current_map_music_set__default_for_battle
-current_map_music_set__default_for_battle: @ 80408D8
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl map_music_set_to_zero
- bl m4aMPlayAllStop
- cmp r4, 0
- beq _080408F2
- adds r0, r4, 0
- bl current_map_music_set
- b _080408FE
-_080408F2:
- bl sub_8040728
- lsls r0, 16
- lsrs r0, 16
- bl current_map_music_set
-_080408FE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end current_map_music_set__default_for_battle
-
- thumb_func_start pokemon_get_pal
-pokemon_get_pal: @ 8040904
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x41
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0
- bl PokemonGetField
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl PokemonGetField
- adds r2, r0, 0
- adds r0, r4, 0
- adds r1, r6, 0
- bl species_and_otid_get_pal
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end pokemon_get_pal
-
- thumb_func_start species_and_otid_get_pal
-species_and_otid_get_pal: @ 804093C
- push {r4,r5,lr}
- adds r3, r2, 0
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _08040958
- ldr r0, _08040954
- ldr r0, [r0]
- b _08040984
- .align 2, 0
-_08040954: .4byte gMonPaletteTable
-_08040958:
- lsrs r0, r1, 16
- ldr r2, _08040974
- ands r1, r2
- eors r0, r1
- lsrs r1, r3, 16
- eors r0, r1
- ands r3, r2
- eors r0, r3
- cmp r0, 0x7
- bls _0804097C
- ldr r0, _08040978
- lsls r1, r4, 3
- b _08040980
- .align 2, 0
-_08040974: .4byte 0x0000ffff
-_08040978: .4byte gMonPaletteTable
-_0804097C:
- ldr r0, _0804098C
- lsls r1, r5, 3
-_08040980:
- adds r1, r0
- ldr r0, [r1]
-_08040984:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0804098C: .4byte gMonShinyPaletteTable
- thumb_func_end species_and_otid_get_pal
-
- thumb_func_start sub_8040990
-sub_8040990: @ 8040990
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x41
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0
- bl PokemonGetField
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl PokemonGetField
- adds r2, r0, 0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80409C8
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8040990
-
- thumb_func_start sub_80409C8
-sub_80409C8: @ 80409C8
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsrs r0, r1, 16
- ldr r3, _080409E8
- ands r1, r3
- eors r0, r1
- lsrs r1, r2, 16
- eors r0, r1
- ands r2, r3
- eors r0, r2
- cmp r0, 0x7
- bls _080409F0
- lsls r0, r4, 3
- ldr r1, _080409EC
- b _080409F4
- .align 2, 0
-_080409E8: .4byte 0x0000ffff
-_080409EC: .4byte gMonPaletteTable
-_080409F0:
- lsls r0, r4, 3
- ldr r1, _080409FC
-_080409F4:
- adds r0, r1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080409FC: .4byte gMonShinyPaletteTable
- thumb_func_end sub_80409C8
-
- thumb_func_start sub_8040A00
-sub_8040A00: @ 8040A00
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r2, _08040A24
- ldrh r0, [r2]
- ldr r1, _08040A28
- cmp r0, r1
- beq _08040A32
- adds r4, r1, 0
- adds r1, r2, 0
-_08040A14:
- ldrh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- cmp r0, r3
- bne _08040A2C
- movs r0, 0x1
- b _08040A34
- .align 2, 0
-_08040A24: .4byte gUnknown_0820831A
-_08040A28: .4byte 0x0000ffff
-_08040A2C:
- ldrh r0, [r1]
- cmp r0, r4
- bne _08040A14
-_08040A32:
- movs r0, 0
-_08040A34:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8040A00
-
- thumb_func_start sub_8040A3C
-sub_8040A3C: @ 8040A3C
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08040A50
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x19]
- lsrs r0, 7
- bx lr
- .align 2, 0
-_08040A50: .4byte gBaseStats
- thumb_func_end sub_8040A3C
-
- thumb_func_start sub_8040A54
-sub_8040A54: @ 8040A54
- push {r4,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08040A78
- lsls r1, r0, 2
- adds r1, r0
- adds r1, r4
- adds r1, r2
- movs r0, 0
- ldrsb r0, [r1, r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040A78: .4byte gUnknown_083F7E28
- thumb_func_end sub_8040A54
-
- thumb_func_start sub_8040A7C
-sub_8040A7C: @ 8040A7C
- push {r4,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- bl GetNatureFromPersonality
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08040AA0
- lsls r1, r0, 2
- adds r1, r0
- adds r1, r4
- adds r1, r2
- movs r0, 0
- ldrsb r0, [r1, r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040AA0: .4byte gUnknown_083F7E28
- thumb_func_end sub_8040A7C
-
- thumb_func_start sub_8040AA4
-sub_8040AA4: @ 8040AA4
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- movs r1, 0x7
- mov r2, sp
- bl PokemonGetField
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl PokemonGetField
- mov r1, sp
- bl sub_8040AD0
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8040AA4
-
- thumb_func_start sub_8040AD0
-sub_8040AD0: @ 8040AD0
- push {r4,r5,lr}
- adds r5, r1, 0
- ldr r3, _08040B10
- ldrb r2, [r3, 0xA]
- ldrb r1, [r3, 0xB]
- lsls r1, 8
- orrs r2, r1
- ldrb r1, [r3, 0xC]
- lsls r1, 16
- orrs r2, r1
- ldrb r1, [r3, 0xD]
- lsls r1, 24
- orrs r2, r1
- cmp r0, r2
- bne _08040B14
- movs r4, 0
- ldrb r0, [r5]
- cmp r0, 0xFF
- beq _08040B0C
- adds r2, r5, 0
-_08040AF8:
- adds r1, r4, r3
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08040B14
- adds r2, 0x1
- adds r4, 0x1
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _08040AF8
-_08040B0C:
- movs r0, 0
- b _08040B16
- .align 2, 0
-_08040B10: .4byte gSaveBlock2
-_08040B14:
- movs r0, 0x1
-_08040B16:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8040AD0
-
- thumb_func_start sub_8040B1C
-sub_8040B1C: @ 8040B1C
- push {lr}
- bl pokemon_restore_pp
- pop {r0}
- bx r0
- thumb_func_end sub_8040B1C
-
- thumb_func_start pokemon_restore_pp
-pokemon_restore_pp: @ 8040B28
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r6, 0
-_08040B30:
- adds r4, r6, 0
- adds r4, 0xD
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- bl PokemonGetEncryptedField
- cmp r0, 0
- beq _08040B7C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- bl PokemonGetEncryptedField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x15
- movs r2, 0
- bl PokemonGetEncryptedField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r2, r6, 24
- lsrs r2, 24
- adds r0, r4, 0
- bl CalcPPWithPPUps
- mov r1, sp
- strb r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r5, 0
- mov r2, sp
- bl PokemonSetEncryptedField
-_08040B7C:
- adds r6, 0x1
- cmp r6, 0x3
- ble _08040B30
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end pokemon_restore_pp
-
- thumb_func_start sub_8040B8C
-sub_8040B8C: @ 8040B8C
- push {r4,r5,lr}
- ldr r1, _08040BCC
- ldr r2, _08040BD0
- ldr r3, _08040BD4
- adds r0, r2, r3
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r5, _08040BD8
- movs r0, 0xFD
- strb r0, [r5]
- movs r0, 0x4
- strb r0, [r5, 0x1]
- ldr r0, _08040BDC
- adds r4, r2, r0
- ldrb r0, [r4]
- strb r0, [r5, 0x2]
- movs r0, 0xFF
- strb r0, [r5, 0x4]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08040BE4
- ldr r1, _08040BE0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- b _08040BEE
- .align 2, 0
-_08040BCC: .4byte 0x02024c06
-_08040BD0: .4byte 0x02000000
-_08040BD4: .4byte 0x000160c0
-_08040BD8: .4byte 0x030041c0
-_08040BDC: .4byte 0x00016054
-_08040BE0: .4byte 0x02024a6a
-_08040BE4:
- ldr r0, _08040C24
- ldrb r1, [r4]
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
-_08040BEE:
- strb r0, [r5, 0x3]
- ldr r4, _08040C28
- movs r0, 0xFD
- strb r0, [r4]
- movs r0, 0x4
- strb r0, [r4, 0x1]
- ldr r1, _08040C2C
- ldrb r0, [r1]
- strb r0, [r4, 0x2]
- ldr r2, _08040C24
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r2
- ldrb r0, [r0]
- bl pokemon_order_func
- strb r0, [r4, 0x3]
- movs r0, 0xFF
- strb r0, [r4, 0x4]
- ldr r0, _08040C30
- ldr r1, _08040C34
- bl sub_8120FFC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08040C24: .4byte 0x02024a6a
-_08040C28: .4byte 0x03004290
-_08040C2C: .4byte 0x02024e6c
-_08040C30: .4byte gUnknown_083FFCCA
-_08040C34: .4byte 0x020234cc
- thumb_func_end sub_8040B8C
-
- thumb_func_start sub_8040C38
-sub_8040C38: @ 8040C38
- push {r4,r5,lr}
- ldr r0, _08040C90
- ldrh r1, [r0]
- ldr r0, _08040C94
- ands r0, r1
- cmp r0, 0
- bne _08040CAC
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r4, _08040C98
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08040C9C
- lsls r1, r0, 3
- subs r1, r0
- lsls r3, r1, 2
- adds r1, r3, r2
- ldrh r0, [r1, 0xC]
- ldrh r1, [r1, 0xE]
- cmp r0, r1
- beq _08040C82
- cmp r5, 0x2C
- bls _08040CAC
- cmp r5, 0x5E
- bhi _08040CA0
-_08040C82:
- adds r2, 0xC
- adds r2, r3, r2
- adds r0, r4, 0
- movs r1, 0xC
- bl pokemon_setattr
- b _08040CAC
- .align 2, 0
-_08040C90: .4byte 0x020239f8
-_08040C94: .4byte 0x00002008
-_08040C98: .4byte 0x030045c0
-_08040C9C: .4byte gBaseStats
-_08040CA0:
- adds r2, 0xE
- adds r2, r3, r2
- adds r0, r4, 0
- movs r1, 0xC
- bl pokemon_setattr
-_08040CAC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8040C38
-
- thumb_func_start sub_8040CB4
-sub_8040CB4: @ 8040CB4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- movs r2, 0
- bl PokemonGetField
- adds r5, r0, 0
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl PokemonGetField
- adds r1, r0, 0
- adds r0, r5, 0
- bl sub_8040CE0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8040CB4
-
- thumb_func_start sub_8040CE0
-sub_8040CE0: @ 8040CE0
- push {r4,lr}
- movs r4, 0
- lsrs r2, r0, 16
- ldr r3, _08040D04
- ands r0, r3
- eors r2, r0
- lsrs r0, r1, 16
- eors r2, r0
- ands r1, r3
- eors r2, r1
- cmp r2, 0x7
- bhi _08040CFA
- movs r4, 0x1
-_08040CFA:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040D04: .4byte 0x0000ffff
- thumb_func_end sub_8040CE0
-
- thumb_func_start sub_8040D08
-sub_8040D08: @ 8040D08
- push {r4,lr}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08040D38
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x18]
- movs r0, 0x2
- eors r0, r1
- bl sub_803FC34
- adds r1, r0, 0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r4, 0x8
- adds r0, r4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040D38: .4byte 0x03002970
- thumb_func_end sub_8040D08
-
- thumb_func_start sub_8040D3C
-sub_8040D3C: @ 8040D3C
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r1, r0, 16
- adds r0, r1, 0
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0
- cmp r1, 0x20
- beq _08040D54
- cmp r1, 0x1D
- bne _08040D7E
-_08040D54:
- cmp r2, 0x2
- bne _08040D68
- movs r0, 0xB
- muls r1, r0
- ldr r0, _08040D64
- adds r1, r0
- b _08040D70
- .align 2, 0
-_08040D64: .4byte gSpeciesNames
-_08040D68:
- ldr r1, _08040D88
- cmp r0, 0x20
- bne _08040D70
- subs r1, 0xB
-_08040D70:
- adds r0, r4, 0
- bl StringCompareWithoutExtCtrlCodes
- movs r3, 0
- cmp r0, 0
- bne _08040D7E
- movs r3, 0x1
-_08040D7E:
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040D88: .4byte gUnknown_08208337
- thumb_func_end sub_8040D3C
-
- thumb_func_start sub_8040D8C
-sub_8040D8C: @ 8040D8C
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0x2
- ldrb r0, [r1]
- cmp r0, 0xFC
- bne _08040DA2
- ldrb r0, [r1, 0x1]
- cmp r0, 0x15
- bne _08040DA2
- movs r2, 0x1
-_08040DA2:
- adds r0, r3, 0
- bl sub_8040D3C
- pop {r1}
- bx r1
- thumb_func_end sub_8040D8C
-
- thumb_func_start unref_sub_8040DAC
-unref_sub_8040DAC: @ 8040DAC
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- movs r1, 0x3
- movs r2, 0
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0x2
- mov r2, sp
- bl PokemonGetField
- adds r0, r5, 0
- mov r1, sp
- adds r2, r4, 0
- bl sub_8040D3C
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8040DAC
-
- thumb_func_start sine
-sine: @ 8040DEC
- lsls r1, 16
- asrs r1, 16
- ldr r2, _08040E04
- lsls r0, 16
- asrs r0, 15
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- muls r0, r1
- lsls r0, 8
- asrs r0, 16
- bx lr
- .align 2, 0
-_08040E04: .4byte gSineTable
- thumb_func_end sine
-
- thumb_func_start cosine
-cosine: @ 8040E08
- lsls r1, 16
- asrs r1, 16
- ldr r2, _08040E24
- lsls r0, 16
- asrs r0, 15
- adds r0, 0x80
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- muls r0, r1
- lsls r0, 8
- asrs r0, 16
- bx lr
- .align 2, 0
-_08040E24: .4byte gSineTable
- thumb_func_end cosine
-
- thumb_func_start sine2
-sine2: @ 8040E28
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r5, 0
- movs r1, 0xB4
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0xB4
- bl __udivsi3
- movs r1, 0x1
- ands r0, r1
- ldr r1, _08040E5C
- lsls r4, 1
- adds r4, r1
- ldrh r1, [r4]
- cmp r0, 0
- bne _08040E60
- lsls r0, r1, 16
- b _08040E64
- .align 2, 0
-_08040E5C: .4byte gSineDegreeTable
-_08040E60:
- lsls r0, r1, 16
- negs r0, r0
-_08040E64:
- asrs r0, 16
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sine2
-
- thumb_func_start cosine2
-cosine2: @ 8040E6C
- push {lr}
- lsls r0, 16
- movs r1, 0xB4
- lsls r1, 15
- adds r0, r1
- lsrs r0, 16
- bl sine2
- lsls r0, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end cosine2
+ .align 2, 0 @ Don't pad with nop.