summaryrefslogtreecommitdiff
path: root/asm/naming_screen.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/naming_screen.s')
-rw-r--r--asm/naming_screen.s4331
1 files changed, 4331 insertions, 0 deletions
diff --git a/asm/naming_screen.s b/asm/naming_screen.s
new file mode 100644
index 000000000..e8ea18e34
--- /dev/null
+++ b/asm/naming_screen.s
@@ -0,0 +1,4331 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start DoNamingScreen
+DoNamingScreen: @ 80B59CC
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r4, [sp, 0x14]
+ ldr r5, [sp, 0x18]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ bl AddNamingScreenTask
+ ldr r0, _080B59F8 @ =C2_NamingScreen
+ bl SetMainCallback2
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B59F8: .4byte C2_NamingScreen
+ thumb_func_end DoNamingScreen
+
+ thumb_func_start C2_NamingScreen
+C2_NamingScreen: @ 80B59FC
+ push {lr}
+ ldr r0, _080B5A14 @ =gMain
+ ldr r1, _080B5A18 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bhi _080B5A96
+ lsls r0, 2
+ ldr r1, _080B5A1C @ =_080B5A20
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B5A14: .4byte gMain
+_080B5A18: .4byte 0x0000043c
+_080B5A1C: .4byte _080B5A20
+ .align 2, 0
+_080B5A20:
+ .4byte _080B5A40
+ .4byte _080B5A4A
+ .4byte _080B5A50
+ .4byte _080B5A56
+ .4byte _080B5A5C
+ .4byte _080B5A62
+ .4byte _080B5A68
+ .4byte _080B5A84
+_080B5A40:
+ bl NamingScreen_TurnOffScreen
+ bl NamingScreen_Init
+ b _080B5A6C
+_080B5A4A:
+ bl NamingScreen_ClearVram
+ b _080B5A6C
+_080B5A50:
+ bl NamingScreen_ClearOam
+ b _080B5A6C
+_080B5A56:
+ bl NamingScreen_SetUpVideoRegs
+ b _080B5A6C
+_080B5A5C:
+ bl sub_80B5DC8
+ b _080B5A6C
+_080B5A62:
+ bl NamingScreen_ResetObjects
+ b _080B5A6C
+_080B5A68:
+ bl sub_80B5DFC
+_080B5A6C:
+ ldr r1, _080B5A7C @ =gMain
+ ldr r0, _080B5A80 @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080B5A96
+ .align 2, 0
+_080B5A7C: .4byte gMain
+_080B5A80: .4byte 0x0000043c
+_080B5A84:
+ bl sub_80B5E20
+ bl sub_80B5E3C
+ bl sub_80B5C04
+ ldr r0, _080B5A9C @ =sub_80B5AA0
+ bl SetMainCallback2
+_080B5A96:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5A9C: .4byte sub_80B5AA0
+ thumb_func_end C2_NamingScreen
+
+ thumb_func_start sub_80B5AA0
+sub_80B5AA0: @ 80B5AA0
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5AA0
+
+ thumb_func_start sub_80B5AB8
+sub_80B5AB8: @ 80B5AB8
+ push {r4,lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ ldr r1, _080B5B00 @ =REG_BG1VOFS
+ ldr r4, _080B5B04 @ =0x02000000
+ ldrh r0, [r4, 0x4]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldrh r0, [r4, 0x6]
+ strh r0, [r1]
+ ldr r2, _080B5B08 @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r3, _080B5B0C @ =0x0000fffc
+ adds r0, r3, 0
+ ands r0, r1
+ strh r0, [r2]
+ ldrh r0, [r2]
+ ldrh r1, [r4, 0x8]
+ orrs r0, r1
+ strh r0, [r2]
+ adds r2, 0x2
+ ldrh r0, [r2]
+ ands r3, r0
+ strh r3, [r2]
+ ldrh r0, [r2]
+ ldrh r1, [r4, 0xA]
+ orrs r0, r1
+ strh r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5B00: .4byte REG_BG1VOFS
+_080B5B04: .4byte 0x02000000
+_080B5B08: .4byte REG_BG1CNT
+_080B5B0C: .4byte 0x0000fffc
+ thumb_func_end sub_80B5AB8
+
+ thumb_func_start AddNamingScreenTask
+AddNamingScreenTask: @ 80B5B10
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r8, r0
+ mov r9, r1
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r7, [sp, 0x1C]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, _080B5B74 @ =NamingScreenDummyTask
+ movs r1, 0xFF
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080B5B78 @ =gTasks
+ adds r4, r0
+ mov r0, r8
+ strh r0, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ strh r6, [r4, 0xC]
+ lsrs r0, r7, 16
+ strh r0, [r4, 0xE]
+ strh r7, [r4, 0x10]
+ adds r0, r4, 0
+ adds r0, 0x12
+ mov r1, r9
+ bl StoreWordInTwoHalfwords
+ adds r4, 0x16
+ adds r0, r4, 0
+ ldr r1, [sp, 0x20]
+ bl StoreWordInTwoHalfwords
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5B74: .4byte NamingScreenDummyTask
+_080B5B78: .4byte gTasks
+ thumb_func_end AddNamingScreenTask
+
+ thumb_func_start GetNamingScreenParameters
+GetNamingScreenParameters: @ 80B5B7C
+ push {r4-r6,lr}
+ ldr r0, _080B5BD8 @ =NamingScreenDummyTask
+ bl FindTaskIdByFunc
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, _080B5BDC @ =gTasks
+ adds r4, r0
+ ldr r6, _080B5BE0 @ =0x02000000
+ ldrh r0, [r4, 0x8]
+ strb r0, [r6, 0x1]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r6, 0x3E]
+ ldrh r1, [r4, 0xC]
+ adds r0, r6, 0
+ adds r0, 0x40
+ strh r1, [r0]
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ lsls r0, 16
+ ldrh r1, [r4, 0x10]
+ orrs r0, r1
+ str r0, [r6, 0x44]
+ adds r0, r4, 0
+ adds r0, 0x12
+ adds r1, r6, 0
+ adds r1, 0x38
+ bl LoadWordFromTwoHalfwords
+ adds r4, 0x16
+ adds r1, r6, 0
+ adds r1, 0x48
+ adds r0, r4, 0
+ bl LoadWordFromTwoHalfwords
+ adds r0, r5, 0
+ bl DestroyTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5BD8: .4byte NamingScreenDummyTask
+_080B5BDC: .4byte gTasks
+_080B5BE0: .4byte 0x02000000
+ thumb_func_end GetNamingScreenParameters
+
+ thumb_func_start NamingScreenDummyTask
+NamingScreenDummyTask: @ 80B5BE4
+ bx lr
+ thumb_func_end NamingScreenDummyTask
+
+ thumb_func_start NamingScreen_TurnOffScreen
+NamingScreen_TurnOffScreen: @ 80B5BE8
+ push {lr}
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ thumb_func_end NamingScreen_TurnOffScreen
+
+ thumb_func_start sub_80B5C04
+sub_80B5C04: @ 80B5C04
+ push {r4,lr}
+ ldr r0, _080B5C3C @ =sub_80B5AB8
+ bl SetVBlankCallback
+ ldr r3, _080B5C40 @ =0x04000208
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _080B5C44 @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _080B5C48 @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5C3C: .4byte sub_80B5AB8
+_080B5C40: .4byte 0x04000208
+_080B5C44: .4byte 0x04000200
+_080B5C48: .4byte REG_DISPSTAT
+ thumb_func_end sub_80B5C04
+
+ thumb_func_start NamingScreen_ClearVram
+NamingScreen_ClearVram: @ 80B5C4C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0x80
+ lsls r3, 9
+ mov r4, sp
+ movs r6, 0
+ ldr r1, _080B5C98 @ =0x040000d4
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _080B5C9C @ =0x81000800
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_080B5C6A:
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r5
+ subs r3, r5
+ cmp r3, r5
+ bhi _080B5C6A
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 1
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5C98: .4byte 0x040000d4
+_080B5C9C: .4byte 0x81000800
+ thumb_func_end NamingScreen_ClearVram
+
+ thumb_func_start NamingScreen_ClearOam
+NamingScreen_ClearOam: @ 80B5CA0
+ sub sp, 0x4
+ movs r2, 0xE0
+ lsls r2, 19
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080B5CBC @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080B5CC0 @ =0x81000200
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ add sp, 0x4
+ bx lr
+ .align 2, 0
+_080B5CBC: .4byte 0x040000d4
+_080B5CC0: .4byte 0x81000200
+ thumb_func_end NamingScreen_ClearOam
+
+ thumb_func_start NamingScreen_SetUpVideoRegs
+NamingScreen_SetUpVideoRegs: @ 80B5CC4
+ push {r4,r5,lr}
+ ldr r5, _080B5D2C @ =REG_BG0CNT
+ movs r1, 0
+ strh r1, [r5]
+ ldr r2, _080B5D30 @ =REG_BG1CNT
+ strh r1, [r2]
+ ldr r3, _080B5D34 @ =REG_BG2CNT
+ strh r1, [r3]
+ ldr r4, _080B5D38 @ =REG_BG3CNT
+ strh r1, [r4]
+ ldr r0, _080B5D3C @ =REG_BG0HOFS
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ movs r1, 0xF8
+ lsls r1, 5
+ adds r0, r1, 0
+ strh r0, [r5]
+ ldr r1, _080B5D40 @ =0x00001c01
+ adds r0, r1, 0
+ strh r0, [r2]
+ ldr r2, _080B5D44 @ =0x00001d0a
+ adds r0, r2, 0
+ strh r0, [r3]
+ ldr r1, _080B5D48 @ =0x00001e03
+ adds r0, r1, 0
+ strh r0, [r4]
+ ldr r1, _080B5D4C @ =REG_BLDCNT
+ movs r2, 0xC8
+ lsls r2, 3
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080B5D50 @ =0x0000080c
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5D2C: .4byte REG_BG0CNT
+_080B5D30: .4byte REG_BG1CNT
+_080B5D34: .4byte REG_BG2CNT
+_080B5D38: .4byte REG_BG3CNT
+_080B5D3C: .4byte REG_BG0HOFS
+_080B5D40: .4byte 0x00001c01
+_080B5D44: .4byte 0x00001d0a
+_080B5D48: .4byte 0x00001e03
+_080B5D4C: .4byte REG_BLDCNT
+_080B5D50: .4byte 0x0000080c
+ thumb_func_end NamingScreen_SetUpVideoRegs
+
+ thumb_func_start NamingScreen_Init
+NamingScreen_Init: @ 80B5D54
+ push {r4-r6,lr}
+ bl GetNamingScreenParameters
+ ldr r4, _080B5DBC @ =0x02000000
+ movs r0, 0
+ strb r0, [r4]
+ movs r2, 0
+ strh r0, [r4, 0x4]
+ strh r0, [r4, 0x6]
+ movs r1, 0x1
+ movs r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x2
+ strh r0, [r4, 0xA]
+ strb r2, [r4, 0xC]
+ strb r1, [r4, 0xD]
+ ldr r1, _080B5DC0 @ =gUnknown_083CE398
+ ldrb r0, [r4, 0x1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r4, 0x34]
+ ldrb r1, [r0, 0x4]
+ strb r1, [r4, 0xE]
+ ldrb r1, [r0, 0x1]
+ lsrs r1, 1
+ movs r0, 0xE
+ subs r0, r1
+ strh r0, [r4, 0x2]
+ ldr r6, _080B5DC4 @ =gKeyRepeatStartDelay
+ ldrh r0, [r6]
+ strh r0, [r4, 0x3C]
+ adds r5, r4, 0
+ adds r5, 0x11
+ adds r0, r5, 0
+ movs r1, 0xFF
+ movs r2, 0x10
+ bl memset
+ ldr r0, [r4, 0x34]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B5DB2
+ ldr r1, [r4, 0x38]
+ adds r0, r5, 0
+ bl StringCopy
+_080B5DB2:
+ movs r0, 0x10
+ strh r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5DBC: .4byte 0x02000000
+_080B5DC0: .4byte gUnknown_083CE398
+_080B5DC4: .4byte gKeyRepeatStartDelay
+ thumb_func_end NamingScreen_Init
+
+ thumb_func_start sub_80B5DC8
+sub_80B5DC8: @ 80B5DC8
+ push {r4,lr}
+ ldr r4, _080B5DE0 @ =gWindowConfig_81E6E88
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5DE0: .4byte gWindowConfig_81E6E88
+ thumb_func_end sub_80B5DC8
+
+ thumb_func_start NamingScreen_ResetObjects
+NamingScreen_ResetObjects: @ 80B5DE4
+ push {lr}
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ pop {r0}
+ bx r0
+ thumb_func_end NamingScreen_ResetObjects
+
+ thumb_func_start sub_80B5DFC
+sub_80B5DFC: @ 80B5DFC
+ push {lr}
+ bl sub_80B7558
+ bl sub_80B753C
+ bl sub_80B7680
+ bl sub_80B75C4
+ bl sub_80B7794
+ bl sub_80B78A8
+ bl sub_80B7960
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5DFC
+
+ thumb_func_start sub_80B5E20
+sub_80B5E20: @ 80B5E20
+ push {lr}
+ bl sub_80B6774
+ bl sub_80B6A80
+ bl sub_80B6CA8
+ bl sub_80B6D04
+ bl sub_80B6E44
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5E20
+
+ thumb_func_start sub_80B5E3C
+sub_80B5E3C: @ 80B5E3C
+ push {lr}
+ bl sub_80B61D8
+ bl sub_80B6438
+ bl sub_80B5E50
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B5E3C
+
+ thumb_func_start sub_80B5E50
+sub_80B5E50: @ 80B5E50
+ push {r4,lr}
+ ldr r4, _080B5E6C @ =sub_80B5E70
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5E6C: .4byte sub_80B5E70
+ thumb_func_end sub_80B5E50
+
+ thumb_func_start sub_80B5E70
+sub_80B5E70: @ 80B5E70
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r7, _080B5E9C @ =gUnknown_083CE218
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r4, r1, 3
+ ldr r6, _080B5EA0 @ =0x02000000
+ ldr r5, _080B5EA4 @ =gTasks
+_080B5E82:
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r4, r5
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B5E82
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B5E9C: .4byte gUnknown_083CE218
+_080B5EA0: .4byte 0x02000000
+_080B5EA4: .4byte gTasks
+ thumb_func_end sub_80B5E70
+
+ thumb_func_start sub_80B5EA8
+sub_80B5EA8: @ 80B5EA8
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, _080B5ECC @ =0x02000000
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B5ECC: .4byte 0x02000000
+ thumb_func_end sub_80B5EA8
+
+ thumb_func_start sub_80B5ED0
+sub_80B5ED0: @ 80B5ED0
+ push {lr}
+ ldr r0, _080B5EF8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B5EF2
+ movs r0, 0x1
+ bl sub_80B6210
+ movs r0, 0x1
+ bl sub_80B68D8
+ ldr r1, _080B5EFC @ =0x02000000
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080B5EF2:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B5EF8: .4byte gPaletteFade
+_080B5EFC: .4byte 0x02000000
+ thumb_func_end sub_80B5ED0
+
+ thumb_func_start sub_80B5F00
+sub_80B5F00: @ 80B5F00
+ push {lr}
+ bl sub_80B60B8
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B5F00
+
+ thumb_func_start sub_80B5F10
+sub_80B5F10: @ 80B5F10
+ push {lr}
+ bl sub_80B6938
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B5F2C
+ movs r0, 0x1
+ bl sub_80B6210
+ bl sub_80B6878
+ ldr r1, _080B5F34 @ =0x02000000
+ movs r0, 0x2
+ strb r0, [r1]
+_080B5F2C:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B5F34: .4byte 0x02000000
+ thumb_func_end sub_80B5F10
+
+ thumb_func_start sub_80B5F38
+sub_80B5F38: @ 80B5F38
+ push {lr}
+ movs r0, 0
+ bl sub_80B6210
+ bl sub_80B6B14
+ bl sub_80B65F0
+ movs r0, 0x1
+ bl sub_80B6888
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80B6460
+ movs r0, 0x6
+ bl PlaySE
+ ldr r1, _080B5F6C @ =0x02000000
+ movs r0, 0x5
+ strb r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B5F6C: .4byte 0x02000000
+ thumb_func_end sub_80B5F38
+
+ thumb_func_start sub_80B5F70
+sub_80B5F70: @ 80B5F70
+ push {r4,r5,lr}
+ sub sp, 0x4
+ bl sub_80B6610
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B5FDC
+ ldr r4, _080B5FE8 @ =0x02000000
+ movs r0, 0x2
+ strb r0, [r4]
+ ldrb r0, [r4, 0xE]
+ adds r0, 0x1
+ strb r0, [r4, 0xE]
+ ldrb r0, [r4, 0xE]
+ movs r1, 0x3
+ bl __umodsi3
+ strb r0, [r4, 0xE]
+ bl sub_80B7614
+ bl sub_80B77F8
+ movs r0, 0x1
+ bl sub_80B6210
+ mov r5, sp
+ adds r5, 0x2
+ mov r0, sp
+ adds r1, r5, 0
+ bl sub_80B6858
+ ldrb r0, [r4, 0xE]
+ cmp r0, 0x2
+ bne _080B5FC8
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, 0x6
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080B5FC8
+ mov r1, sp
+ movs r0, 0x5
+ strh r0, [r1]
+_080B5FC8:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl sub_80B680C
+ movs r0, 0
+ bl sub_80B6888
+_080B5FDC:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B5FE8: .4byte 0x02000000
+ thumb_func_end sub_80B5F70
+
+ thumb_func_start pokemon_store
+pokemon_store: @ 80B5FEC
+ push {r4,lr}
+ bl sub_80B74B0
+ movs r0, 0
+ bl sub_80B6210
+ movs r0, 0
+ bl sub_80B68D8
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80B6460
+ ldr r0, _080B6030 @ =gKeyRepeatStartDelay
+ ldr r4, _080B6034 @ =0x02000000
+ ldrh r1, [r4, 0x3C]
+ strh r1, [r0]
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x2
+ bne _080B6038
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bls _080B6038
+ bl sub_80B74FC
+ movs r0, 0x7
+ strb r0, [r4]
+ movs r0, 0
+ b _080B6040
+ .align 2, 0
+_080B6030: .4byte gKeyRepeatStartDelay
+_080B6034: .4byte 0x02000000
+_080B6038:
+ ldr r1, _080B6048 @ =0x02000000
+ movs r0, 0x8
+ strb r0, [r1]
+ movs r0, 0x1
+_080B6040:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6048: .4byte 0x02000000
+ thumb_func_end pokemon_store
+
+ thumb_func_start sub_80B604C
+sub_80B604C: @ 80B604C
+ push {lr}
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B6060
+ ldr r1, _080B6068 @ =0x02000000
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080B6060:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6068: .4byte 0x02000000
+ thumb_func_end sub_80B604C
+
+ thumb_func_start sub_80B606C
+sub_80B606C: @ 80B606C
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _080B6090 @ =0x02000000
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6090: .4byte 0x02000000
+ thumb_func_end sub_80B606C
+
+ thumb_func_start sub_80B6094
+sub_80B6094: @ 80B6094
+ push {lr}
+ ldr r0, _080B60B0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B60AA
+ ldr r0, _080B60B4 @ =0x02000000
+ ldr r0, [r0, 0x48]
+ bl SetMainCallback2
+_080B60AA:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B60B0: .4byte gPaletteFade
+_080B60B4: .4byte 0x02000000
+ thumb_func_end sub_80B6094
+
+ thumb_func_start sub_80B60B8
+sub_80B60B8: @ 80B60B8
+ push {r4,r5,lr}
+ bl sub_80B61EC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_80B6958
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, 0x8
+ bne _080B60D6
+ bl sub_80B61C8
+ b _080B60F2
+_080B60D6:
+ cmp r4, 0x6
+ bne _080B60E0
+ bl sub_80B6FBC
+ b _080B6100
+_080B60E0:
+ cmp r5, 0x7
+ beq _080B60FC
+ ldr r1, _080B60F8 @ =gUnknown_083CE240
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r1
+_080B60F2:
+ lsls r0, 24
+ lsrs r0, 24
+ b _080B6102
+ .align 2, 0
+_080B60F8: .4byte gUnknown_083CE240
+_080B60FC:
+ bl sub_80B7090
+_080B6100:
+ movs r0, 0
+_080B6102:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B60B8
+
+ thumb_func_start sub_80B6108
+sub_80B6108: @ 80B6108
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl sub_80B6460
+ cmp r4, 0x5
+ bne _080B613C
+ bl sub_80B7004
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80B6914
+ cmp r4, 0
+ beq _080B613C
+ movs r0, 0
+ bl sub_80B6210
+ ldr r1, _080B6144 @ =0x02000000
+ movs r0, 0x3
+ strb r0, [r1]
+_080B613C:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6144: .4byte 0x02000000
+ thumb_func_end sub_80B6108
+
+ thumb_func_start sub_80B6148
+sub_80B6148: @ 80B6148
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_80B6460
+ cmp r4, 0x5
+ beq _080B6162
+ movs r0, 0
+ b _080B616A
+_080B6162:
+ bl sub_80B61C8
+ lsls r0, 24
+ lsrs r0, 24
+_080B616A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B6148
+
+ thumb_func_start sub_80B6170
+sub_80B6170: @ 80B6170
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_80B6460
+ cmp r4, 0x5
+ bne _080B618A
+ bl sub_80B6FBC
+_080B618A:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B6170
+
+ thumb_func_start sub_80B6194
+sub_80B6194: @ 80B6194
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_80B6460
+ cmp r4, 0x5
+ beq _080B61AE
+ movs r0, 0
+ b _080B61BC
+_080B61AE:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080B61C4 @ =0x02000000
+ movs r0, 0x6
+ strb r0, [r1]
+ movs r0, 0x1
+_080B61BC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B61C4: .4byte 0x02000000
+ thumb_func_end sub_80B6194
+
+ thumb_func_start sub_80B61C8
+sub_80B61C8: @ 80B61C8
+ ldr r1, _080B61D4 @ =0x02000000
+ movs r0, 0x4
+ strb r0, [r1]
+ movs r0, 0x1
+ bx lr
+ .align 2, 0
+_080B61D4: .4byte 0x02000000
+ thumb_func_end sub_80B61C8
+
+ thumb_func_start sub_80B61D8
+sub_80B61D8: @ 80B61D8
+ push {lr}
+ ldr r0, _080B61E8 @ =sub_80B623C
+ movs r1, 0x1
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B61E8: .4byte sub_80B623C
+ thumb_func_end sub_80B61D8
+
+ thumb_func_start sub_80B61EC
+sub_80B61EC: @ 80B61EC
+ push {lr}
+ ldr r0, _080B6208 @ =sub_80B623C
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B620C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0xA]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6208: .4byte sub_80B623C
+_080B620C: .4byte gTasks
+ thumb_func_end sub_80B61EC
+
+ thumb_func_start sub_80B6210
+sub_80B6210: @ 80B6210
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080B6234 @ =sub_80B623C
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B6238 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6234: .4byte sub_80B623C
+_080B6238: .4byte gTasks
+ thumb_func_end sub_80B6210
+
+ thumb_func_start sub_80B623C
+sub_80B623C: @ 80B623C
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _080B6264 @ =gUnknown_083CE250
+ ldr r2, _080B6268 @ =gTasks
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6264: .4byte gUnknown_083CE250
+_080B6268: .4byte gTasks
+ thumb_func_end sub_80B623C
+
+ thumb_func_start sub_80B626C
+sub_80B626C: @ 80B626C
+ movs r1, 0
+ strh r1, [r0, 0xA]
+ bx lr
+ thumb_func_end sub_80B626C
+
+ thumb_func_start sub_80B6274
+sub_80B6274: @ 80B6274
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldr r0, _080B6290 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080B6294
+ movs r0, 0x5
+ strh r0, [r2, 0xA]
+ b _080B62C8
+ .align 2, 0
+_080B6290: .4byte gMain
+_080B6294:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080B62A2
+ movs r0, 0x6
+ strh r0, [r2, 0xA]
+ b _080B62C8
+_080B62A2:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080B62B0
+ movs r0, 0x8
+ strh r0, [r2, 0xA]
+ b _080B62C8
+_080B62B0:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080B62C2
+ movs r0, 0x9
+ strh r0, [r2, 0xA]
+ bl sub_80B6878
+ b _080B62C8
+_080B62C2:
+ adds r0, r2, 0
+ bl sub_80B62CC
+_080B62C8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B6274
+
+ thumb_func_start sub_80B62CC
+sub_80B62CC: @ 80B62CC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80B6858
+ ldr r0, _080B6374 @ =gMain
+ ldrh r2, [r0, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ negs r0, r0
+ lsrs r1, r0, 31
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _080B62F8
+ movs r1, 0x2
+_080B62F8:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _080B6302
+ movs r1, 0x3
+_080B6302:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ beq _080B630C
+ movs r1, 0x4
+_080B630C:
+ mov r0, sp
+ ldrh r6, [r0]
+ mov r2, sp
+ ldr r0, _080B6378 @ =gUnknown_083CE258
+ lsls r1, 1
+ adds r0, r1, r0
+ ldrh r3, [r0]
+ adds r0, r6, r3
+ strh r0, [r2]
+ ldr r0, _080B637C @ =gUnknown_083CE262
+ adds r1, r0
+ ldrh r0, [r1]
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r4]
+ mov r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bge _080B633A
+ mov r1, sp
+ movs r0, 0x8
+ strh r0, [r1]
+_080B633A:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x8
+ ble _080B634A
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+_080B634A:
+ lsls r0, r3, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ beq _080B63CA
+ ldr r0, _080B6380 @ =0x02000000
+ ldrb r0, [r0, 0xE]
+ cmp r0, 0x2
+ bne _080B638A
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, 0x6
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080B638A
+ cmp r1, 0
+ ble _080B6384
+ mov r1, sp
+ movs r0, 0x8
+ b _080B6388
+ .align 2, 0
+_080B6374: .4byte gMain
+_080B6378: .4byte gUnknown_083CE258
+_080B637C: .4byte gUnknown_083CE262
+_080B6380: .4byte 0x02000000
+_080B6384:
+ mov r1, sp
+ movs r0, 0x5
+_080B6388:
+ strh r0, [r1]
+_080B638A:
+ mov r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0x8
+ bne _080B63AC
+ ldrh r0, [r4]
+ strh r0, [r5, 0xC]
+ ldr r1, _080B63A8 @ =gUnknown_083CE26C
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ b _080B63C8
+ .align 2, 0
+_080B63A8: .4byte gUnknown_083CE26C
+_080B63AC:
+ cmp r6, 0x8
+ bne _080B63CA
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080B63BC
+ ldrh r0, [r5, 0xC]
+ b _080B63C8
+_080B63BC:
+ ldr r0, _080B63FC @ =gUnknown_083CE274
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+_080B63C8:
+ strh r0, [r4]
+_080B63CA:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x8
+ bne _080B6408
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bge _080B63E0
+ movs r0, 0x2
+ strh r0, [r4]
+_080B63E0:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x2
+ ble _080B63EC
+ movs r0, 0
+ strh r0, [r4]
+_080B63EC:
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080B6400
+ movs r0, 0x1
+ strh r0, [r5, 0xC]
+ b _080B6420
+ .align 2, 0
+_080B63FC: .4byte gUnknown_083CE274
+_080B6400:
+ cmp r0, 0x2
+ bne _080B6420
+ strh r0, [r5, 0xC]
+ b _080B6420
+_080B6408:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _080B6414
+ movs r0, 0x3
+ strh r0, [r4]
+_080B6414:
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ ble _080B6420
+ movs r0, 0
+ strh r0, [r4]
+_080B6420:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl sub_80B680C
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B62CC
+
+ thumb_func_start sub_80B6438
+sub_80B6438: @ 80B6438
+ push {lr}
+ ldr r0, _080B6458 @ =sub_80B64D4
+ movs r1, 0x3
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B645C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0x3
+ strh r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6458: .4byte sub_80B64D4
+_080B645C: .4byte gTasks
+ thumb_func_end sub_80B6438
+
+ thumb_func_start sub_80B6460
+sub_80B6460: @ 80B6460
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r0, _080B6498 @ =sub_80B64D4
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B649C @ =gTasks
+ adds r4, r1, r0
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r5, r0
+ bne _080B64A0
+ cmp r6, 0
+ bne _080B64A0
+ strh r7, [r4, 0xA]
+ movs r0, 0x1
+ strh r0, [r4, 0xC]
+ b _080B64CC
+ .align 2, 0
+_080B6498: .4byte sub_80B64D4
+_080B649C: .4byte gTasks
+_080B64A0:
+ cmp r5, 0x3
+ bne _080B64B0
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080B64B0
+ cmp r6, 0
+ beq _080B64CC
+_080B64B0:
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ beq _080B64C2
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl sub_80B65AC
+_080B64C2:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r7, 0
+ bl sub_80B65D4
+_080B64CC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B6460
+
+ thumb_func_start sub_80B64D4
+sub_80B64D4: @ 80B64D4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B6548 @ =gTasks
+ adds r4, r1, r0
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ beq _080B6540
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080B6540
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl sub_80B654C
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r3, [r4, 0xE]
+ adds r1, r3, 0
+ adds r2, r3, 0
+ bl MultiplyInvertedPaletteRGBComponents
+ ldrh r1, [r4, 0x12]
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080B6520
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080B6540
+_080B6520:
+ movs r0, 0x2
+ strh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x10]
+ ldrh r2, [r4, 0xE]
+ adds r0, r1, r2
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ beq _080B653C
+ cmp r0, 0
+ bne _080B6540
+ ldrh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+_080B653C:
+ negs r0, r1
+ strh r0, [r4, 0x10]
+_080B6540:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6548: .4byte gTasks
+ thumb_func_end sub_80B64D4
+
+ thumb_func_start sub_80B654C
+sub_80B654C: @ 80B654C
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x4
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x87
+ lsls r1, 1
+ adds r5, r1, 0
+ adds r0, r5
+ add r6, sp, 0x8
+ strh r0, [r6]
+ movs r0, 0x6
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x86
+ lsls r1, 1
+ adds r0, r1
+ mov r1, sp
+ adds r1, 0xA
+ strh r0, [r1]
+ movs r0, 0x6
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ adds r0, r5
+ add r1, sp, 0xC
+ strh r0, [r1]
+ mov r0, sp
+ adds r1, r6, 0
+ movs r2, 0x6
+ bl memcpy
+ lsls r4, 1
+ mov r1, sp
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B654C
+
+ thumb_func_start sub_80B65AC
+sub_80B65AC: @ 80B65AC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80B654C
+ lsls r0, 16
+ ldr r2, _080B65CC @ =gPlttBufferFaded
+ lsrs r0, 15
+ adds r2, r0, r2
+ ldr r1, _080B65D0 @ =gPlttBufferUnfaded
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B65CC: .4byte gPlttBufferFaded
+_080B65D0: .4byte gPlttBufferUnfaded
+ thumb_func_end sub_80B65AC
+
+ thumb_func_start sub_80B65D4
+sub_80B65D4: @ 80B65D4
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ movs r3, 0
+ strh r1, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ movs r2, 0x1
+ strh r2, [r0, 0xC]
+ movs r1, 0xF
+ strh r1, [r0, 0xE]
+ strh r2, [r0, 0x10]
+ strh r3, [r0, 0x12]
+ bx lr
+ thumb_func_end sub_80B65D4
+
+ thumb_func_start sub_80B65F0
+sub_80B65F0: @ 80B65F0
+ push {r4,lr}
+ ldr r4, _080B660C @ =sub_80B6630
+ adds r0, r4, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B660C: .4byte sub_80B6630
+ thumb_func_end sub_80B65F0
+
+ thumb_func_start sub_80B6610
+sub_80B6610: @ 80B6610
+ push {lr}
+ ldr r0, _080B6624 @ =sub_80B6630
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080B6628
+ movs r0, 0
+ b _080B662A
+ .align 2, 0
+_080B6624: .4byte sub_80B6630
+_080B6628:
+ movs r0, 0x1
+_080B662A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B6610
+
+ thumb_func_start sub_80B6630
+sub_80B6630: @ 80B6630
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080B6660 @ =gUnknown_083CE27C
+ ldr r2, _080B6664 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080B6642:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B6642
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6660: .4byte gUnknown_083CE27C
+_080B6664: .4byte gTasks
+ thumb_func_end sub_80B6630
+
+ thumb_func_start sub_80B6668
+sub_80B6668: @ 80B6668
+ ldr r2, _080B667C @ =0x02000000
+ movs r1, 0
+ strh r1, [r2, 0x4]
+ strh r1, [r2, 0x6]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ movs r0, 0
+ bx lr
+ .align 2, 0
+_080B667C: .4byte 0x02000000
+ thumb_func_end sub_80B6668
+
+ thumb_func_start sub_80B6680
+sub_80B6680: @ 80B6680
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r0, _080B66E4 @ =gUnknown_083CE28C
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x4
+ strh r0, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r1, 0x28
+ bl Sin
+ ldr r5, _080B66E8 @ =0x02000000
+ ldrb r1, [r5, 0xC]
+ lsls r1, 2
+ add r1, sp
+ ldr r1, [r1]
+ strh r0, [r1]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x80
+ movs r1, 0xFF
+ ands r0, r1
+ movs r1, 0x28
+ bl Sin
+ ldrb r1, [r5, 0xD]
+ lsls r1, 2
+ add r1, sp
+ ldr r1, [r1]
+ strh r0, [r1]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3F
+ ble _080B66DA
+ ldrb r1, [r5, 0x8]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r5, 0x8]
+ strh r1, [r5, 0xA]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080B66DA:
+ movs r0, 0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B66E4: .4byte gUnknown_083CE28C
+_080B66E8: .4byte 0x02000000
+ thumb_func_end sub_80B6680
+
+ thumb_func_start sub_80B66EC
+sub_80B66EC: @ 80B66EC
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r0, _080B6750 @ =gUnknown_083CE28C
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x4
+ strh r0, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r1, 0x28
+ bl Sin
+ ldr r5, _080B6754 @ =0x02000000
+ ldrb r1, [r5, 0xC]
+ lsls r1, 2
+ add r1, sp
+ ldr r1, [r1]
+ strh r0, [r1]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x80
+ movs r1, 0xFF
+ ands r0, r1
+ movs r1, 0x28
+ bl Sin
+ ldrb r1, [r5, 0xD]
+ lsls r1, 2
+ add r1, sp
+ ldr r1, [r1]
+ strh r0, [r1]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ ble _080B6746
+ ldrb r1, [r5, 0xC]
+ ldrb r0, [r5, 0xD]
+ strb r0, [r5, 0xC]
+ strb r1, [r5, 0xD]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080B6746:
+ movs r0, 0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6750: .4byte gUnknown_083CE28C
+_080B6754: .4byte 0x02000000
+ thumb_func_end sub_80B66EC
+
+ thumb_func_start sub_80B6758
+sub_80B6758: @ 80B6758
+ push {lr}
+ ldr r0, _080B6770 @ =sub_80B6630
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6770: .4byte sub_80B6630
+ thumb_func_end sub_80B6758
+
+ thumb_func_start sub_80B6774
+sub_80B6774: @ 80B6774
+ push {r4,r5,lr}
+ ldr r0, _080B67E0 @ =gSpriteTemplate_83CE640
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ ldr r4, _080B67E4 @ =0x02000000
+ strb r0, [r4, 0xF]
+ ldr r5, _080B67E8 @ =gSprites
+ ldrb r0, [r4, 0xF]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r3, [r1, 0x5]
+ movs r2, 0xD
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r1, [r4, 0xF]
+ 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]
+ ldrb r1, [r4, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ strh r1, [r0, 0x3A]
+ ldrb r1, [r4, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x2
+ strh r1, [r0, 0x3A]
+ movs r0, 0
+ movs r1, 0
+ bl sub_80B680C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B67E0: .4byte gSpriteTemplate_83CE640
+_080B67E4: .4byte 0x02000000
+_080B67E8: .4byte gSprites
+ thumb_func_end sub_80B6774
+
+ thumb_func_start sub_80B67EC
+sub_80B67EC: @ 80B67EC
+ ldr r3, _080B6804 @ =gUnknown_083CE294
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, _080B6808 @ =0x02000000
+ ldrb r2, [r1, 0xE]
+ lsls r1, r2, 3
+ adds r1, r2
+ adds r0, r1
+ adds r0, r3
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080B6804: .4byte gUnknown_083CE294
+_080B6808: .4byte 0x02000000
+ thumb_func_end sub_80B67EC
+
+ thumb_func_start sub_80B680C
+sub_80B680C: @ 80B680C
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ lsls r0, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r1, _080B6850 @ =0x02000000
+ ldrb r1, [r1, 0xF]
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ ldr r1, _080B6854 @ =gSprites
+ adds r4, r1
+ lsrs r6, r0, 16
+ asrs r0, 16
+ bl sub_80B67EC
+ lsls r0, 24
+ lsrs r0, 21
+ adds r0, 0x1B
+ strh r0, [r4, 0x20]
+ lsls r0, r5, 16
+ asrs r0, 12
+ adds r0, 0x50
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x2E]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x30]
+ strh r0, [r4, 0x34]
+ strh r6, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6850: .4byte 0x02000000
+_080B6854: .4byte gSprites
+ thumb_func_end sub_80B680C
+
+ thumb_func_start sub_80B6858
+sub_80B6858: @ 80B6858
+ ldr r2, _080B6870 @ =0x02000000
+ ldrb r3, [r2, 0xF]
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ ldr r3, _080B6874 @ =gSprites
+ adds r2, r3
+ ldrh r3, [r2, 0x2E]
+ strh r3, [r0]
+ ldrh r0, [r2, 0x30]
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080B6870: .4byte 0x02000000
+_080B6874: .4byte gSprites
+ thumb_func_end sub_80B6858
+
+ thumb_func_start sub_80B6878
+sub_80B6878: @ 80B6878
+ push {lr}
+ movs r0, 0x8
+ movs r1, 0x2
+ bl sub_80B680C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B6878
+
+ thumb_func_start sub_80B6888
+sub_80B6888: @ 80B6888
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080B68CC @ =gSprites
+ ldr r4, _080B68D0 @ =0x02000000
+ ldrb r1, [r4, 0xF]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r5
+ ldrh r3, [r2, 0x36]
+ ldr r1, _080B68D4 @ =0xffffff00
+ ands r1, r3
+ strh r1, [r2, 0x36]
+ ldrb r2, [r4, 0xF]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ ldrh r2, [r1, 0x36]
+ orrs r0, r2
+ strh r0, [r1, 0x36]
+ ldrb r1, [r4, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0
+ bl StartSpriteAnim
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B68CC: .4byte gSprites
+_080B68D0: .4byte 0x02000000
+_080B68D4: .4byte 0xffffff00
+ thumb_func_end sub_80B6888
+
+ thumb_func_start sub_80B68D8
+sub_80B68D8: @ 80B68D8
+ push {r4,r5,lr}
+ lsls r0, 24
+ ldr r5, _080B690C @ =gSprites
+ ldr r4, _080B6910 @ =0x02000000
+ ldrb r1, [r4, 0xF]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r5
+ ldrh r3, [r2, 0x36]
+ movs r1, 0xFF
+ ands r1, r3
+ strh r1, [r2, 0x36]
+ ldrb r2, [r4, 0xF]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ lsrs r0, 16
+ ldrh r2, [r1, 0x36]
+ orrs r0, r2
+ strh r0, [r1, 0x36]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B690C: .4byte gSprites
+_080B6910: .4byte 0x02000000
+ thumb_func_end sub_80B68D8
+
+ thumb_func_start sub_80B6914
+sub_80B6914: @ 80B6914
+ push {lr}
+ ldr r0, _080B6930 @ =0x02000000
+ ldrb r1, [r0, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B6934 @ =gSprites
+ adds r0, r1
+ movs r1, 0x1
+ bl StartSpriteAnim
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6930: .4byte 0x02000000
+_080B6934: .4byte gSprites
+ thumb_func_end sub_80B6914
+
+ thumb_func_start sub_80B6938
+sub_80B6938: @ 80B6938
+ ldr r2, _080B6950 @ =gSprites
+ ldr r0, _080B6954 @ =0x02000000
+ ldrb r1, [r0, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r0, 31
+ bx lr
+ .align 2, 0
+_080B6950: .4byte gSprites
+_080B6954: .4byte 0x02000000
+ thumb_func_end sub_80B6938
+
+ thumb_func_start sub_80B6958
+sub_80B6958: @ 80B6958
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r1, _080B6988 @ =gUnknown_083CE2AF
+ mov r0, sp
+ movs r2, 0x3
+ bl memcpy
+ add r4, sp, 0x4
+ mov r5, sp
+ adds r5, 0x6
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80B6858
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ ble _080B698C
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ add r0, sp
+ ldrb r0, [r0]
+ b _080B698E
+ .align 2, 0
+_080B6988: .4byte gUnknown_083CE2AF
+_080B698C:
+ movs r0, 0
+_080B698E:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B6958
+
+ thumb_func_start sub_80B6998
+sub_80B6998: @ 80B6998
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B69B0
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+_080B69B0:
+ ldrh r1, [r4, 0x36]
+ movs r0, 0xFF
+ ands r0, r1
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r1, 0x1
+ ands r0, r1
+ lsls r0, 2
+ ldrb r1, [r3]
+ movs r2, 0x5
+ negs r2, r2
+ ands r2, r1
+ orrs r2, r0
+ strb r2, [r3]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ bne _080B69DA
+ movs r0, 0x4
+ orrs r2, r0
+ strb r2, [r3]
+_080B69DA:
+ ldrb r1, [r3]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080B6A0A
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080B6A0A
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080B6A0A
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ beq _080B6A16
+_080B6A0A:
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ movs r0, 0x1
+ strh r0, [r4, 0x3A]
+ movs r0, 0x2
+ strh r0, [r4, 0x3C]
+_080B6A16:
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080B6A3E
+ ldrh r1, [r4, 0x3A]
+ ldrh r2, [r4, 0x38]
+ adds r0, r1, r2
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ beq _080B6A36
+ cmp r0, 0
+ bne _080B6A3A
+_080B6A36:
+ negs r0, r1
+ strh r0, [r4, 0x3A]
+_080B6A3A:
+ movs r0, 0x2
+ strh r0, [r4, 0x3C]
+_080B6A3E:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080B6A74
+ ldrh r4, [r4, 0x38]
+ lsls r5, r4, 24
+ lsrs r5, 24
+ lsls r4, 16
+ asrs r4, 17
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 4
+ ldr r2, _080B6A7C @ =0x01010000
+ adds r0, r2
+ lsrs r0, 16
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r5, 0
+ bl MultiplyInvertedPaletteRGBComponents
+_080B6A74:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6A7C: .4byte 0x01010000
+ thumb_func_end sub_80B6998
+
+ thumb_func_start sub_80B6A80
+sub_80B6A80: @ 80B6A80
+ push {r4,r5,lr}
+ ldr r0, _080B6AF8 @ =gSpriteTemplate_83CE5C8
+ movs r1, 0xCC
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B6AFC @ =0x02000000
+ strb r0, [r1, 0x10]
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r5, _080B6B00 @ =gSprites
+ adds r4, r5
+ ldr r1, _080B6B04 @ =gUnknown_083CE558
+ adds r0, r4, 0
+ bl SetSubspriteTables
+ ldr r0, _080B6B08 @ =gSpriteTemplate_83CE5F8
+ movs r1, 0xCC
+ movs r2, 0x4C
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x3A]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r5
+ ldr r1, _080B6B0C @ =gUnknown_083CE560
+ adds r0, r2, 0
+ bl SetSubspriteTables
+ ldr r0, _080B6B10 @ =gSpriteTemplate_83CE5E0
+ movs r1, 0xCC
+ movs r2, 0x4B
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r3, [r1, 0x5]
+ movs r2, 0xD
+ negs r2, r2
+ ands r2, r3
+ movs r3, 0x4
+ orrs r2, r3
+ strb r2, [r1, 0x5]
+ strh r0, [r4, 0x3C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6AF8: .4byte gSpriteTemplate_83CE5C8
+_080B6AFC: .4byte 0x02000000
+_080B6B00: .4byte gSprites
+_080B6B04: .4byte gUnknown_083CE558
+_080B6B08: .4byte gSpriteTemplate_83CE5F8
+_080B6B0C: .4byte gUnknown_083CE560
+_080B6B10: .4byte gSpriteTemplate_83CE5E0
+ thumb_func_end sub_80B6A80
+
+ thumb_func_start sub_80B6B14
+sub_80B6B14: @ 80B6B14
+ ldr r2, _080B6B2C @ =0x02000000
+ ldrb r1, [r2, 0x10]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B6B30 @ =gSprites
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2, 0xE]
+ strh r1, [r0, 0x30]
+ bx lr
+ .align 2, 0
+_080B6B2C: .4byte 0x02000000
+_080B6B30: .4byte gSprites
+ thumb_func_end sub_80B6B14
+
+ thumb_func_start sub_80B6B34
+sub_80B6B34: @ 80B6B34
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080B6B58 @ =gUnknown_083CE2B4
+_080B6B3A:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B6B3A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6B58: .4byte gUnknown_083CE2B4
+ thumb_func_end sub_80B6B34
+
+ thumb_func_start sub_80B6B5C
+sub_80B6B5C: @ 80B6B5C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r3, _080B6B90 @ =gSprites
+ adds r1, r3
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldr r0, _080B6B94 @ =0x02000000
+ ldrb r0, [r0, 0xE]
+ bl sub_80B6C48
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6B90: .4byte gSprites
+_080B6B94: .4byte 0x02000000
+ thumb_func_end sub_80B6B5C
+
+ thumb_func_start sub_80B6B98
+sub_80B6B98: @ 80B6B98
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80B6B98
+
+ thumb_func_start sub_80B6B9C
+sub_80B6B9C: @ 80B6B9C
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ movs r0, 0x3A
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r2, _080B6C00 @ =gSprites
+ adds r4, r0, r2
+ movs r0, 0x3C
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r5, r0, r2
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080B6BF8
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ ldr r0, _080B6C04 @ =0x0000fffc
+ strh r0, [r4, 0x26]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r3, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80B6C48
+_080B6BF8:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6C00: .4byte gSprites
+_080B6C04: .4byte 0x0000fffc
+ thumb_func_end sub_80B6B9C
+
+ thumb_func_start sub_80B6C08
+sub_80B6C08: @ 80B6C08
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B6C44 @ =gSprites
+ adds r2, r0, r1
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x26]
+ adds r0, 0x1
+ strh r0, [r2, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080B6C3C
+ movs r0, 0
+ strh r0, [r2, 0x26]
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+_080B6C3C:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B6C44: .4byte gSprites
+ thumb_func_end sub_80B6C08
+
+ thumb_func_start sub_80B6C48
+sub_80B6C48: @ 80B6C48
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _080B6CA0 @ =gUnknown_083CE2C4
+ lsls r4, r5, 1
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 4
+ mov r1, r8
+ ldrb r2, [r1, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r0
+ mov r0, r8
+ strb r1, [r0, 0x5]
+ ldr r0, _080B6CA4 @ =gUnknown_083CE2CA
+ adds r4, r0
+ ldrh r0, [r4]
+ bl GetSpriteTileStartByTag
+ adds r1, r6, 0
+ adds r1, 0x40
+ strh r0, [r1]
+ adds r6, 0x42
+ movs r1, 0x3F
+ ands r1, r5
+ ldrb r2, [r6]
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6CA0: .4byte gUnknown_083CE2C4
+_080B6CA4: .4byte gUnknown_083CE2CA
+ thumb_func_end sub_80B6C48
+
+ thumb_func_start sub_80B6CA8
+sub_80B6CA8: @ 80B6CA8
+ push {r4,r5,lr}
+ ldr r0, _080B6CF4 @ =gSpriteTemplate_83CE610
+ movs r1, 0xCC
+ movs r2, 0x6C
+ movs r3, 0
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080B6CF8 @ =gSprites
+ adds r0, r4
+ ldr r5, _080B6CFC @ =gUnknown_083CE578
+ adds r1, r5, 0
+ bl SetSubspriteTables
+ ldr r0, _080B6D00 @ =gSpriteTemplate_83CE628
+ movs r1, 0xCC
+ movs r2, 0x84
+ movs r3, 0
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r1, r5, 0
+ bl SetSubspriteTables
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6CF4: .4byte gSpriteTemplate_83CE610
+_080B6CF8: .4byte gSprites
+_080B6CFC: .4byte gUnknown_083CE578
+_080B6D00: .4byte gSpriteTemplate_83CE628
+ thumb_func_end sub_80B6CA8
+
+ thumb_func_start sub_80B6D04
+sub_80B6D04: @ 80B6D04
+ push {r4-r6,lr}
+ ldr r4, _080B6D8C @ =0x02000000
+ ldrh r1, [r4, 0x2]
+ subs r1, 0x1
+ lsls r1, 3
+ adds r1, 0x4
+ ldr r0, _080B6D90 @ =gSpriteTemplate_83CE658
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x28
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, _080B6D94 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldrh r0, [r4, 0x2]
+ lsls r0, 3
+ adds r0, 0x4
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r5, 0
+ ldr r0, [r4, 0x34]
+ ldrb r0, [r0, 0x1]
+ cmp r5, r0
+ bcs _080B6D86
+ adds r6, r3, 0
+_080B6D4A:
+ lsls r4, r1, 16
+ asrs r4, 16
+ ldr r0, _080B6D98 @ =gSpriteTemplate_83CE670
+ adds r1, r4, 0
+ movs r2, 0x2C
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ strh r5, [r0, 0x2E]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x8
+ lsls r4, 16
+ lsrs r1, r4, 16
+ ldr r0, _080B6D8C @ =0x02000000
+ ldr r0, [r0, 0x34]
+ ldrb r0, [r0, 0x1]
+ cmp r5, r0
+ bcc _080B6D4A
+_080B6D86:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6D8C: .4byte 0x02000000
+_080B6D90: .4byte gSpriteTemplate_83CE658
+_080B6D94: .4byte gSprites
+_080B6D98: .4byte gSpriteTemplate_83CE670
+ thumb_func_end sub_80B6D04
+
+ thumb_func_start sub_80B6D9C
+sub_80B6D9C: @ 80B6D9C
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r1, _080B6DE4 @ =gUnknown_083CE2D0
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080B6DC0
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080B6DCE
+_080B6DC0:
+ movs r0, 0x8
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ strh r0, [r4, 0x30]
+_080B6DCE:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x24]
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6DE4: .4byte gUnknown_083CE2D0
+ thumb_func_end sub_80B6D9C
+
+ thumb_func_start sub_80B6DE8
+sub_80B6DE8: @ 80B6DE8
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r1, _080B6E10 @ =gUnknown_083CE2D8
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ bl sub_80B6F44
+ lsls r0, 24
+ ldrh r1, [r4, 0x2E]
+ lsls r1, 24
+ cmp r0, r1
+ beq _080B6E14
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ strh r0, [r4, 0x30]
+ b _080B6E3A
+ .align 2, 0
+_080B6E10: .4byte gUnknown_083CE2D8
+_080B6E14:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080B6E3C
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r0, 0
+_080B6E3A:
+ strh r0, [r4, 0x32]
+_080B6E3C:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B6DE8
+
+ thumb_func_start sub_80B6E44
+sub_80B6E44: @ 80B6E44
+ push {lr}
+ ldr r1, _080B6E5C @ =gUnknown_083CE2E0
+ ldr r0, _080B6E60 @ =0x02000000
+ ldr r0, [r0, 0x34]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6E5C: .4byte gUnknown_083CE2E0
+_080B6E60: .4byte 0x02000000
+ thumb_func_end sub_80B6E44
+
+ thumb_func_start nullsub_40
+nullsub_40: @ 80B6E64
+ bx lr
+ thumb_func_end nullsub_40
+
+ thumb_func_start sub_80B6E68
+sub_80B6E68: @ 80B6E68
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080B6EB0 @ =0x02000000
+ ldrh r1, [r0, 0x3E]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_805983C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B6EB4 @ =SpriteCallbackDummy
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x38
+ movs r3, 0x18
+ bl AddPseudoFieldObject
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080B6EB8 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0x4
+ bl StartSpriteAnim
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6EB0: .4byte 0x02000000
+_080B6EB4: .4byte SpriteCallbackDummy
+_080B6EB8: .4byte gSprites
+ thumb_func_end sub_80B6E68
+
+ thumb_func_start sub_80B6EBC
+sub_80B6EBC: @ 80B6EBC
+ push {r4,lr}
+ ldr r0, _080B6EF0 @ =gSpriteTemplate_83CE688
+ movs r1, 0x34
+ movs r2, 0x18
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080B6EF4 @ =gSprites
+ adds r4, r0
+ ldr r1, _080B6EF8 @ =gUnknown_083CE580
+ adds r0, r4, 0
+ bl SetSubspriteTables
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xC
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6EF0: .4byte gSpriteTemplate_83CE688
+_080B6EF4: .4byte gSprites
+_080B6EF8: .4byte gUnknown_083CE580
+ thumb_func_end sub_80B6EBC
+
+ thumb_func_start sub_80B6EFC
+sub_80B6EFC: @ 80B6EFC
+ push {lr}
+ sub sp, 0x8
+ bl sub_809D51C
+ ldr r3, _080B6F38 @ =0x02000000
+ ldrh r0, [r3, 0x3E]
+ ldr r1, _080B6F3C @ =SpriteCallbackDummy
+ movs r2, 0
+ str r2, [sp]
+ ldr r2, [r3, 0x44]
+ str r2, [sp, 0x4]
+ movs r2, 0x34
+ movs r3, 0x18
+ bl sub_809D2FC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B6F40 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x5]
+ movs r2, 0xC
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B6F38: .4byte 0x02000000
+_080B6F3C: .4byte SpriteCallbackDummy
+_080B6F40: .4byte gSprites
+ thumb_func_end sub_80B6EFC
+
+ thumb_func_start sub_80B6F44
+sub_80B6F44: @ 80B6F44
+ push {r4,lr}
+ movs r2, 0
+ ldr r1, _080B6F64 @ =0x02000000
+ ldr r0, [r1, 0x34]
+ ldrb r0, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r2, r0
+ bcs _080B6F72
+ adds r1, 0x11
+ adds r3, r0, 0
+_080B6F58:
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080B6F68
+ adds r0, r2, 0
+ b _080B6F7C
+ .align 2, 0
+_080B6F64: .4byte 0x02000000
+_080B6F68:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r3
+ bcc _080B6F58
+_080B6F72:
+ ldr r0, [r4, 0x34]
+ ldrb r0, [r0, 0x1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+_080B6F7C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B6F44
+
+ thumb_func_start sub_80B6F84
+sub_80B6F84: @ 80B6F84
+ push {lr}
+ ldr r2, _080B6FA8 @ =0x02000000
+ ldr r0, [r2, 0x34]
+ ldrb r0, [r0, 0x1]
+ subs r0, 0x1
+ lsls r1, r0, 24
+ cmp r1, 0
+ ble _080B6FB4
+ adds r3, r2, 0
+ adds r3, 0x11
+_080B6F98:
+ asrs r2, r1, 24
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _080B6FAC
+ lsrs r0, r1, 24
+ b _080B6FB6
+ .align 2, 0
+_080B6FA8: .4byte 0x02000000
+_080B6FAC:
+ subs r0, r2, 0x1
+ lsls r1, r0, 24
+ cmp r1, 0
+ bgt _080B6F98
+_080B6FB4:
+ movs r0, 0
+_080B6FB6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B6F84
+
+ thumb_func_start sub_80B6FBC
+sub_80B6FBC: @ 80B6FBC
+ push {r4,lr}
+ bl sub_80B6F84
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080B7000 @ =0x02000000
+ adds r0, 0x11
+ adds r4, r0
+ movs r0, 0
+ strb r0, [r4]
+ bl sub_80B7960
+ movs r0, 0xFF
+ strb r0, [r4]
+ bl sub_80B6958
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080B6FEA
+ cmp r0, 0x2
+ bne _080B6FF4
+_080B6FEA:
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80B6460
+_080B6FF4:
+ movs r0, 0x17
+ bl PlaySE
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7000: .4byte 0x02000000
+ thumb_func_end sub_80B6FBC
+
+ thumb_func_start sub_80B7004
+sub_80B7004: @ 80B7004
+ push {r4,r5,lr}
+ sub sp, 0x4
+ mov r5, sp
+ adds r5, 0x2
+ mov r0, sp
+ adds r1, r5, 0
+ bl sub_80B6858
+ mov r4, sp
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bl sub_80B67EC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ mov r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl sub_80B7768
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ movs r4, 0x1
+ cmp r0, 0xFF
+ bne _080B7046
+ bl sub_80B7104
+ b _080B704E
+_080B7046:
+ cmp r0, 0xFE
+ bne _080B7054
+ bl sub_80B713C
+_080B704E:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ b _080B705A
+_080B7054:
+ adds r0, r1, 0
+ bl sub_80B7174
+_080B705A:
+ bl sub_80B7960
+ movs r0, 0x5
+ bl PlaySE
+ cmp r4, 0
+ beq _080B7084
+ bl sub_80B6F84
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B7080 @ =0x02000000
+ ldr r1, [r1, 0x34]
+ ldrb r1, [r1, 0x1]
+ subs r1, 0x1
+ cmp r0, r1
+ bne _080B7084
+ movs r0, 0x1
+ b _080B7086
+ .align 2, 0
+_080B7080: .4byte 0x02000000
+_080B7084:
+ movs r0, 0
+_080B7086:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B7004
+
+ thumb_func_start sub_80B7090
+sub_80B7090: @ 80B7090
+ push {r4-r7,lr}
+ bl sub_80B6F84
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, r5, 0
+ ldr r0, _080B70C8 @ =0x02000000
+ adds r0, 0x11
+ adds r0, r5, r0
+ ldrb r4, [r0]
+ adds r6, r4, 0
+ adds r0, r4, 0
+ bl sub_80B7198
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B70D6
+ adds r0, r4, 0
+ bl sub_80B7264
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B70CC
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80B7370
+ b _080B70F4
+ .align 2, 0
+_080B70C8: .4byte 0x02000000
+_080B70CC:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80B73CC
+ b _080B70F4
+_080B70D6:
+ adds r0, r4, 0
+ bl sub_80B71E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B70EC
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80B7474
+ b _080B70F4
+_080B70EC:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl sub_80B72A4
+_080B70F4:
+ bl sub_80B7960
+ movs r0, 0x5
+ bl PlaySE
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7090
+
+ thumb_func_start sub_80B7104
+sub_80B7104: @ 80B7104
+ push {r4,r5,lr}
+ bl sub_80B6F84
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080B7128 @ =0x02000000
+ adds r0, 0x11
+ adds r0, r5, r0
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ bl sub_80B720C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B712C
+ movs r0, 0
+ b _080B7136
+ .align 2, 0
+_080B7128: .4byte 0x02000000
+_080B712C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80B72A4
+ movs r0, 0x1
+_080B7136:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B7104
+
+ thumb_func_start sub_80B713C
+sub_80B713C: @ 80B713C
+ push {r4,r5,lr}
+ bl sub_80B6F84
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080B7160 @ =0x02000000
+ adds r0, 0x11
+ adds r0, r5, r0
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ bl sub_80B7264
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B7164
+ movs r0, 0
+ b _080B716E
+ .align 2, 0
+_080B7160: .4byte 0x02000000
+_080B7164:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80B7370
+ movs r0, 0x1
+_080B716E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B713C
+
+ thumb_func_start sub_80B7174
+sub_80B7174: @ 80B7174
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80B6F44
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B7194 @ =0x02000000
+ adds r1, 0x11
+ adds r0, r1
+ strb r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7194: .4byte 0x02000000
+ thumb_func_end sub_80B7174
+
+ thumb_func_start sub_80B7198
+sub_80B7198: @ 80B7198
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xC9
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0x13
+ bls _080B71DA
+ adds r0, r1, 0
+ adds r0, 0x79
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B71DA
+ adds r0, r1, 0
+ adds r0, 0x74
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B71DA
+ adds r0, r1, 0
+ adds r0, 0x6F
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B71DA
+ adds r0, r1, 0
+ adds r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B71DE
+_080B71DA:
+ movs r0, 0x1
+ b _080B71E0
+_080B71DE:
+ movs r0, 0
+_080B71E0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B7198
+
+ thumb_func_start sub_80B71E4
+sub_80B71E4: @ 80B71E4
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xB5
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B7202
+ adds r0, r1, 0
+ adds r0, 0x65
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B7206
+_080B7202:
+ movs r0, 0x1
+ b _080B7208
+_080B7206:
+ movs r0, 0
+_080B7208:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B71E4
+
+ thumb_func_start sub_80B720C
+sub_80B720C: @ 80B720C
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xFA
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0xE
+ bls _080B725A
+ adds r0, r1, 0
+ subs r0, 0x1A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B725A
+ adds r0, r1, 0
+ subs r0, 0x4B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B725A
+ adds r0, r1, 0
+ subs r0, 0x56
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xE
+ bls _080B725A
+ adds r0, r1, 0
+ subs r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B725A
+ adds r0, r1, 0
+ adds r0, 0x65
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B725E
+_080B725A:
+ movs r0, 0x1
+ b _080B7260
+_080B725E:
+ movs r0, 0
+_080B7260:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B720C
+
+ thumb_func_start sub_80B7264
+sub_80B7264: @ 80B7264
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xE6
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B729A
+ adds r0, r1, 0
+ subs r0, 0x46
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B729A
+ adds r0, r1, 0
+ subs r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B729A
+ adds r0, r1, 0
+ adds r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B729E
+_080B729A:
+ movs r0, 0x1
+ b _080B72A0
+_080B729E:
+ movs r0, 0
+_080B72A0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B7264
+
+ thumb_func_start sub_80B72A4
+sub_80B72A4: @ 80B72A4
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsrs r2, r0, 24
+ movs r3, 0xFA
+ lsls r3, 24
+ adds r0, r3
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B72C0
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B735A
+_080B72C0:
+ adds r0, r2, 0
+ subs r0, 0xB
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B72D2
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B735A
+_080B72D2:
+ adds r0, r2, 0
+ subs r0, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B72E4
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B735A
+_080B72E4:
+ adds r0, r2, 0
+ subs r0, 0x1A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B72F6
+ adds r0, r2, 0
+ adds r0, 0x2C
+ b _080B735A
+_080B72F6:
+ adds r0, r2, 0
+ subs r0, 0x4B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B7356
+ adds r0, r2, 0
+ subs r0, 0x56
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B7314
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B735A
+_080B7314:
+ adds r0, r2, 0
+ subs r0, 0x5B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B7326
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B735A
+_080B7326:
+ adds r0, r2, 0
+ subs r0, 0x60
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B7338
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B735A
+_080B7338:
+ adds r0, r2, 0
+ subs r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B734A
+ adds r0, r2, 0
+ adds r0, 0x2C
+ b _080B735A
+_080B734A:
+ adds r0, r2, 0
+ adds r0, 0x65
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B735E
+_080B7356:
+ adds r0, r2, 0
+ adds r0, 0xFB
+_080B735A:
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080B735E:
+ ldr r0, _080B736C @ =0x02000000
+ adds r0, 0x11
+ adds r0, r1, r0
+ strb r2, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B736C: .4byte 0x02000000
+ thumb_func_end sub_80B72A4
+
+ thumb_func_start sub_80B7370
+sub_80B7370: @ 80B7370
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsrs r2, r0, 24
+ movs r3, 0xE6
+ lsls r3, 24
+ adds r0, r3
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B738C
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B73B8
+_080B738C:
+ adds r0, r2, 0
+ subs r0, 0x46
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B73B6
+ adds r0, r2, 0
+ subs r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B73AA
+ adds r0, r2, 0
+ adds r0, 0x31
+ b _080B73B8
+_080B73AA:
+ adds r0, r2, 0
+ adds r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B73BC
+_080B73B6:
+ adds r0, r2, 0x5
+_080B73B8:
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080B73BC:
+ ldr r0, _080B73C8 @ =0x02000000
+ adds r0, 0x11
+ adds r0, r1, r0
+ strb r2, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B73C8: .4byte 0x02000000
+ thumb_func_end sub_80B7370
+
+ thumb_func_start sub_80B73CC
+sub_80B73CC: @ 80B73CC
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsrs r2, r0, 24
+ movs r3, 0xC9
+ lsls r3, 24
+ adds r0, r3
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B73E8
+ adds r0, r2, 0
+ adds r0, 0xCF
+ b _080B745E
+_080B73E8:
+ adds r0, r2, 0
+ subs r0, 0x3C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B73FA
+ adds r0, r2, 0
+ adds r0, 0xCF
+ b _080B745E
+_080B73FA:
+ adds r0, r2, 0
+ subs r0, 0x41
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B740C
+ adds r0, r2, 0
+ adds r0, 0xCF
+ b _080B745E
+_080B740C:
+ adds r0, r2, 0
+ subs r0, 0x46
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B745A
+ adds r0, r2, 0
+ adds r0, 0x79
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B742A
+ adds r0, r2, 0
+ adds r0, 0xCF
+ b _080B745E
+_080B742A:
+ adds r0, r2, 0
+ adds r0, 0x74
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B743C
+ adds r0, r2, 0
+ adds r0, 0xCF
+ b _080B745E
+_080B743C:
+ adds r0, r2, 0
+ adds r0, 0x6F
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B744E
+ adds r0, r2, 0
+ adds r0, 0xCF
+ b _080B745E
+_080B744E:
+ adds r0, r2, 0
+ adds r0, 0x6A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B7462
+_080B745A:
+ adds r0, r2, 0
+ adds r0, 0xD4
+_080B745E:
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080B7462:
+ ldr r0, _080B7470 @ =0x02000000
+ adds r0, 0x11
+ adds r0, r1, r0
+ strb r2, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7470: .4byte 0x02000000
+ thumb_func_end sub_80B73CC
+
+ thumb_func_start sub_80B7474
+sub_80B7474: @ 80B7474
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsrs r2, r0, 24
+ movs r3, 0xB5
+ lsls r3, 24
+ adds r0, r3
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080B7496
+ adds r0, r2, 0
+ adds r0, 0x65
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080B749E
+_080B7496:
+ adds r0, r2, 0
+ adds r0, 0xCF
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080B749E:
+ ldr r0, _080B74AC @ =0x02000000
+ adds r0, 0x11
+ adds r0, r1, r0
+ strb r2, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B74AC: .4byte 0x02000000
+ thumb_func_end sub_80B7474
+
+ thumb_func_start sub_80B74B0
+sub_80B74B0: @ 80B74B0
+ push {r4,lr}
+ movs r1, 0
+ ldr r3, _080B74E4 @ =0x02000000
+ ldr r0, [r3, 0x34]
+ ldrb r0, [r0, 0x1]
+ cmp r1, r0
+ bcs _080B74F6
+ adds r2, r3, 0
+ adds r4, r3, 0
+ adds r4, 0x11
+_080B74C4:
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B74E8
+ cmp r0, 0xFF
+ beq _080B74E8
+ ldr r0, [r2, 0x38]
+ ldr r1, [r2, 0x34]
+ ldrb r2, [r1, 0x1]
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r4, 0
+ bl StringCopyN
+ b _080B74F6
+ .align 2, 0
+_080B74E4: .4byte 0x02000000
+_080B74E8:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, [r3, 0x34]
+ ldrb r0, [r0, 0x1]
+ cmp r1, r0
+ bcc _080B74C4
+_080B74F6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B74B0
+
+ thumb_func_start sub_80B74FC
+sub_80B74FC: @ 80B74FC
+ push {r4,lr}
+ ldr r0, _080B7528 @ =gStringVar1
+ ldr r1, _080B752C @ =0x02000000
+ ldr r1, [r1, 0x38]
+ bl StringCopy
+ ldr r4, _080B7530 @ =gStringVar4
+ ldr r1, _080B7534 @ =gOtherText_SentToPC
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080B7538 @ =gWindowConfig_81E6E88
+ bl BasicInitMenuWindow
+ bl MenuDisplayMessageBox
+ adds r0, r4, 0
+ bl sub_8072044
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7528: .4byte gStringVar1
+_080B752C: .4byte 0x02000000
+_080B7530: .4byte gStringVar4
+_080B7534: .4byte gOtherText_SentToPC
+_080B7538: .4byte gWindowConfig_81E6E88
+ thumb_func_end sub_80B74FC
+
+ thumb_func_start sub_80B753C
+sub_80B753C: @ 80B753C
+ push {lr}
+ ldr r0, _080B7550 @ =gUnknown_083CE6A0
+ bl LoadSpriteSheets
+ ldr r0, _080B7554 @ =gUnknown_083CE708
+ bl LoadSpritePalettes
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7550: .4byte gUnknown_083CE6A0
+_080B7554: .4byte gUnknown_083CE708
+ thumb_func_end sub_80B753C
+
+ thumb_func_start sub_80B7558
+sub_80B7558: @ 80B7558
+ push {lr}
+ bl sub_80B7568
+ bl sub_80B75B0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7558
+
+ thumb_func_start sub_80B7568
+sub_80B7568: @ 80B7568
+ push {r4,lr}
+ ldr r4, _080B759C @ =gNamingScreenMenu_Gfx
+ ldr r3, _080B75A0 @ =gMenuMessageBoxContentTileOffset
+ ldrh r0, [r3]
+ lsls r0, 5
+ movs r1, 0xC0
+ lsls r1, 19
+ adds r0, r1
+ ldr r1, _080B75A4 @ =0x040000d4
+ str r4, [r1]
+ str r0, [r1, 0x4]
+ ldr r2, _080B75A8 @ =0x80000400
+ str r2, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldrh r0, [r3]
+ lsls r0, 5
+ ldr r3, _080B75AC @ =0x06008000
+ adds r0, r3
+ str r4, [r1]
+ str r0, [r1, 0x4]
+ str r2, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B759C: .4byte gNamingScreenMenu_Gfx
+_080B75A0: .4byte gMenuMessageBoxContentTileOffset
+_080B75A4: .4byte 0x040000d4
+_080B75A8: .4byte 0x80000400
+_080B75AC: .4byte 0x06008000
+ thumb_func_end sub_80B7568
+
+ thumb_func_start sub_80B75B0
+sub_80B75B0: @ 80B75B0
+ push {lr}
+ ldr r0, _080B75C0 @ =gNamingScreenPalettes
+ movs r1, 0
+ movs r2, 0x80
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B75C0: .4byte gNamingScreenPalettes
+ thumb_func_end sub_80B75B0
+
+ thumb_func_start sub_80B75C4
+sub_80B75C4: @ 80B75C4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r0, _080B7608 @ =gUnknown_083CE308
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r4, _080B760C @ =gUnknown_083CE2F0
+ ldr r5, _080B7610 @ =0x02000000
+ ldrb r1, [r5, 0xE]
+ lsls r1, 3
+ adds r1, r4
+ ldrb r0, [r5, 0xC]
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl _call_via_r1
+ ldrb r1, [r5, 0xE]
+ lsls r1, 3
+ adds r4, 0x4
+ adds r1, r4
+ ldrb r0, [r5, 0xD]
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl _call_via_r1
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7608: .4byte gUnknown_083CE308
+_080B760C: .4byte gUnknown_083CE2F0
+_080B7610: .4byte 0x02000000
+ thumb_func_end sub_80B75C4
+
+ thumb_func_start sub_80B7614
+sub_80B7614: @ 80B7614
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _080B7644 @ =gUnknown_083CE308
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r0, _080B7648 @ =gUnknown_083CE2F0
+ ldr r2, _080B764C @ =0x02000000
+ ldrb r1, [r2, 0xE]
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldrb r0, [r2, 0xD]
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl _call_via_r1
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7644: .4byte gUnknown_083CE308
+_080B7648: .4byte gUnknown_083CE2F0
+_080B764C: .4byte 0x02000000
+ thumb_func_end sub_80B7614
+
+ thumb_func_start sub_80B7650
+sub_80B7650: @ 80B7650
+ push {lr}
+ ldr r1, _080B765C @ =gUnknown_083CE748
+ bl sub_80B7698
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B765C: .4byte gUnknown_083CE748
+ thumb_func_end sub_80B7650
+
+ thumb_func_start sub_80B7660
+sub_80B7660: @ 80B7660
+ push {lr}
+ ldr r1, _080B766C @ =gUnknown_083CEBF8
+ bl sub_80B7698
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B766C: .4byte gUnknown_083CEBF8
+ thumb_func_end sub_80B7660
+
+ thumb_func_start sub_80B7670
+sub_80B7670: @ 80B7670
+ push {lr}
+ ldr r1, _080B767C @ =gUnknown_083CF0A8
+ bl sub_80B7698
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B767C: .4byte gUnknown_083CF0A8
+ thumb_func_end sub_80B7670
+
+ thumb_func_start sub_80B7680
+sub_80B7680: @ 80B7680
+ push {lr}
+ ldr r0, _080B7690 @ =0x0600f000
+ ldr r1, _080B7694 @ =gUnknown_08E86258
+ bl sub_80B76E0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7690: .4byte 0x0600f000
+_080B7694: .4byte gUnknown_08E86258
+ thumb_func_end sub_80B7680
+
+ thumb_func_start sub_80B7698
+sub_80B7698: @ 80B7698
+ push {r4-r7,lr}
+ mov r12, r0
+ adds r3, r1, 0
+ movs r4, 0
+ ldr r0, _080B76DC @ =gMenuMessageBoxContentTileOffset
+ ldrh r6, [r0]
+_080B76A4:
+ movs r1, 0
+ lsls r4, 16
+ asrs r5, r4, 11
+_080B76AA:
+ lsls r0, r1, 16
+ asrs r0, 16
+ adds r1, r5, r0
+ lsls r1, 1
+ add r1, r12
+ ldrh r7, [r3]
+ adds r2, r6, r7
+ strh r2, [r1]
+ adds r0, 0x1
+ lsls r0, 16
+ adds r3, 0x2
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _080B76AA
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r4, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080B76A4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B76DC: .4byte gMenuMessageBoxContentTileOffset
+ thumb_func_end sub_80B7698
+
+ thumb_func_start sub_80B76E0
+sub_80B76E0: @ 80B76E0
+ push {r4-r7,lr}
+ mov r12, r0
+ adds r3, r1, 0
+ movs r4, 0
+ ldr r0, _080B7728 @ =gMenuMessageBoxContentTileOffset
+ ldrh r6, [r0]
+_080B76EC:
+ movs r1, 0
+ lsls r5, r4, 16
+ asrs r4, r5, 11
+_080B76F2:
+ lsls r0, r1, 16
+ asrs r0, 16
+ adds r1, r4, r0
+ lsls r1, 1
+ add r1, r12
+ ldrh r7, [r3]
+ adds r2, r6, r7
+ strh r2, [r1]
+ adds r0, 0x1
+ lsls r0, 16
+ adds r3, 0x2
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _080B76F2
+ adds r3, 0x4
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r5, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080B76EC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7728: .4byte gMenuMessageBoxContentTileOffset
+ thumb_func_end sub_80B76E0
+
+ thumb_func_start sub_80B772C
+sub_80B772C: @ 80B772C
+ push {lr}
+ ldr r1, _080B773C @ =0x02000000
+ ldrb r0, [r1, 0xE]
+ ldrb r1, [r1, 0xC]
+ bl nullsub_20
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B773C: .4byte 0x02000000
+ thumb_func_end sub_80B772C
+
+ thumb_func_start sub_80B7740
+sub_80B7740: @ 80B7740
+ push {r4,lr}
+ ldr r4, _080B7760 @ =0x02000000
+ ldrb r0, [r4, 0xE]
+ adds r0, 0x1
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r4, 0xD]
+ bl nullsub_20
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7760: .4byte 0x02000000
+ thumb_func_end sub_80B7740
+
+ thumb_func_start nullsub_20
+nullsub_20: @ 80B7764
+ bx lr
+ thumb_func_end nullsub_20
+
+ thumb_func_start sub_80B7768
+sub_80B7768: @ 80B7768
+ ldr r3, _080B778C @ =gUnknown_083CE3A8
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, r1, 2
+ adds r2, r1
+ lsls r2, 2
+ adds r0, r2
+ ldr r1, _080B7790 @ =0x02000000
+ ldrb r2, [r1, 0xE]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ adds r0, r1
+ adds r0, r3
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080B778C: .4byte gUnknown_083CE3A8
+_080B7790: .4byte 0x02000000
+ thumb_func_end sub_80B7768
+
+ thumb_func_start sub_80B7794
+sub_80B7794: @ 80B7794
+ push {r4-r6,lr}
+ ldr r6, _080B77EC @ =gUnknown_083CE328
+ ldr r4, _080B77F0 @ =0x02000000
+ ldrb r0, [r4, 0xC]
+ lsls r0, 2
+ ldrb r1, [r4, 0xE]
+ lsls r1, 4
+ adds r0, r1
+ adds r0, r6
+ ldr r0, [r0]
+ bl BasicInitMenuWindow
+ ldr r5, _080B77F4 @ =gUnknown_083CE310
+ ldrb r0, [r4, 0xE]
+ lsls r0, 3
+ adds r0, r5
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldrb r1, [r4, 0xD]
+ lsls r1, 2
+ ldrb r0, [r4, 0xE]
+ lsls r0, 4
+ adds r1, r0
+ adds r6, 0x8
+ adds r1, r6
+ ldr r0, [r1]
+ bl BasicInitMenuWindow
+ ldrb r0, [r4, 0xE]
+ lsls r0, 3
+ adds r5, 0x4
+ adds r0, r5
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl sub_80B772C
+ bl sub_80B7740
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B77EC: .4byte gUnknown_083CE328
+_080B77F0: .4byte 0x02000000
+_080B77F4: .4byte gUnknown_083CE310
+ thumb_func_end sub_80B7794
+
+ thumb_func_start sub_80B77F8
+sub_80B77F8: @ 80B77F8
+ push {r4,lr}
+ ldr r2, _080B782C @ =gUnknown_083CE328
+ ldr r4, _080B7830 @ =0x02000000
+ ldrb r1, [r4, 0xD]
+ lsls r1, 2
+ ldrb r0, [r4, 0xE]
+ lsls r0, 4
+ adds r1, r0
+ adds r2, 0x8
+ adds r1, r2
+ ldr r0, [r1]
+ bl BasicInitMenuWindow
+ ldr r1, _080B7834 @ =gUnknown_083CE310
+ ldrb r0, [r4, 0xE]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl sub_80B7740
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B782C: .4byte gUnknown_083CE328
+_080B7830: .4byte 0x02000000
+_080B7834: .4byte gUnknown_083CE310
+ thumb_func_end sub_80B77F8
+
+ thumb_func_start sub_80B7838
+sub_80B7838: @ 80B7838
+ push {lr}
+ movs r0, 0x1
+ bl sub_80B785C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7838
+
+ thumb_func_start sub_80B7844
+sub_80B7844: @ 80B7844
+ push {lr}
+ movs r0, 0
+ bl sub_80B785C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7844
+
+ thumb_func_start sub_80B7850
+sub_80B7850: @ 80B7850
+ push {lr}
+ movs r0, 0x2
+ bl sub_80B785C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B7850
+
+ thumb_func_start sub_80B785C
+sub_80B785C: @ 80B785C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ movs r5, 0x9
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r6, r1, 4
+_080B786C:
+ lsls r4, r2, 16
+ asrs r4, 16
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _080B78A4 @ =gUnknown_083CE3A8
+ adds r0, r1
+ adds r0, r6, r0
+ lsls r2, r5, 24
+ lsrs r2, 24
+ movs r1, 0x3
+ bl MenuPrint
+ adds r4, 0x1
+ lsls r4, 16
+ lsls r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 10
+ adds r0, r1
+ lsrs r5, r0, 16
+ lsrs r2, r4, 16
+ asrs r4, 16
+ cmp r4, 0x3
+ ble _080B786C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B78A4: .4byte gUnknown_083CE3A8
+ thumb_func_end sub_80B785C
+
+ thumb_func_start sub_80B78A8
+sub_80B78A8: @ 80B78A8
+ push {r4,lr}
+ ldr r0, _080B78E4 @ =gWindowConfig_81E6F4C
+ bl BasicInitMenuWindow
+ ldr r1, _080B78E8 @ =gUnknown_083CE358
+ ldr r4, _080B78EC @ =0x02000000
+ ldrb r0, [r4, 0x1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r1, _080B78F0 @ =gUnknown_083CE368
+ ldr r0, [r4, 0x34]
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, [r4, 0x34]
+ ldr r0, [r0, 0x8]
+ movs r1, 0x9
+ movs r2, 0x2
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B78E4: .4byte gWindowConfig_81E6F4C
+_080B78E8: .4byte gUnknown_083CE358
+_080B78EC: .4byte 0x02000000
+_080B78F0: .4byte gUnknown_083CE368
+ thumb_func_end sub_80B78A8
+
+ thumb_func_start nullsub_61
+nullsub_61: @ 80B78F4
+ bx lr
+ thumb_func_end nullsub_61
+
+ thumb_func_start sub_80B78F8
+sub_80B78F8: @ 80B78F8
+ push {lr}
+ ldr r0, _080B7914 @ =gStringVar1
+ ldr r1, _080B7918 @ =0x02000000
+ movs r3, 0x3E
+ ldrsh r2, [r1, r3]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080B791C @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7914: .4byte gStringVar1
+_080B7918: .4byte 0x02000000
+_080B791C: .4byte gSpeciesNames
+ thumb_func_end sub_80B78F8
+
+ thumb_func_start nullsub_62
+nullsub_62: @ 80B7920
+ bx lr
+ thumb_func_end nullsub_62
+
+ thumb_func_start sub_80B7924
+sub_80B7924: @ 80B7924
+ push {lr}
+ sub sp, 0x4
+ ldr r1, _080B7958 @ =gUnknown_083CE370
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ ldr r0, _080B795C @ =0x02000000
+ adds r0, 0x40
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0xFF
+ beq _080B7952
+ cmp r0, 0xFE
+ bne _080B7948
+ mov r1, sp
+ movs r0, 0xB6
+ strb r0, [r1]
+_080B7948:
+ mov r0, sp
+ movs r1, 0x14
+ movs r2, 0x4
+ bl MenuPrint
+_080B7952:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7958: .4byte gUnknown_083CE370
+_080B795C: .4byte 0x02000000
+ thumb_func_end sub_80B7924
+
+ thumb_func_start sub_80B7960
+sub_80B7960: @ 80B7960
+ push {r4,lr}
+ ldr r0, _080B799C @ =gStringVar1
+ movs r2, 0xFC
+ strb r2, [r0]
+ movs r1, 0x14
+ strb r1, [r0, 0x1]
+ movs r1, 0x8
+ strb r1, [r0, 0x2]
+ strb r2, [r0, 0x3]
+ movs r1, 0x11
+ strb r1, [r0, 0x4]
+ movs r1, 0x1
+ strb r1, [r0, 0x5]
+ adds r0, 0x6
+ ldr r4, _080B79A0 @ =0x02000011
+ adds r1, r4, 0
+ bl StringCopy
+ ldr r0, _080B79A4 @ =gWindowConfig_81E6F4C
+ bl BasicInitMenuWindow
+ ldr r0, _080B799C @ =gStringVar1
+ subs r4, 0x11
+ ldrb r1, [r4, 0x2]
+ movs r2, 0x4
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B799C: .4byte gStringVar1
+_080B79A0: .4byte 0x02000011
+_080B79A4: .4byte gWindowConfig_81E6F4C
+ thumb_func_end sub_80B7960
+
+ .align 2, 0 @ Don't pad with nop.