summaryrefslogtreecommitdiff
path: root/asm/matuda_debug_menu.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/matuda_debug_menu.s')
-rw-r--r--asm/matuda_debug_menu.s2877
1 files changed, 2877 insertions, 0 deletions
diff --git a/asm/matuda_debug_menu.s b/asm/matuda_debug_menu.s
new file mode 100644
index 000000000..fe76a8eb6
--- /dev/null
+++ b/asm/matuda_debug_menu.s
@@ -0,0 +1,2877 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_80A9B28
+unref_sub_80A9B28: @ 80A9B28
+ push {lr}
+ sub sp, 0x8
+ bl MenuZeroFillScreen
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x11
+ movs r3, 0x12
+ bl MenuDrawTextWindow
+ ldr r3, _080A9B6C @ =gUnknown_083C91F0
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x7
+ bl PrintMenuItems
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x10
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x7
+ bl InitMenu
+ ldr r1, _080A9B70 @ =gCallback_03004AE8
+ ldr r0, _080A9B74 @ =sub_80A9B78
+ str r0, [r1]
+ movs r0, 0
+ add sp, 0x8
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9B6C: .4byte gUnknown_083C91F0
+_080A9B70: .4byte gCallback_03004AE8
+_080A9B74: .4byte sub_80A9B78
+ thumb_func_end unref_sub_80A9B28
+
+ thumb_func_start sub_80A9B78
+sub_80A9B78: @ 80A9B78
+ push {lr}
+ bl ProcessMenuInput
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ bne _080A9B8E
+ movs r0, 0
+ b _080A9BB6
+_080A9B8E:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080A9BB0
+ ldr r2, _080A9BA8 @ =gCallback_03004AE8
+ ldr r0, _080A9BAC @ =gUnknown_083C91F0
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ movs r0, 0
+ b _080A9BB6
+ .align 2, 0
+_080A9BA8: .4byte gCallback_03004AE8
+_080A9BAC: .4byte gUnknown_083C91F0
+_080A9BB0:
+ bl sub_8071C20
+ movs r0, 0x1
+_080A9BB6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A9B78
+
+ thumb_func_start sub_80A9BBC
+sub_80A9BBC: @ 80A9BBC
+ 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 r0, _080A9BE0 @ =sub_80A9BE4
+ movs r1, 0xFF
+ bl CreateTask
+ movs r0, 0x1
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9BE0: .4byte sub_80A9BE4
+ thumb_func_end sub_80A9BBC
+
+ thumb_func_start sub_80A9BE4
+sub_80A9BE4: @ 80A9BE4
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080A9C14 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080A9C10
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _080A9C18 @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080A9C0C
+ bl sub_80AF668
+_080A9C0C:
+ bl sub_80C2358
+_080A9C10:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9C14: .4byte gPaletteFade
+_080A9C18: .4byte gUnknown_0203869A
+ thumb_func_end sub_80A9BE4
+
+ thumb_func_start sub_80A9C1C
+sub_80A9C1C: @ 80A9C1C
+ push {lr}
+ ldr r1, _080A9C30 @ =gUnknown_0203869A
+ movs r0, 0
+ strb r0, [r1]
+ bl sub_80AA10C
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9C30: .4byte gUnknown_0203869A
+ thumb_func_end sub_80A9C1C
+
+ thumb_func_start sub_80A9C34
+sub_80A9C34: @ 80A9C34
+ push {lr}
+ bl sub_80AA10C
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A9C34
+
+ thumb_func_start sub_80A9C40
+sub_80A9C40: @ 80A9C40
+ push {r4,r5,lr}
+ ldr r5, _080A9C88 @ =sub_80A9E3C
+ adds r0, r5, 0
+ movs r1, 0
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r2, _080A9C8C @ =sub_80A9C98
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl SetTaskFuncWithFollowupFunc
+ ldr r0, _080A9C90 @ =sub_80A9E04
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A9C94 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x1C]
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r2
+ strh r0, [r1, 0x1C]
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A9C88: .4byte sub_80A9E3C
+_080A9C8C: .4byte sub_80A9C98
+_080A9C90: .4byte sub_80A9E04
+_080A9C94: .4byte gTasks
+ thumb_func_end sub_80A9C40
+
+ thumb_func_start sub_80A9C98
+sub_80A9C98: @ 80A9C98
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl sub_80AE098
+ ldr r1, _080A9CB8 @ =sub_80C8734
+ ldr r2, _080A9CBC @ =sub_80A9CC0
+ adds r0, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9CB8: .4byte sub_80C8734
+_080A9CBC: .4byte sub_80A9CC0
+ thumb_func_end sub_80A9C98
+
+ thumb_func_start sub_80A9CC0
+sub_80A9CC0: @ 80A9CC0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A9CD4 @ =sub_80C88AC
+ ldr r2, _080A9CD8 @ =sub_80A9CDC
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9CD4: .4byte sub_80C88AC
+_080A9CD8: .4byte sub_80A9CDC
+ thumb_func_end sub_80A9CC0
+
+ thumb_func_start sub_80A9CDC
+sub_80A9CDC: @ 80A9CDC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A9CF0 @ =sub_80C8E1C
+ ldr r2, _080A9CF4 @ =sub_80A9D58
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9CF0: .4byte sub_80C8E1C
+_080A9CF4: .4byte sub_80A9D58
+ thumb_func_end sub_80A9CDC
+
+ thumb_func_start sub_80A9CF8
+sub_80A9CF8: @ 80A9CF8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080A9D28 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080A9D20
+ ldr r0, _080A9D2C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x1C]
+ bl DestroyTask
+ adds r0, r4, 0
+ bl DestroyTask
+ bl sub_8071C20
+_080A9D20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9D28: .4byte gReceivedRemoteLinkPlayers
+_080A9D2C: .4byte gTasks
+ thumb_func_end sub_80A9CF8
+
+ thumb_func_start sub_80A9D30
+sub_80A9D30: @ 80A9D30
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_800832C
+ ldr r1, _080A9D50 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A9D54 @ =sub_80A9CF8
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9D50: .4byte gTasks
+_080A9D54: .4byte sub_80A9CF8
+ thumb_func_end sub_80A9D30
+
+ thumb_func_start sub_80A9D58
+sub_80A9D58: @ 80A9D58
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r3, 0
+ ldr r1, _080A9DA8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, 0x12
+ adds r2, r0, r1
+_080A9D6E:
+ mov r0, sp
+ adds r1, r0, r3
+ ldrh r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _080A9D6E
+ mov r0, sp
+ bl sub_80C4B34
+ ldr r1, _080A9DAC @ =gUnknown_0203869B
+ strb r0, [r1]
+ ldr r0, _080A9DB0 @ =gUnknown_0203869C
+ ldrb r0, [r0]
+ bl sub_80AE82C
+ movs r0, 0
+ bl sub_80B0F28
+ ldr r1, _080A9DB4 @ =sub_80C8EBC
+ ldr r2, _080A9DB8 @ =sub_80A9DBC
+ adds r0, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9DA8: .4byte gTasks
+_080A9DAC: .4byte gUnknown_0203869B
+_080A9DB0: .4byte gUnknown_0203869C
+_080A9DB4: .4byte sub_80C8EBC
+_080A9DB8: .4byte sub_80A9DBC
+ thumb_func_end sub_80A9D58
+
+ thumb_func_start sub_80A9DBC
+sub_80A9DBC: @ 80A9DBC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A9DD0 @ =sub_80C8F34
+ ldr r2, _080A9DD4 @ =sub_80A9DD8
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9DD0: .4byte sub_80C8F34
+_080A9DD4: .4byte sub_80A9DD8
+ thumb_func_end sub_80A9DBC
+
+ thumb_func_start sub_80A9DD8
+sub_80A9DD8: @ 80A9DD8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080A9E00 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x1C]
+ bl DestroyTask
+ adds r0, r4, 0
+ bl DestroyTask
+ bl sub_8071C20
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9E00: .4byte gTasks
+ thumb_func_end sub_80A9DD8
+
+ thumb_func_start sub_80A9E04
+sub_80A9E04: @ 80A9E04
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080A9E30 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x2
+ bne _080A9E2A
+ ldr r2, _080A9E34 @ =gTasks
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r1, [r0, 0x1C]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080A9E38 @ =sub_80A9D30
+ str r1, [r0]
+_080A9E2A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9E30: .4byte gMain
+_080A9E34: .4byte gTasks
+_080A9E38: .4byte sub_80A9D30
+ thumb_func_end sub_80A9E04
+
+ thumb_func_start sub_80A9E3C
+sub_80A9E3C: @ 80A9E3C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl OpenLink
+ movs r1, 0
+ ldr r3, _080A9E74 @ =gBlockRecvBuffer
+ movs r2, 0xFF
+_080A9E4C:
+ lsls r0, r1, 8
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _080A9E4C
+ ldr r1, _080A9E78 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ ldr r1, _080A9E7C @ =sub_80A9E80
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9E74: .4byte gBlockRecvBuffer
+_080A9E78: .4byte gTasks
+_080A9E7C: .4byte sub_80A9E80
+ thumb_func_end sub_80A9E3C
+
+ thumb_func_start sub_80A9E80
+sub_80A9E80: @ 80A9E80
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A9EA0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x9
+ bgt _080A9EA4
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x8]
+ b _080A9ECC
+ .align 2, 0
+_080A9EA0: .4byte gTasks
+_080A9EA4:
+ bl GetLinkPlayerCount_2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080A9ECC
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ bl IsLinkMaster
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A9EC8
+ ldr r0, _080A9EC4 @ =sub_80A9ED8
+ b _080A9ECA
+ .align 2, 0
+_080A9EC4: .4byte sub_80A9ED8
+_080A9EC8:
+ ldr r0, _080A9ED4 @ =sub_80A9F10
+_080A9ECA:
+ str r0, [r4]
+_080A9ECC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9ED4: .4byte sub_80A9F10
+ thumb_func_end sub_80A9E80
+
+ thumb_func_start sub_80A9ED8
+sub_80A9ED8: @ 80A9ED8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080A9F08 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x65
+ bne _080A9F02
+ bl sub_8007F4C
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, _080A9F0C @ =sub_80A9F10
+ str r0, [r4]
+_080A9F02:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9F08: .4byte gTasks
+_080A9F0C: .4byte sub_80A9F10
+ thumb_func_end sub_80A9ED8
+
+ thumb_func_start sub_80A9F10
+sub_80A9F10: @ 80A9F10
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080A9F44 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080A9F3E
+ bl GetMultiplayerId
+ ldr r1, _080A9F48 @ =gUnknown_02038695
+ strb r0, [r1]
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _080A9F3E
+ ldr r1, _080A9F4C @ =gUnknown_0203869A
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl SwitchTaskToFollowupFunc
+_080A9F3E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9F44: .4byte gReceivedRemoteLinkPlayers
+_080A9F48: .4byte gUnknown_02038695
+_080A9F4C: .4byte gUnknown_0203869A
+ thumb_func_end sub_80A9F10
+
+ thumb_func_start sub_80A9F50
+sub_80A9F50: @ 80A9F50
+ push {r4,lr}
+ movs r2, 0x80
+ lsls r2, 19
+ movs r0, 0x40
+ strh r0, [r2]
+ ldrh r0, [r2]
+ movs r3, 0x88
+ lsls r3, 5
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r4, _080A9FB8 @ =gWindowConfig_81E6C3C
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ ldr r0, _080A9FBC @ =gMenuWindow
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ ldr r0, _080A9FC0 @ =REG_MOSAIC
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x44
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r0, _080A9FC4 @ =gUnknown_030042A4
+ strh r1, [r0]
+ ldr r0, _080A9FC8 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r0, _080A9FCC @ =gUnknown_030042C0
+ strh r1, [r0]
+ ldr r0, _080A9FD0 @ =gUnknown_030041B4
+ strh r1, [r0]
+ ldr r0, _080A9FD4 @ =gUnknown_03004288
+ strh r1, [r0]
+ ldr r0, _080A9FD8 @ =gUnknown_03004280
+ strh r1, [r0]
+ ldr r0, _080A9FDC @ =gUnknown_030041B0
+ strh r1, [r0]
+ ldr r0, _080A9FE0 @ =gUnknown_030041B8
+ strh r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A9FB8: .4byte gWindowConfig_81E6C3C
+_080A9FBC: .4byte gMenuWindow
+_080A9FC0: .4byte REG_MOSAIC
+_080A9FC4: .4byte gUnknown_030042A4
+_080A9FC8: .4byte gUnknown_030042A0
+_080A9FCC: .4byte gUnknown_030042C0
+_080A9FD0: .4byte gUnknown_030041B4
+_080A9FD4: .4byte gUnknown_03004288
+_080A9FD8: .4byte gUnknown_03004280
+_080A9FDC: .4byte gUnknown_030041B0
+_080A9FE0: .4byte gUnknown_030041B8
+ thumb_func_end sub_80A9F50
+
+ thumb_func_start sub_80A9FE4
+sub_80A9FE4: @ 80A9FE4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ ldr r1, _080AA054 @ =gUnknown_083C9228
+ mov r0, sp
+ movs r2, 0x5
+ bl memcpy
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0xC0
+ lsls r3, 9
+ add r5, sp, 0x8
+ movs r6, 0
+ ldr r1, _080AA058 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ mov r12, r5
+ ldr r7, _080AA05C @ =0x85000400
+ movs r0, 0x85
+ lsls r0, 24
+ mov r8, r0
+_080AA012:
+ str r6, [sp, 0x8]
+ mov r0, r12
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080AA012
+ str r6, [sp, 0x8]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r8
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0xC0
+ lsls r0, 19
+ mov r1, sp
+ bl sub_80034D4
+ ldr r0, _080AA060 @ =gWindowConfig_81E6C3C
+ bl LoadFontDefaultPalette
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA054: .4byte gUnknown_083C9228
+_080AA058: .4byte 0x040000d4
+_080AA05C: .4byte 0x85000400
+_080AA060: .4byte gWindowConfig_81E6C3C
+ thumb_func_end sub_80A9FE4
+
+ thumb_func_start sub_80AA064
+sub_80AA064: @ 80AA064
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTasks
+ bl UpdatePaletteFade
+ ldr r0, _080AA088 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x4
+ bne _080AA084
+ ldr r0, _080AA08C @ =sub_805469C
+ bl SetMainCallback2
+_080AA084:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA088: .4byte gMain
+_080AA08C: .4byte sub_805469C
+ thumb_func_end sub_80AA064
+
+ thumb_func_start sub_80AA090
+sub_80AA090: @ 80AA090
+ push {lr}
+ ldr r1, _080AA0E8 @ =REG_BG0HOFS
+ ldr r0, _080AA0EC @ =gUnknown_030042A4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080AA0F0 @ =gUnknown_030042A0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080AA0F4 @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080AA0F8 @ =gUnknown_030041B4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080AA0FC @ =gUnknown_03004288
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080AA100 @ =gUnknown_03004280
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080AA104 @ =gUnknown_030041B0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080AA108 @ =gUnknown_030041B8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA0E8: .4byte REG_BG0HOFS
+_080AA0EC: .4byte gUnknown_030042A4
+_080AA0F0: .4byte gUnknown_030042A0
+_080AA0F4: .4byte gUnknown_030042C0
+_080AA0F8: .4byte gUnknown_030041B4
+_080AA0FC: .4byte gUnknown_03004288
+_080AA100: .4byte gUnknown_03004280
+_080AA104: .4byte gUnknown_030041B0
+_080AA108: .4byte gUnknown_030041B8
+ thumb_func_end sub_80AA090
+
+ thumb_func_start sub_80AA10C
+sub_80AA10C: @ 80AA10C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r4, _080AA238 @ =gPaletteFade
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r4, 0x8]
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80A9F50
+ bl dp12_8087EA4
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl ResetTasks
+ bl FreeAllSpritePalettes
+ bl sub_80A9FE4
+ ldr r0, _080AA23C @ =sub_80AA090
+ bl SetVBlankCallback
+ ldr r0, _080AA240 @ =sub_80AA064
+ bl SetMainCallback2
+ ldrb r1, [r4, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r4, 0x8]
+ ldr r4, _080AA244 @ =gUnknown_02038694
+ movs r0, 0
+ strb r0, [r4]
+ ldr r0, _080AA248 @ =gUnknown_02038570
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ bne _080AA16A
+ movs r0, 0
+ movs r1, 0
+ bl sub_80AE398
+_080AA16A:
+ ldrb r0, [r4]
+ bl sub_80AE098
+ movs r5, 0
+ ldr r6, _080AA24C @ =gUnknown_083C9276
+ adds r0, r6, 0x1
+ mov r8, r0
+ ldr r7, _080AA250 @ =gUnknown_083C9364
+_080AA17A:
+ lsls r2, r5, 2
+ adds r0, r2, r7
+ ldr r1, [r0]
+ adds r2, r5
+ lsls r2, 17
+ movs r0, 0xA8
+ lsls r0, 14
+ adds r2, r0
+ lsrs r2, 16
+ lsls r4, r5, 1
+ adds r0, r4, r6
+ ldrb r3, [r0]
+ add r4, r8
+ ldrb r0, [r4]
+ str r0, [sp]
+ ldr r0, _080AA254 @ =gMenuWindow
+ bl sub_8003460
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _080AA17A
+ ldr r1, _080AA258 @ =gUnknown_0203869C
+ ldr r4, _080AA25C @ =gUnknown_0203869E
+ movs r0, 0
+ strh r0, [r4]
+ strh r0, [r1]
+ movs r5, 0
+ movs r0, 0
+ bl sub_80AA5BC
+ ldrb r0, [r4]
+ bl sub_80AA5E8
+ ldr r4, _080AA254 @ =gMenuWindow
+ ldr r1, _080AA260 @ =gUnknown_083C9337
+ movs r0, 0x12
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0xD6
+ movs r3, 0x12
+ bl sub_8003460
+ ldr r1, _080AA264 @ =gUnknown_083C933B
+ movs r0, 0xC
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0xDC
+ movs r3, 0
+ bl sub_8003460
+ ldr r0, _080AA268 @ =gUnknown_083C92B4
+ bl LoadSpriteSheet
+ ldr r0, _080AA26C @ =gUnknown_083C92BC
+ bl LoadSpritePalette
+ movs r0, 0x3
+ bl sub_80AA280
+ movs r0, 0x3
+ bl sub_80AA658
+ movs r0, 0x3
+ movs r1, 0
+ bl sub_80AA614
+ ldr r0, _080AA270 @ =gSpriteTemplate_83C92CC
+ ldr r1, _080AA274 @ =gUnknown_083C9296
+ ldrb r1, [r1, 0x3]
+ ldr r2, _080AA278 @ =gUnknown_083C92A8
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080AA27C @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0x1
+ strh r0, [r1, 0x2E]
+ strh r0, [r1, 0x30]
+ movs r0, 0x3
+ strh r0, [r1, 0x32]
+ strh r5, [r1, 0x34]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA238: .4byte gPaletteFade
+_080AA23C: .4byte sub_80AA090
+_080AA240: .4byte sub_80AA064
+_080AA244: .4byte gUnknown_02038694
+_080AA248: .4byte gUnknown_02038570
+_080AA24C: .4byte gUnknown_083C9276
+_080AA250: .4byte gUnknown_083C9364
+_080AA254: .4byte gMenuWindow
+_080AA258: .4byte gUnknown_0203869C
+_080AA25C: .4byte gUnknown_0203869E
+_080AA260: .4byte gUnknown_083C9337
+_080AA264: .4byte gUnknown_083C933B
+_080AA268: .4byte gUnknown_083C92B4
+_080AA26C: .4byte gUnknown_083C92BC
+_080AA270: .4byte gSpriteTemplate_83C92CC
+_080AA274: .4byte gUnknown_083C9296
+_080AA278: .4byte gUnknown_083C92A8
+_080AA27C: .4byte gSprites
+ thumb_func_end sub_80AA10C
+
+ thumb_func_start sub_80AA280
+sub_80AA280: @ 80AA280
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080AA2E8 @ =gMenuWindow
+ movs r1, 0x1E
+ str r1, [sp]
+ movs r1, 0x3
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillWindowRect_DefaultPalette
+ ldr r4, _080AA2EC @ =0x02000000
+ ldr r1, _080AA2F0 @ =gUnknown_083C932C
+ adds r0, r4, 0
+ bl StringCopy
+ lsls r1, r7, 6
+ ldr r0, _080AA2F4 @ =gUnknown_0203857D
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringAppend
+ movs r5, 0
+ ldr r6, _080AA2F8 @ =gUnknown_083C926E
+ adds r0, r6, 0x1
+ mov r8, r0
+_080AA2BE:
+ cmp r7, r5
+ bne _080AA2FC
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 17
+ movs r0, 0x80
+ lsls r0, 10
+ adds r2, r0
+ lsrs r2, 16
+ lsls r1, r5, 1
+ adds r0, r1, r6
+ ldrb r3, [r0]
+ add r1, r8
+ ldrb r0, [r1]
+ str r0, [sp]
+ ldr r0, _080AA2E8 @ =gMenuWindow
+ ldr r1, _080AA2EC @ =0x02000000
+ bl sub_8003460
+ b _080AA322
+ .align 2, 0
+_080AA2E8: .4byte gMenuWindow
+_080AA2EC: .4byte 0x02000000
+_080AA2F0: .4byte gUnknown_083C932C
+_080AA2F4: .4byte gUnknown_0203857D
+_080AA2F8: .4byte gUnknown_083C926E
+_080AA2FC:
+ lsls r1, r5, 6
+ ldr r0, _080AA338 @ =gUnknown_0203857D
+ adds r1, r0
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 17
+ movs r0, 0x80
+ lsls r0, 10
+ adds r2, r0
+ lsrs r2, 16
+ lsls r4, r5, 1
+ adds r0, r4, r6
+ ldrb r3, [r0]
+ add r4, r8
+ ldrb r0, [r4]
+ str r0, [sp]
+ ldr r0, _080AA33C @ =gMenuWindow
+ bl sub_8003460
+_080AA322:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _080AA2BE
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA338: .4byte gUnknown_0203857D
+_080AA33C: .4byte gMenuWindow
+ thumb_func_end sub_80AA280
+
+ thumb_func_start sub_80AA340
+sub_80AA340: @ 80AA340
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ ldr r4, _080AA378 @ =0x02000000
+ ldr r1, _080AA37C @ =gUnknown_02038570
+ lsrs r0, 18
+ adds r0, r1
+ adds r0, 0x26
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080AA380 @ =gMenuWindow
+ ldr r1, _080AA384 @ =gUnknown_083C9282
+ ldrb r3, [r1]
+ ldrb r1, [r1, 0x1]
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x66
+ bl sub_8003460
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA378: .4byte 0x02000000
+_080AA37C: .4byte gUnknown_02038570
+_080AA380: .4byte gMenuWindow
+_080AA384: .4byte gUnknown_083C9282
+ thumb_func_end sub_80AA340
+
+ thumb_func_start sub_80AA388
+sub_80AA388: @ 80AA388
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ ldr r4, _080AA3C0 @ =0x02000000
+ ldr r1, _080AA3C4 @ =gUnknown_02038570
+ lsrs r0, 18
+ adds r0, r1
+ adds r0, 0x28
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080AA3C8 @ =gMenuWindow
+ ldr r1, _080AA3CC @ =gUnknown_083C9282
+ ldrb r3, [r1, 0x2]
+ ldrb r1, [r1, 0x3]
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x6C
+ bl sub_8003460
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA3C0: .4byte 0x02000000
+_080AA3C4: .4byte gUnknown_02038570
+_080AA3C8: .4byte gMenuWindow
+_080AA3CC: .4byte gUnknown_083C9282
+ thumb_func_end sub_80AA388
+
+ thumb_func_start sub_80AA3D0
+sub_80AA3D0: @ 80AA3D0
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ ldr r4, _080AA408 @ =0x02000000
+ ldr r1, _080AA40C @ =gUnknown_02038570
+ lsrs r0, 18
+ adds r0, r1
+ adds r0, 0x27
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080AA410 @ =gMenuWindow
+ ldr r1, _080AA414 @ =gUnknown_083C9282
+ ldrb r3, [r1, 0x4]
+ ldrb r1, [r1, 0x5]
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x72
+ bl sub_8003460
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA408: .4byte 0x02000000
+_080AA40C: .4byte gUnknown_02038570
+_080AA410: .4byte gMenuWindow
+_080AA414: .4byte gUnknown_083C9282
+ thumb_func_end sub_80AA3D0
+
+ thumb_func_start sub_80AA418
+sub_80AA418: @ 80AA418
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ ldr r4, _080AA450 @ =0x02000000
+ ldr r1, _080AA454 @ =gUnknown_02038570
+ lsrs r0, 18
+ adds r0, r1
+ adds r0, 0x29
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080AA458 @ =gMenuWindow
+ ldr r1, _080AA45C @ =gUnknown_083C9282
+ ldrb r3, [r1, 0x6]
+ ldrb r1, [r1, 0x7]
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x78
+ bl sub_8003460
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA450: .4byte 0x02000000
+_080AA454: .4byte gUnknown_02038570
+_080AA458: .4byte gMenuWindow
+_080AA45C: .4byte gUnknown_083C9282
+ thumb_func_end sub_80AA418
+
+ thumb_func_start sub_80AA460
+sub_80AA460: @ 80AA460
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ ldr r4, _080AA498 @ =0x02000000
+ ldr r1, _080AA49C @ =gUnknown_02038570
+ lsrs r0, 18
+ adds r0, r1
+ adds r0, 0x2A
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080AA4A0 @ =gMenuWindow
+ ldr r1, _080AA4A4 @ =gUnknown_083C9282
+ ldrb r3, [r1, 0x8]
+ ldrb r1, [r1, 0x9]
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x7E
+ bl sub_8003460
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA498: .4byte 0x02000000
+_080AA49C: .4byte gUnknown_02038570
+_080AA4A0: .4byte gMenuWindow
+_080AA4A4: .4byte gUnknown_083C9282
+ thumb_func_end sub_80AA460
+
+ thumb_func_start sub_80AA4A8
+sub_80AA4A8: @ 80AA4A8
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ ldr r4, _080AA4E0 @ =0x02000000
+ ldr r1, _080AA4E4 @ =gUnknown_02038570
+ lsrs r0, 18
+ adds r0, r1
+ adds r0, 0x2B
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080AA4E8 @ =gMenuWindow
+ ldr r1, _080AA4EC @ =gUnknown_083C9282
+ ldrb r3, [r1, 0xA]
+ ldrb r1, [r1, 0xB]
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x84
+ bl sub_8003460
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA4E0: .4byte 0x02000000
+_080AA4E4: .4byte gUnknown_02038570
+_080AA4E8: .4byte gMenuWindow
+_080AA4EC: .4byte gUnknown_083C9282
+ thumb_func_end sub_80AA4A8
+
+ thumb_func_start sub_80AA4F0
+sub_80AA4F0: @ 80AA4F0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r6, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r7, _080AA5A8 @ =gMenuWindow
+ ldr r0, _080AA5AC @ =gUnknown_083C928E
+ lsls r5, r6, 1
+ adds r1, r5, r0
+ ldrb r1, [r1]
+ mov r9, r1
+ adds r0, 0x1
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ mov r10, r0
+ movs r0, 0x7
+ add r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ str r0, [sp]
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ adds r0, r7, 0
+ movs r1, 0
+ mov r2, r9
+ mov r3, r10
+ bl FillWindowRect_DefaultPalette
+ ldr r0, _080AA5B0 @ =gUnknown_02038570
+ lsls r4, 6
+ adds r4, r5, r4
+ adds r0, 0x1E
+ adds r4, r0
+ ldrh r1, [r4]
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _080AA5B4 @ =gMoveNames
+ adds r1, r0
+ lsls r2, r6, 3
+ subs r2, r6
+ lsls r2, 17
+ movs r0, 0x8A
+ lsls r0, 16
+ adds r2, r0
+ lsrs r2, 16
+ mov r0, r10
+ str r0, [sp]
+ adds r0, r7, 0
+ mov r3, r9
+ bl sub_8003460
+ ldr r0, _080AA5B8 @ =gStringVar1
+ mov r9, r0
+ ldrh r1, [r4]
+ movs r2, 0x2
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r5, r6
+ lsls r5, 17
+ movs r0, 0xFA
+ lsls r0, 16
+ adds r5, r0
+ lsrs r5, 16
+ mov r0, r10
+ str r0, [sp]
+ adds r0, r7, 0
+ mov r1, r9
+ adds r2, r5, 0
+ mov r3, r8
+ bl sub_8003460
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA5A8: .4byte gMenuWindow
+_080AA5AC: .4byte gUnknown_083C928E
+_080AA5B0: .4byte gUnknown_02038570
+_080AA5B4: .4byte gMoveNames
+_080AA5B8: .4byte gStringVar1
+ thumb_func_end sub_80AA4F0
+
+ thumb_func_start sub_80AA5BC
+sub_80AA5BC: @ 80AA5BC
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ ldr r2, _080AA5E0 @ =gMenuWindow
+ ldr r1, _080AA5E4 @ =gUnknown_083C93B4
+ lsrs r0, 22
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x12
+ str r0, [sp]
+ adds r0, r2, 0
+ movs r2, 0xC2
+ movs r3, 0x3
+ bl sub_8003460
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA5E0: .4byte gMenuWindow
+_080AA5E4: .4byte gUnknown_083C93B4
+ thumb_func_end sub_80AA5BC
+
+ thumb_func_start sub_80AA5E8
+sub_80AA5E8: @ 80AA5E8
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ ldr r2, _080AA60C @ =gMenuWindow
+ ldr r1, _080AA610 @ =gUnknown_083C93F0
+ lsrs r0, 22
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x4
+ str r0, [sp]
+ adds r0, r2, 0
+ movs r2, 0xE8
+ movs r3, 0x3
+ bl sub_8003460
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA60C: .4byte gMenuWindow
+_080AA610: .4byte gUnknown_083C93F0
+ thumb_func_end sub_80AA5E8
+
+ thumb_func_start sub_80AA614
+sub_80AA614: @ 80AA614
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_80AE770
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r4, _080AA650 @ =0x02000000
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080AA654 @ =gMenuWindow
+ movs r1, 0xC
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0xE2
+ movs r3, 0x3
+ bl sub_8003460
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA650: .4byte 0x02000000
+_080AA654: .4byte gMenuWindow
+ thumb_func_end sub_80AA614
+
+ thumb_func_start sub_80AA658
+sub_80AA658: @ 80AA658
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_80AA340
+ adds r0, r5, 0
+ bl sub_80AA388
+ adds r0, r5, 0
+ bl sub_80AA3D0
+ adds r0, r5, 0
+ bl sub_80AA418
+ adds r0, r5, 0
+ bl sub_80AA460
+ adds r0, r5, 0
+ bl sub_80AA4A8
+ movs r4, 0
+_080AA684:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80AA4F0
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080AA684
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA658
+
+ thumb_func_start sub_80AA69C
+sub_80AA69C: @ 80AA69C
+ push {r4-r6,lr}
+ ldr r6, _080AA748 @ =gPlayerParty
+ ldr r5, _080AA74C @ =gUnknown_02038695
+ ldrb r2, [r5]
+ lsls r2, 6
+ ldr r4, _080AA750 @ =gUnknown_02038596
+ adds r2, r4
+ adds r0, r6, 0
+ movs r1, 0x16
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 6
+ adds r0, r4, 0x2
+ adds r2, r0
+ adds r0, r6, 0
+ movs r1, 0x18
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 6
+ adds r0, r4, 0x1
+ adds r2, r0
+ adds r0, r6, 0
+ movs r1, 0x17
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 6
+ adds r0, r4, 0x3
+ adds r2, r0
+ adds r0, r6, 0
+ movs r1, 0x21
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 6
+ adds r0, r4, 0x4
+ adds r2, r0
+ adds r0, r6, 0
+ movs r1, 0x2F
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 6
+ adds r0, r4, 0x5
+ adds r2, r0
+ adds r0, r6, 0
+ movs r1, 0x30
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 6
+ subs r4, 0x8
+ adds r2, r4
+ adds r0, r6, 0
+ movs r1, 0xD
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 6
+ adds r2, r4
+ adds r2, 0x2
+ adds r0, r6, 0
+ movs r1, 0xE
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 6
+ adds r2, r4
+ adds r2, 0x4
+ adds r0, r6, 0
+ movs r1, 0xF
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 6
+ adds r2, r4
+ adds r2, 0x6
+ adds r0, r6, 0
+ movs r1, 0x10
+ bl SetMonData
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA748: .4byte gPlayerParty
+_080AA74C: .4byte gUnknown_02038695
+_080AA750: .4byte gUnknown_02038596
+ thumb_func_end sub_80AA69C
+
+ thumb_func_start sub_80AA754
+sub_80AA754: @ 80AA754
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080AA774 @ =gMain
+ ldrh r1, [r0, 0x30]
+ cmp r1, 0x20
+ beq _080AA7A2
+ cmp r1, 0x20
+ bgt _080AA782
+ cmp r1, 0x2
+ beq _080AA7F8
+ cmp r1, 0x2
+ bgt _080AA778
+ cmp r1, 0x1
+ beq _080AA7D8
+ b _080AA870
+ .align 2, 0
+_080AA774: .4byte gMain
+_080AA778:
+ cmp r1, 0x8
+ beq _080AA868
+ cmp r1, 0x10
+ beq _080AA7A2
+ b _080AA870
+_080AA782:
+ cmp r1, 0x80
+ beq _080AA7C2
+ cmp r1, 0x80
+ bgt _080AA790
+ cmp r1, 0x40
+ beq _080AA7AC
+ b _080AA870
+_080AA790:
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r1, r0
+ beq _080AA814
+ movs r0, 0x80
+ lsls r0, 2
+ cmp r1, r0
+ beq _080AA834
+ b _080AA870
+_080AA7A2:
+ ldrh r0, [r4, 0x2E]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x2E]
+ b _080AA870
+_080AA7AC:
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080AA7BC
+ movs r0, 0x8
+ strh r0, [r4, 0x30]
+ b _080AA870
+_080AA7BC:
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ b _080AA870
+_080AA7C2:
+ ldrh r1, [r4, 0x30]
+ movs r3, 0x30
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x8
+ bne _080AA7D2
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ b _080AA870
+_080AA7D2:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ b _080AA870
+_080AA7D8:
+ ldr r2, _080AA7F4 @ =gUnknown_083C92E4
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ movs r3, 0x30
+ ldrsh r1, [r4, r3]
+ lsls r1, 3
+ adds r0, r1
+ adds r0, r2
+ ldr r2, [r0]
+ adds r0, r4, 0
+ movs r1, 0x1
+ b _080AA84E
+ .align 2, 0
+_080AA7F4: .4byte gUnknown_083C92E4
+_080AA7F8:
+ ldr r1, _080AA810 @ =gUnknown_083C92E4
+ movs r0, 0x2E
+ ldrsh r2, [r4, r0]
+ lsls r2, 2
+ movs r3, 0x30
+ ldrsh r0, [r4, r3]
+ lsls r0, 3
+ adds r2, r0
+ adds r2, r1
+ movs r1, 0x1
+ negs r1, r1
+ b _080AA84A
+ .align 2, 0
+_080AA810: .4byte gUnknown_083C92E4
+_080AA814:
+ ldr r2, _080AA830 @ =gUnknown_083C92E4
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ movs r3, 0x30
+ ldrsh r1, [r4, r3]
+ lsls r1, 3
+ adds r0, r1
+ adds r0, r2
+ ldr r2, [r0]
+ adds r0, r4, 0
+ movs r1, 0xA
+ b _080AA84E
+ .align 2, 0
+_080AA830: .4byte gUnknown_083C92E4
+_080AA834:
+ ldr r1, _080AA864 @ =gUnknown_083C92E4
+ movs r0, 0x2E
+ ldrsh r2, [r4, r0]
+ lsls r2, 2
+ movs r3, 0x30
+ ldrsh r0, [r4, r3]
+ lsls r0, 3
+ adds r2, r0
+ adds r2, r1
+ movs r1, 0xA
+ negs r1, r1
+_080AA84A:
+ ldr r2, [r2]
+ adds r0, r4, 0
+_080AA84E:
+ bl _call_via_r2
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x34]
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_80AA614
+ b _080AA870
+ .align 2, 0
+_080AA864: .4byte gUnknown_083C92E4
+_080AA868:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80AAD08
+_080AA870:
+ ldr r2, _080AA898 @ =gUnknown_083C9296
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r3, 0x30
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ adds r1, r0
+ adds r1, r2
+ ldrb r0, [r1]
+ strh r0, [r4, 0x20]
+ ldr r1, _080AA89C @ =gUnknown_083C92A8
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x22]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA898: .4byte gUnknown_083C9296
+_080AA89C: .4byte gUnknown_083C92A8
+ thumb_func_end sub_80AA754
+
+ thumb_func_start sub_80AA8A0
+sub_80AA8A0: @ 80AA8A0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r2, 24
+ lsrs r0, r2, 24
+ lsls r1, 24
+ asrs r1, 24
+ cmp r1, 0x1
+ bne _080AA8C0
+ strh r0, [r4, 0x32]
+ bl sub_80AA280
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA658
+_080AA8C0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA8A0
+
+ thumb_func_start sub_80AA8C8
+sub_80AA8C8: @ 80AA8C8
+ push {lr}
+ lsls r1, 24
+ asrs r1, 24
+ movs r2, 0
+ bl sub_80AA8A0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA8C8
+
+ thumb_func_start sub_80AA8D8
+sub_80AA8D8: @ 80AA8D8
+ push {lr}
+ lsls r1, 24
+ asrs r1, 24
+ movs r2, 0x1
+ bl sub_80AA8A0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA8D8
+
+ thumb_func_start sub_80AA8E8
+sub_80AA8E8: @ 80AA8E8
+ push {lr}
+ lsls r1, 24
+ asrs r1, 24
+ movs r2, 0x2
+ bl sub_80AA8A0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA8E8
+
+ thumb_func_start sub_80AA8F8
+sub_80AA8F8: @ 80AA8F8
+ push {lr}
+ lsls r1, 24
+ asrs r1, 24
+ movs r2, 0x3
+ bl sub_80AA8A0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA8F8
+
+ thumb_func_start sub_80AA908
+sub_80AA908: @ 80AA908
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ asrs r2, 24
+ adds r2, r1
+ lsls r2, 16
+ lsrs r0, r2, 16
+ asrs r2, 16
+ cmp r2, 0xFF
+ ble _080AA922
+ movs r0, 0xFF
+ b _080AA928
+_080AA922:
+ cmp r2, 0
+ bge _080AA928
+ movs r0, 0
+_080AA928:
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AA908
+
+ thumb_func_start sub_80AA930
+sub_80AA930: @ 80AA930
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080AA970 @ =gUnknown_02038570
+ movs r3, 0x32
+ ldrsh r2, [r4, r3]
+ lsls r2, 6
+ adds r2, r5
+ adds r2, 0x26
+ ldrb r3, [r2]
+ lsls r2, r1, 24
+ asrs r2, 24
+ adds r1, r3, 0
+ bl sub_80AA908
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsls r1, 6
+ adds r1, r5
+ adds r1, 0x26
+ strb r0, [r1]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA340
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA970: .4byte gUnknown_02038570
+ thumb_func_end sub_80AA930
+
+ thumb_func_start sub_80AA974
+sub_80AA974: @ 80AA974
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080AA9B4 @ =gUnknown_02038570
+ movs r3, 0x32
+ ldrsh r2, [r4, r3]
+ lsls r2, 6
+ adds r2, r5
+ adds r2, 0x28
+ ldrb r3, [r2]
+ lsls r2, r1, 24
+ asrs r2, 24
+ adds r1, r3, 0
+ bl sub_80AA908
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsls r1, 6
+ adds r1, r5
+ adds r1, 0x28
+ strb r0, [r1]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA388
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA9B4: .4byte gUnknown_02038570
+ thumb_func_end sub_80AA974
+
+ thumb_func_start sub_80AA9B8
+sub_80AA9B8: @ 80AA9B8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080AA9F8 @ =gUnknown_02038570
+ movs r3, 0x32
+ ldrsh r2, [r4, r3]
+ lsls r2, 6
+ adds r2, r5
+ adds r2, 0x27
+ ldrb r3, [r2]
+ lsls r2, r1, 24
+ asrs r2, 24
+ adds r1, r3, 0
+ bl sub_80AA908
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsls r1, 6
+ adds r1, r5
+ adds r1, 0x27
+ strb r0, [r1]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA3D0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AA9F8: .4byte gUnknown_02038570
+ thumb_func_end sub_80AA9B8
+
+ thumb_func_start sub_80AA9FC
+sub_80AA9FC: @ 80AA9FC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080AAA3C @ =gUnknown_02038570
+ movs r3, 0x32
+ ldrsh r2, [r4, r3]
+ lsls r2, 6
+ adds r2, r5
+ adds r2, 0x29
+ ldrb r3, [r2]
+ lsls r2, r1, 24
+ asrs r2, 24
+ adds r1, r3, 0
+ bl sub_80AA908
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsls r1, 6
+ adds r1, r5
+ adds r1, 0x29
+ strb r0, [r1]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA418
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAA3C: .4byte gUnknown_02038570
+ thumb_func_end sub_80AA9FC
+
+ thumb_func_start sub_80AAA40
+sub_80AAA40: @ 80AAA40
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080AAA80 @ =gUnknown_02038570
+ movs r3, 0x32
+ ldrsh r2, [r4, r3]
+ lsls r2, 6
+ adds r2, r5
+ adds r2, 0x2A
+ ldrb r3, [r2]
+ lsls r2, r1, 24
+ asrs r2, 24
+ adds r1, r3, 0
+ bl sub_80AA908
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsls r1, 6
+ adds r1, r5
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA460
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAA80: .4byte gUnknown_02038570
+ thumb_func_end sub_80AAA40
+
+ thumb_func_start sub_80AAA84
+sub_80AAA84: @ 80AAA84
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080AAAC4 @ =gUnknown_02038570
+ movs r3, 0x32
+ ldrsh r2, [r4, r3]
+ lsls r2, 6
+ adds r2, r5
+ adds r2, 0x2B
+ ldrb r3, [r2]
+ lsls r2, r1, 24
+ asrs r2, 24
+ adds r1, r3, 0
+ bl sub_80AA908
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsls r1, 6
+ adds r1, r5
+ adds r1, 0x2B
+ strb r0, [r1]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA4A8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAAC4: .4byte gUnknown_02038570
+ thumb_func_end sub_80AAA84
+
+ thumb_func_start sub_80AAAC8
+sub_80AAAC8: @ 80AAAC8
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 24
+ asrs r2, 24
+ adds r1, r2
+ lsls r1, 16
+ lsrs r0, r1, 16
+ asrs r1, 16
+ movs r2, 0xB1
+ lsls r2, 1
+ cmp r1, r2
+ ble _080AAAE6
+ movs r0, 0x1
+ b _080AAAEC
+_080AAAE6:
+ cmp r1, 0
+ bge _080AAAEC
+ adds r0, r2, 0
+_080AAAEC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AAAC8
+
+ thumb_func_start sub_80AAAF0
+sub_80AAAF0: @ 80AAAF0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080AAB2C @ =gUnknown_02038570
+ movs r3, 0x32
+ ldrsh r2, [r4, r3]
+ lsls r2, 6
+ adds r2, r5
+ ldrh r3, [r2, 0x1E]
+ lsls r2, r1, 24
+ asrs r2, 24
+ adds r1, r3, 0
+ bl sub_80AAAC8
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsls r1, 6
+ adds r1, r5
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_80AA4F0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAB2C: .4byte gUnknown_02038570
+ thumb_func_end sub_80AAAF0
+
+ thumb_func_start sub_80AAB30
+sub_80AAB30: @ 80AAB30
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080AAB6C @ =gUnknown_02038570
+ movs r3, 0x32
+ ldrsh r2, [r4, r3]
+ lsls r2, 6
+ adds r2, r5
+ ldrh r3, [r2, 0x20]
+ lsls r2, r1, 24
+ asrs r2, 24
+ adds r1, r3, 0
+ bl sub_80AAAC8
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsls r1, 6
+ adds r1, r5
+ strh r0, [r1, 0x20]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl sub_80AA4F0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAB6C: .4byte gUnknown_02038570
+ thumb_func_end sub_80AAB30
+
+ thumb_func_start sub_80AAB70
+sub_80AAB70: @ 80AAB70
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080AABAC @ =gUnknown_02038570
+ movs r3, 0x32
+ ldrsh r2, [r4, r3]
+ lsls r2, 6
+ adds r2, r5
+ ldrh r3, [r2, 0x22]
+ lsls r2, r1, 24
+ asrs r2, 24
+ adds r1, r3, 0
+ bl sub_80AAAC8
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsls r1, 6
+ adds r1, r5
+ strh r0, [r1, 0x22]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl sub_80AA4F0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AABAC: .4byte gUnknown_02038570
+ thumb_func_end sub_80AAB70
+
+ thumb_func_start sub_80AABB0
+sub_80AABB0: @ 80AABB0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080AABEC @ =gUnknown_02038570
+ movs r3, 0x32
+ ldrsh r2, [r4, r3]
+ lsls r2, 6
+ adds r2, r5
+ ldrh r3, [r2, 0x24]
+ lsls r2, r1, 24
+ asrs r2, 24
+ adds r1, r3, 0
+ bl sub_80AAAC8
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsls r1, 6
+ adds r1, r5
+ strh r0, [r1, 0x24]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl sub_80AA4F0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AABEC: .4byte gUnknown_02038570
+ thumb_func_end sub_80AABB0
+
+ thumb_func_start sub_80AABF0
+sub_80AABF0: @ 80AABF0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ movs r0, 0xFF
+ cmp r1, 0
+ ble _080AABFE
+ movs r0, 0x1
+_080AABFE:
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r1, [r5, 0x34]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bge _080AAC14
+ movs r4, 0
+ b _080AAC1A
+_080AAC14:
+ cmp r0, 0x4
+ ble _080AAC1A
+ movs r4, 0x4
+_080AAC1A:
+ lsls r4, 24
+ lsrs r0, r4, 24
+ bl sub_80AA5BC
+ asrs r4, 24
+ strh r4, [r5, 0x34]
+ ldr r0, _080AAC54 @ =gUnknown_0203869C
+ strh r4, [r0]
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080AAC58 @ =gUnknown_0203869E
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80AE398
+ ldrh r0, [r5, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA280
+ ldrh r0, [r5, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA658
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAC54: .4byte gUnknown_0203869C
+_080AAC58: .4byte gUnknown_0203869E
+ thumb_func_end sub_80AABF0
+
+ thumb_func_start sub_80AAC5C
+sub_80AAC5C: @ 80AAC5C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ cmp r1, 0
+ ble _080AAC78
+ ldr r1, _080AAC74 @ =gUnknown_0203869E
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ adds r4, r1, 0
+ b _080AAC86
+ .align 2, 0
+_080AAC74: .4byte gUnknown_0203869E
+_080AAC78:
+ ldr r0, _080AACBC @ =gUnknown_0203869E
+ ldrh r2, [r0]
+ adds r4, r0, 0
+ cmp r2, 0
+ beq _080AAC86
+ subs r0, r2, 0x1
+ strh r0, [r4]
+_080AAC86:
+ adds r1, r4, 0
+ ldrh r0, [r1]
+ cmp r0, 0x3
+ bls _080AAC92
+ movs r0, 0x3
+ strh r0, [r1]
+_080AAC92:
+ ldrb r0, [r4]
+ bl sub_80AA5E8
+ ldr r0, _080AACC0 @ =gUnknown_0203869C
+ ldrb r0, [r0]
+ ldrb r1, [r4]
+ bl sub_80AE398
+ ldrh r0, [r5, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA280
+ ldrh r0, [r5, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AA658
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AACBC: .4byte gUnknown_0203869E
+_080AACC0: .4byte gUnknown_0203869C
+ thumb_func_end sub_80AAC5C
+
+ thumb_func_start sub_80AACC4
+sub_80AACC4: @ 80AACC4
+ push {lr}
+ bl UpdatePaletteFade
+ ldr r0, _080AACF8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080AACF4
+ bl sub_80AA69C
+ ldr r0, _080AACFC @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080AACEE
+ ldr r0, _080AAD00 @ =0x02000000
+ ldrb r0, [r0]
+ bl sub_80AE82C
+_080AACEE:
+ ldr r0, _080AAD04 @ =sub_80AB47C
+ bl SetMainCallback2
+_080AACF4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AACF8: .4byte gPaletteFade
+_080AACFC: .4byte gUnknown_0203869A
+_080AAD00: .4byte 0x02000000
+_080AAD04: .4byte sub_80AB47C
+ thumb_func_end sub_80AACC4
+
+ thumb_func_start sub_80AAD08
+sub_80AAD08: @ 80AAD08
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r1, 24
+ asrs r1, 24
+ cmp r1, 0x1
+ bne _080AAD32
+ ldr r1, _080AAD3C @ =0x02000000
+ ldrh r0, [r0, 0x34]
+ movs r4, 0
+ strb r0, [r1]
+ ldr r0, _080AAD40 @ =sub_80AACC4
+ bl SetMainCallback2
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_080AAD32:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAD3C: .4byte 0x02000000
+_080AAD40: .4byte sub_80AACC4
+ thumb_func_end sub_80AAD08
+
+ thumb_func_start sub_80AAD44
+sub_80AAD44: @ 80AAD44
+ push {r4,r5,lr}
+ lsls r1, 24
+ asrs r1, 24
+ cmp r1, 0x1
+ bne _080AAD72
+ bl sub_80AA69C
+ movs r4, 0
+ ldr r5, _080AAD78 @ =gUnknown_02038670
+_080AAD56:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ ldr r1, _080AAD7C @ =gUnknown_0203869C
+ ldrb r1, [r1]
+ bl sub_80AE770
+ strh r0, [r5]
+ adds r5, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080AAD56
+ ldr r0, _080AAD80 @ =sub_805469C
+ bl SetMainCallback2
+_080AAD72:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAD78: .4byte gUnknown_02038670
+_080AAD7C: .4byte gUnknown_0203869C
+_080AAD80: .4byte sub_805469C
+ thumb_func_end sub_80AAD44
+
+ thumb_func_start sub_80AAD84
+sub_80AAD84: @ 80AAD84
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x64
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x48]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x4C]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r10, r3
+ mov r5, r10
+ adds r5, 0x1
+ lsls r1, r5, 8
+ ldr r0, _080AAEC4 @ =0x06018000
+ subs r1, r0, r1
+ movs r0, 0
+ str r0, [sp, 0x44]
+ ldr r4, _080AAEC8 @ =0x040000d4
+ add r0, sp, 0x44
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ ldr r0, _080AAECC @ =0x85000040
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ mov r0, r9
+ bl StringLength
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x8
+ bls _080AADD0
+ movs r7, 0x8
+_080AADD0:
+ movs r6, 0
+ mov r8, r5
+ mov r1, r10
+ lsls r1, 1
+ str r1, [sp, 0x58]
+ ldr r2, [sp, 0x48]
+ adds r2, 0x20
+ str r2, [sp, 0x5C]
+ cmp r6, r7
+ bge _080AAE1E
+ add r5, sp, 0x40
+ add r0, sp, 0x20
+ mov r10, r0
+ ldr r2, _080AAEC4 @ =0x06018000
+_080AADEC:
+ mov r1, r9
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ strb r0, [r5]
+ movs r0, 0xFF
+ strb r0, [r5, 0x1]
+ mov r0, sp
+ adds r1, r5, 0
+ str r2, [sp, 0x60]
+ bl sub_80034D4
+ mov r1, r8
+ lsls r0, r1, 8
+ ldr r2, [sp, 0x60]
+ subs r0, r2, r0
+ mov r1, r10
+ str r1, [r4]
+ str r0, [r4, 0x4]
+ ldr r0, _080AAED0 @ =0x84000008
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ adds r2, 0x20
+ adds r6, 0x1
+ cmp r6, r7
+ blt _080AADEC
+_080AAE1E:
+ movs r1, 0x7C
+ ldr r2, [sp, 0x58]
+ subs r1, r2
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r0, _080AAED4 @ =gMain
+ mov r9, r0
+ lsls r3, r7, 3
+ add r3, r9
+ ldr r0, _080AAED8 @ =gUnknown_083C9400
+ ldr r1, [r0]
+ ldr r2, [r0, 0x4]
+ str r1, [sp, 0x50]
+ str r2, [sp, 0x54]
+ str r1, [r3, 0x3C]
+ str r2, [r3, 0x40]
+ mov r2, r8
+ lsls r0, r2, 3
+ movs r1, 0x80
+ lsls r1, 3
+ adds r2, r1, 0
+ subs r2, r0
+ adds r6, r3, 0
+ adds r6, 0x40
+ ldr r0, _080AAEDC @ =0x000003ff
+ mov r8, r0
+ mov r1, r8
+ ands r2, r1
+ ldrh r5, [r6]
+ ldr r4, _080AAEE0 @ =0xfffffc00
+ adds r0, r4, 0
+ ands r0, r5
+ orrs r0, r2
+ strh r0, [r6]
+ ldrh r5, [r3, 0x3E]
+ ldr r2, _080AAEE4 @ =0xfffffe00
+ adds r0, r2, 0
+ ands r0, r5
+ ldr r1, [sp, 0x48]
+ orrs r0, r1
+ strh r0, [r3, 0x3E]
+ adds r3, 0x3C
+ add r0, sp, 0x4C
+ ldrb r0, [r0]
+ strb r0, [r3]
+ adds r1, r7, 0x1
+ lsls r1, 3
+ mov r0, r9
+ adds r7, r1, r0
+ ldr r0, [sp, 0x50]
+ ldr r1, [sp, 0x54]
+ str r0, [r7, 0x3C]
+ str r1, [r7, 0x40]
+ ldrh r0, [r6]
+ lsls r0, 22
+ lsrs r0, 22
+ adds r0, 0x4
+ adds r5, r7, 0
+ adds r5, 0x40
+ mov r1, r8
+ ands r0, r1
+ ldrh r3, [r5]
+ ands r4, r3
+ orrs r4, r0
+ strh r4, [r5]
+ ldrh r0, [r7, 0x3E]
+ ands r2, r0
+ ldr r0, [sp, 0x5C]
+ orrs r2, r0
+ strh r2, [r7, 0x3E]
+ adds r1, r7, 0
+ adds r1, 0x3C
+ add r2, sp, 0x4C
+ ldrb r2, [r2]
+ strb r2, [r1]
+ add sp, 0x64
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAEC4: .4byte 0x06018000
+_080AAEC8: .4byte 0x040000d4
+_080AAECC: .4byte 0x85000040
+_080AAED0: .4byte 0x84000008
+_080AAED4: .4byte gMain
+_080AAED8: .4byte gUnknown_083C9400
+_080AAEDC: .4byte 0x000003ff
+_080AAEE0: .4byte 0xfffffc00
+_080AAEE4: .4byte 0xfffffe00
+ thumb_func_end sub_80AAD84
+
+ thumb_func_start unref_sub_80AAEE8
+unref_sub_80AAEE8: @ 80AAEE8
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 24
+ lsrs r5, r3, 24
+ movs r0, 0
+ cmp r4, 0
+ bge _080AAF08
+ mov r1, sp
+ movs r0, 0xAE
+ strb r0, [r1]
+ movs r0, 0x1
+_080AAF08:
+ add r0, sp
+ adds r1, r4, 0
+ cmp r1, 0
+ bge _080AAF12
+ negs r1, r1
+_080AAF12:
+ movs r2, 0
+ movs r3, 0x8
+ bl ConvertIntToDecimalStringN
+ mov r0, sp
+ adds r1, r7, 0
+ adds r2, r6, 0
+ adds r3, r5, 0
+ bl sub_80AAD84
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_80AAEE8
+
+ thumb_func_start sub_80AAF30
+sub_80AAF30: @ 80AAF30
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r1, _080AAFC0 @ =gUnknown_0203856C
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _080AAFC4 @ =gUnknown_02038695
+ movs r0, 0x3
+ strb r0, [r1]
+ movs r0, 0
+ bl sub_80AE098
+ movs r4, 0x3
+ movs r5, 0x1
+ negs r5, r5
+ ldr r3, _080AAFC8 @ =gUnknown_02038690
+ movs r2, 0x3
+_080AAF56:
+ adds r1, r4, r3
+ subs r0, r2, r4
+ strb r0, [r1]
+ subs r4, 0x1
+ cmp r4, r5
+ bgt _080AAF56
+ movs r4, 0
+ movs r6, 0
+ ldr r7, _080AAFCC @ =gUnknown_02038670
+ ldr r5, _080AAFD0 @ =gUnknown_02038570
+ mov r9, r5
+_080AAF6C:
+ lsls r1, r4, 1
+ strh r6, [r7]
+ ldr r0, _080AAFD4 @ =gUnknown_02038680
+ mov r8, r0
+ adds r0, r1, r0
+ strh r6, [r0]
+ ldr r3, _080AAFD8 @ =gUnknown_02038678
+ adds r1, r3
+ strh r6, [r1]
+ adds r0, r5, 0
+ mov r1, r9
+ adds r1, 0xC0
+ movs r2, 0x40
+ str r3, [sp]
+ bl memcpy
+ adds r7, 0x2
+ adds r5, 0x40
+ adds r4, 0x1
+ ldr r3, [sp]
+ cmp r4, 0x2
+ ble _080AAF6C
+ ldr r0, _080AAFCC @ =gUnknown_02038670
+ movs r1, 0x96
+ lsls r1, 1
+ strh r1, [r0, 0x6]
+ movs r0, 0xC8
+ lsls r0, 1
+ mov r1, r8
+ strh r0, [r1, 0x6]
+ strh r0, [r3, 0x6]
+ movs r0, 0xFE
+ bl sub_80B2A7C
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AAFC0: .4byte gUnknown_0203856C
+_080AAFC4: .4byte gUnknown_02038695
+_080AAFC8: .4byte gUnknown_02038690
+_080AAFCC: .4byte gUnknown_02038670
+_080AAFD0: .4byte gUnknown_02038570
+_080AAFD4: .4byte gUnknown_02038680
+_080AAFD8: .4byte gUnknown_02038678
+ thumb_func_end sub_80AAF30
+
+ thumb_func_start sub_80AAFDC
+sub_80AAFDC: @ 80AAFDC
+ push {lr}
+ bl sub_80AAF30
+ bl sub_8071C20
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AAFDC
+
+ thumb_func_start sub_80AAFEC
+sub_80AAFEC: @ 80AAFEC
+ push {r4,lr}
+ ldr r1, _080AB01C @ =gUnknown_0203856C
+ movs r0, 0
+ strb r0, [r1]
+ movs r4, 0
+ ldr r3, _080AB020 @ =gUnknown_02038678
+ ldr r2, _080AB024 @ =gUnknown_02038680
+ ldr r1, _080AB028 @ =gUnknown_02038670
+ movs r0, 0x3
+_080AAFFE:
+ strh r4, [r1]
+ strh r4, [r2]
+ strh r4, [r3]
+ adds r3, 0x2
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r0, 0x1
+ cmp r0, 0
+ bge _080AAFFE
+ bl sub_8071C20
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AB01C: .4byte gUnknown_0203856C
+_080AB020: .4byte gUnknown_02038678
+_080AB024: .4byte gUnknown_02038680
+_080AB028: .4byte gUnknown_02038670
+ thumb_func_end sub_80AAFEC
+
+ thumb_func_start sub_80AB02C
+sub_80AB02C: @ 80AB02C
+ push {r4,r5,lr}
+ ldr r1, _080AB078 @ =gUnknown_02038695
+ movs r0, 0x3
+ strb r0, [r1]
+ movs r0, 0
+ bl sub_80AE098
+ movs r2, 0x3
+ movs r5, 0x1
+ negs r5, r5
+ ldr r4, _080AB07C @ =gUnknown_02038690
+ movs r3, 0x3
+_080AB044:
+ adds r1, r2, r4
+ subs r0, r3, r2
+ strb r0, [r1]
+ subs r2, 0x1
+ cmp r2, r5
+ bgt _080AB044
+ ldr r1, _080AB080 @ =gUnknown_0203869C
+ movs r0, 0
+ strh r0, [r1]
+ adds r4, r1, 0
+_080AB058:
+ movs r0, 0xFF
+ bl sub_80B2A7C
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bls _080AB058
+ bl sub_8071C20
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AB078: .4byte gUnknown_02038695
+_080AB07C: .4byte gUnknown_02038690
+_080AB080: .4byte gUnknown_0203869C
+ thumb_func_end sub_80AB02C
+
+ thumb_func_start unref_sub_80AB084
+unref_sub_80AB084: @ 80AB084
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ mov r8, r0
+ ldr r0, _080AB160 @ =REG_BG0HOFS
+ movs r1, 0
+ 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]
+ adds r0, 0x22
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ movs r2, 0x80
+ lsls r2, 19
+ movs r3, 0xFA
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r2]
+ ldr r3, _080AB164 @ =0x04000208
+ ldrh r2, [r3]
+ strh r1, [r3]
+ ldr r4, _080AB168 @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r1, _080AB16C @ =REG_DISPSTAT
+ movs r0, 0x8
+ strh r0, [r1]
+ bl ResetTasks
+ bl ResetSpriteData
+ ldr r0, _080AB170 @ =sub_80AB184
+ bl SetMainCallback2
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0xC0
+ lsls r3, 9
+ movs r5, 0
+ ldr r1, _080AB174 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ ldr r6, _080AB178 @ =0x85000400
+ movs r7, 0x85
+ lsls r7, 24
+_080AB108:
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080AB108
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r4, _080AB17C @ =gWindowConfig_81E6FD8
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ ldr r5, _080AB180 @ =gUnknown_03004210
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ adds r0, r4, 0
+ bl LoadFontDefaultPalette
+ movs r0, 0x7
+ str r0, [sp]
+ adds r0, r5, 0
+ mov r1, r8
+ movs r2, 0x1
+ movs r3, 0x9
+ bl sub_8003460
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB160: .4byte REG_BG0HOFS
+_080AB164: .4byte 0x04000208
+_080AB168: .4byte 0x04000200
+_080AB16C: .4byte REG_DISPSTAT
+_080AB170: .4byte sub_80AB184
+_080AB174: .4byte 0x040000d4
+_080AB178: .4byte 0x85000400
+_080AB17C: .4byte gWindowConfig_81E6FD8
+_080AB180: .4byte gUnknown_03004210
+ thumb_func_end unref_sub_80AB084
+
+ thumb_func_start sub_80AB184
+sub_80AB184: @ 80AB184
+ ldr r0, _080AB1A8 @ =REG_BG0HOFS
+ movs r1, 0
+ 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]
+ bx lr
+ .align 2, 0
+_080AB1A8: .4byte REG_BG0HOFS
+ thumb_func_end sub_80AB184
+
+ .align 2, 0 @ Don't pad with nop.