summaryrefslogtreecommitdiff
path: root/asm/contest.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/contest.s')
-rw-r--r--asm/contest.s15732
1 files changed, 15732 insertions, 0 deletions
diff --git a/asm/contest.s b/asm/contest.s
new file mode 100644
index 000000000..447f5cf1d
--- /dev/null
+++ b/asm/contest.s
@@ -0,0 +1,15732 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start nullsub_89
+nullsub_89: @ 80AB1AC
+ bx lr
+ thumb_func_end nullsub_89
+
+ thumb_func_start sub_80AB1B0
+sub_80AB1B0: @ 80AB1B0
+ ldr r1, _080AB1B8 @ =gUnknown_0203869A
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080AB1B8: .4byte gUnknown_0203869A
+ thumb_func_end sub_80AB1B0
+
+ thumb_func_start sub_80AB1BC
+sub_80AB1BC: @ 80AB1BC
+ push {r4-r6,lr}
+ movs r6, 0x80
+ lsls r6, 19
+ movs r0, 0x40
+ strh r0, [r6]
+ ldr r4, _080AB260 @ =0x04000208
+ ldrh r3, [r4]
+ movs r2, 0
+ strh r2, [r4]
+ ldr r5, _080AB264 @ =0x04000200
+ ldrh r0, [r5]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r5]
+ strh r3, [r4]
+ ldr r1, _080AB268 @ =REG_DISPSTAT
+ movs r0, 0x8
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r3, 0x98
+ lsls r3, 8
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080AB26C @ =0x00009e09
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0x9C
+ lsls r3, 8
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080AB270 @ =0x00003a03
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _080AB274 @ =REG_BLDCNT
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ subs r0, 0xC
+ ldr r3, _080AB278 @ =0x00003f3f
+ adds r1, r3, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldrh r0, [r6]
+ movs r3, 0xFE
+ lsls r3, 7
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r6]
+ ldr r0, _080AB27C @ =gUnknown_030042A4
+ strh r2, [r0]
+ ldr r0, _080AB280 @ =gUnknown_030042A0
+ strh r2, [r0]
+ ldr r0, _080AB284 @ =gUnknown_030042C0
+ strh r2, [r0]
+ ldr r0, _080AB288 @ =gUnknown_030041B4
+ strh r2, [r0]
+ ldr r0, _080AB28C @ =gUnknown_03004288
+ strh r2, [r0]
+ ldr r0, _080AB290 @ =gUnknown_03004280
+ strh r2, [r0]
+ ldr r0, _080AB294 @ =gUnknown_030041B0
+ strh r2, [r0]
+ ldr r0, _080AB298 @ =gUnknown_030041B8
+ strh r2, [r0]
+ ldr r0, _080AB29C @ =gUnknown_030042C4
+ strh r2, [r0]
+ ldr r0, _080AB2A0 @ =gUnknown_03004240
+ strh r2, [r0]
+ ldr r0, _080AB2A4 @ =gUnknown_03004200
+ strh r2, [r0]
+ ldr r0, _080AB2A8 @ =gUnknown_03004244
+ strh r2, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB260: .4byte 0x04000208
+_080AB264: .4byte 0x04000200
+_080AB268: .4byte REG_DISPSTAT
+_080AB26C: .4byte 0x00009e09
+_080AB270: .4byte 0x00003a03
+_080AB274: .4byte REG_BLDCNT
+_080AB278: .4byte 0x00003f3f
+_080AB27C: .4byte gUnknown_030042A4
+_080AB280: .4byte gUnknown_030042A0
+_080AB284: .4byte gUnknown_030042C0
+_080AB288: .4byte gUnknown_030041B4
+_080AB28C: .4byte gUnknown_03004288
+_080AB290: .4byte gUnknown_03004280
+_080AB294: .4byte gUnknown_030041B0
+_080AB298: .4byte gUnknown_030041B8
+_080AB29C: .4byte gUnknown_030042C4
+_080AB2A0: .4byte gUnknown_03004240
+_080AB2A4: .4byte gUnknown_03004200
+_080AB2A8: .4byte gUnknown_03004244
+ thumb_func_end sub_80AB1BC
+
+ thumb_func_start sub_80AB2AC
+sub_80AB2AC: @ 80AB2AC
+ push {r4,r5,lr}
+ ldr r0, _080AB300 @ =gContestMiscGfx
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+ ldr r0, _080AB304 @ =gContestAudienceGfx
+ ldr r1, _080AB308 @ =0x06002000
+ bl LZDecompressVram
+ ldr r0, _080AB30C @ =gUnknown_08D1725C
+ ldr r1, _080AB310 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _080AB314 @ =gUnknown_08D17144
+ movs r2, 0x80
+ lsls r2, 2
+ movs r1, 0
+ bl LoadCompressedPalette
+ bl sub_80AB350
+ movs r4, 0
+ movs r5, 0xA0
+_080AB2DC:
+ ldr r0, _080AB318 @ =0x02018004
+ adds r0, r5, r0
+ ldr r1, _080AB31C @ =gUnknown_02038696
+ adds r1, r4, r1
+ ldrb r1, [r1]
+ adds r1, 0x5
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ adds r5, 0x20
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080AB2DC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB300: .4byte gContestMiscGfx
+_080AB304: .4byte gContestAudienceGfx
+_080AB308: .4byte 0x06002000
+_080AB30C: .4byte gUnknown_08D1725C
+_080AB310: .4byte 0x0600d000
+_080AB314: .4byte gUnknown_08D17144
+_080AB318: .4byte 0x02018004
+_080AB31C: .4byte gUnknown_02038696
+ thumb_func_end sub_80AB2AC
+
+ thumb_func_start sub_80AB320
+sub_80AB320: @ 80AB320
+ push {r4,lr}
+ ldr r4, _080AB340 @ =gWindowConfig_81E6FD8
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ ldr r0, _080AB344 @ =gUnknown_03004210
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ ldr r0, _080AB348 @ =gMenuWindow
+ ldr r1, _080AB34C @ =gWindowConfig_81E6FF4
+ bl InitWindowFromConfig
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB340: .4byte gWindowConfig_81E6FD8
+_080AB344: .4byte gUnknown_03004210
+_080AB348: .4byte gMenuWindow
+_080AB34C: .4byte gWindowConfig_81E6FF4
+ thumb_func_end sub_80AB320
+
+ thumb_func_start sub_80AB350
+sub_80AB350: @ 80AB350
+ push {r4,lr}
+ ldr r0, _080AB38C @ =gWindowConfig_81E6FD8
+ bl LoadFontDefaultPalette
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ bl FillPalette
+ movs r4, 0xA
+_080AB364:
+ adds r1, r4, 0
+ adds r1, 0xF0
+ ldr r0, _080AB390 @ =gPlttBufferUnfaded + 0x1E2
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xD
+ bls _080AB364
+ ldr r0, _080AB394 @ =0x00007e3f
+ movs r1, 0xF3
+ movs r2, 0x2
+ bl FillPalette
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB38C: .4byte gWindowConfig_81E6FD8
+_080AB390: .4byte gPlttBufferUnfaded + 0x1E2
+_080AB394: .4byte 0x00007e3f
+ thumb_func_end sub_80AB350
+
+ thumb_func_start sub_80AB398
+sub_80AB398: @ 80AB398
+ push {r4-r6,lr}
+ ldr r4, _080AB468 @ =0x02019204
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x5C
+ bl memset
+ movs r5, 0
+ adds r4, 0x2
+ movs r2, 0xFF
+_080AB3AC:
+ adds r1, r5, r4
+ ldrb r0, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080AB3AC
+ ldr r4, _080AB46C @ =0x02019260
+ movs r5, 0x3
+_080AB3BE:
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x1C
+ bl memset
+ adds r4, 0x1C
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080AB3BE
+ ldr r4, _080AB470 @ =0x020192d0
+ movs r6, 0x4
+ negs r6, r6
+ movs r3, 0xFF
+ adds r2, r4, 0
+ subs r2, 0x65
+ movs r5, 0x3
+_080AB3DE:
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r2, 0x8]
+ orrs r0, r3
+ strb r0, [r2, 0x8]
+ ldrb r0, [r2, 0x9]
+ orrs r0, r3
+ strb r0, [r2, 0x9]
+ adds r2, 0x1C
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080AB3DE
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x14
+ bl memset
+ adds r0, r4, 0
+ adds r0, 0x14
+ movs r1, 0
+ movs r2, 0x44
+ bl memset
+ adds r0, r4, 0
+ adds r0, 0x58
+ movs r1, 0
+ movs r2, 0x4
+ bl memset
+ adds r0, r4, 0
+ adds r0, 0x68
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ ldr r0, _080AB474 @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080AB43A
+ movs r0, 0
+ bl sub_80B0F28
+_080AB43A:
+ movs r5, 0
+ movs r6, 0xFF
+ adds r3, r4, 0
+ subs r3, 0xB8
+ adds r2, r4, 0
+ subs r2, 0x57
+ ldr r4, _080AB478 @ =gUnknown_02038696
+_080AB448:
+ ldrb r0, [r2]
+ orrs r0, r6
+ strb r0, [r2]
+ adds r1, r3, r5
+ adds r0, r5, r4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r2, 0x1C
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080AB448
+ bl sub_80B159C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB468: .4byte 0x02019204
+_080AB46C: .4byte 0x02019260
+_080AB470: .4byte 0x020192d0
+_080AB474: .4byte gUnknown_0203869A
+_080AB478: .4byte gUnknown_02038696
+ thumb_func_end sub_80AB398
+
+ thumb_func_start sub_80AB47C
+sub_80AB47C: @ 80AB47C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r0, _080AB498 @ =gMain
+ ldr r1, _080AB49C @ =0x0000043c
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ beq _080AB554
+ cmp r0, 0x1
+ bgt _080AB4A0
+ cmp r0, 0
+ beq _080AB4AA
+ b _080AB5AE
+ .align 2, 0
+_080AB498: .4byte gMain
+_080AB49C: .4byte 0x0000043c
+_080AB4A0:
+ cmp r0, 0x2
+ beq _080AB55A
+ cmp r0, 0x3
+ beq _080AB578
+ b _080AB5AE
+_080AB4AA:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80AB320
+ bl sub_80AB1BC
+ bl dp12_8087EA4
+ bl ResetPaletteFade
+ ldr r0, _080AB538 @ =gPaletteFade
+ ldrb r1, [r0, 0x8]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0, 0x8]
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0xC0
+ lsls r3, 9
+ movs r5, 0
+ ldr r1, _080AB53C @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ ldr r6, _080AB540 @ =0x85000400
+ movs r7, 0x85
+ lsls r7, 24
+_080AB4E0:
+ str r5, [sp]
+ mov r0, sp
+ 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 _080AB4E0
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetSpriteData
+ bl ResetTasks
+ bl FreeAllSpritePalettes
+ ldr r1, _080AB544 @ =gReservedSpritePaletteCount
+ movs r0, 0x4
+ strb r0, [r1]
+ ldr r0, _080AB548 @ =0x02000000
+ movs r1, 0xC0
+ lsls r1, 9
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ bl sub_8040710
+ bl sub_80AB398
+ ldr r1, _080AB54C @ =gMain
+ ldr r0, _080AB550 @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080AB5AE
+ .align 2, 0
+_080AB538: .4byte gPaletteFade
+_080AB53C: .4byte 0x040000d4
+_080AB540: .4byte 0x85000400
+_080AB544: .4byte gReservedSpritePaletteCount
+_080AB548: .4byte 0x02000000
+_080AB54C: .4byte gMain
+_080AB550: .4byte 0x0000043c
+_080AB554:
+ bl sub_80AB350
+ b _080AB56C
+_080AB55A:
+ ldr r5, _080AB574 @ =0x0201925d
+ adds r0, r5, 0
+ bl sub_80AB70C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AB5AE
+ movs r0, 0
+ strb r0, [r5]
+_080AB56C:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080AB5AE
+ .align 2, 0
+_080AB574: .4byte 0x0201925d
+_080AB578:
+ bl sub_80B2184
+ ldr r0, _080AB5B8 @ =gUnknown_030042C0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080AB5BC @ =gUnknown_030041B4
+ strh r1, [r0]
+ movs r0, 0x2
+ bl BeginFastPaletteFade
+ ldr r2, _080AB5C0 @ =gPaletteFade
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _080AB5C4 @ =sub_80ABAC4
+ bl SetVBlankCallback
+ ldr r0, _080AB5C8 @ =sub_80AB5D4
+ movs r1, 0xA
+ bl CreateTask
+ ldr r1, _080AB5CC @ =0x02019204
+ strb r0, [r1, 0x8]
+ ldr r0, _080AB5D0 @ =sub_80ABAAC
+ bl SetMainCallback2
+_080AB5AE:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB5B8: .4byte gUnknown_030042C0
+_080AB5BC: .4byte gUnknown_030041B4
+_080AB5C0: .4byte gPaletteFade
+_080AB5C4: .4byte sub_80ABAC4
+_080AB5C8: .4byte sub_80AB5D4
+_080AB5CC: .4byte 0x02019204
+_080AB5D0: .4byte sub_80ABAAC
+ thumb_func_end sub_80AB47C
+
+ thumb_func_start sub_80AB5D4
+sub_80AB5D4: @ 80AB5D4
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080AB5F8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080AB5F4
+ ldr r0, _080AB5FC @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080AB600 @ =sub_80AB604
+ str r0, [r1]
+_080AB5F4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB5F8: .4byte gPaletteFade
+_080AB5FC: .4byte gTasks
+_080AB600: .4byte sub_80AB604
+ thumb_func_end sub_80AB5D4
+
+ thumb_func_start sub_80AB604
+sub_80AB604: @ 80AB604
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080AB648 @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AB65C
+ ldr r2, _080AB64C @ =gPaletteFade
+ ldrb r1, [r2, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080AB66A
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ bl sub_80AF860
+ ldr r0, _080AB650 @ =sub_80AB678
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080AB654 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080AB658 @ =nullsub_89
+ str r1, [r0]
+ b _080AB66A
+ .align 2, 0
+_080AB648: .4byte gUnknown_0203869A
+_080AB64C: .4byte gPaletteFade
+_080AB650: .4byte sub_80AB678
+_080AB654: .4byte gTasks
+_080AB658: .4byte nullsub_89
+_080AB65C:
+ ldr r0, _080AB670 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080AB674 @ =sub_80AB960
+ str r0, [r1]
+_080AB66A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB670: .4byte gTasks
+_080AB674: .4byte sub_80AB960
+ thumb_func_end sub_80AB604
+
+ thumb_func_start sub_80AB678
+sub_80AB678: @ 80AB678
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080AB68C @ =sub_80C89DC
+ ldr r2, _080AB690 @ =sub_80AB694
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB68C: .4byte sub_80C89DC
+_080AB690: .4byte sub_80AB694
+ thumb_func_end sub_80AB678
+
+ thumb_func_start sub_80AB694
+sub_80AB694: @ 80AB694
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0x1
+ ldr r2, _080AB6AC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r3, [r1, 0x8]
+ ldr r0, _080AB6B0 @ =sub_80AB6B4
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080AB6AC: .4byte gTasks
+_080AB6B0: .4byte sub_80AB6B4
+ thumb_func_end sub_80AB694
+
+ thumb_func_start sub_80AB6B4
+sub_80AB6B4: @ 80AB6B4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, _080AB6F8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r5
+ ldrh r1, [r0, 0x8]
+ subs r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ cmp r1, 0
+ bgt _080AB6F2
+ bl GetMultiplayerId
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r0, _080AB6FC @ =0x02019204
+ ldrb r1, [r0, 0x8]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r5
+ ldr r1, _080AB700 @ =sub_80AB960
+ str r1, [r0]
+ ldr r1, _080AB704 @ =gRngValue
+ ldr r0, _080AB708 @ =gUnknown_03005D28
+ ldr r0, [r0]
+ str r0, [r1]
+_080AB6F2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB6F8: .4byte gTasks
+_080AB6FC: .4byte 0x02019204
+_080AB700: .4byte sub_80AB960
+_080AB704: .4byte gRngValue
+_080AB708: .4byte gUnknown_03005D28
+ thumb_func_end sub_80AB6B4
+
+ thumb_func_start sub_80AB70C
+sub_80AB70C: @ 80AB70C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x44
+ mov r10, r0
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bls _080AB722
+ b _080AB93C
+_080AB722:
+ lsls r0, 2
+ ldr r1, _080AB72C @ =_080AB730
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AB72C: .4byte _080AB730
+ .align 2, 0
+_080AB730:
+ .4byte _080AB74C
+ .4byte _080AB7A0
+ .4byte _080AB7B0
+ .4byte _080AB800
+ .4byte _080AB814
+ .4byte _080AB844
+ .4byte _080AB8CC
+_080AB74C:
+ ldr r0, _080AB794 @ =gPaletteFade
+ ldrb r1, [r0, 0x8]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0, 0x8]
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0xC0
+ lsls r3, 9
+ add r5, sp, 0x40
+ movs r6, 0
+ ldr r1, _080AB798 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r5
+ ldr r7, _080AB79C @ =0x85000400
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080AB772:
+ str r6, [sp, 0x40]
+ mov r0, r8
+ 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 _080AB772
+ str r6, [sp, 0x40]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ b _080AB7E6
+ .align 2, 0
+_080AB794: .4byte gPaletteFade
+_080AB798: .4byte 0x040000d4
+_080AB79C: .4byte 0x85000400
+_080AB7A0:
+ ldr r0, _080AB7AC @ =gContestMiscGfx
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+ b _080AB946
+ .align 2, 0
+_080AB7AC: .4byte gContestMiscGfx
+_080AB7B0:
+ ldr r0, _080AB7EC @ =gContestAudienceGfx
+ ldr r4, _080AB7F0 @ =0x06002000
+ adds r1, r4, 0
+ bl LZDecompressVram
+ ldr r3, _080AB7F4 @ =0x02015800
+ movs r5, 0x80
+ lsls r5, 6
+ ldr r1, _080AB7F8 @ =0x040000d4
+ ldr r6, _080AB7FC @ =0x84000400
+ movs r2, 0x80
+ lsls r2, 5
+ movs r7, 0x84
+ lsls r7, 24
+_080AB7CC:
+ str r4, [r1]
+ str r3, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r4, r2
+ adds r3, r2
+ subs r5, r2
+ cmp r5, r2
+ bhi _080AB7CC
+ str r4, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r5, 2
+ orrs r0, r7
+_080AB7E6:
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ b _080AB946
+ .align 2, 0
+_080AB7EC: .4byte gContestAudienceGfx
+_080AB7F0: .4byte 0x06002000
+_080AB7F4: .4byte 0x02015800
+_080AB7F8: .4byte 0x040000d4
+_080AB7FC: .4byte 0x84000400
+_080AB800:
+ ldr r0, _080AB80C @ =gUnknown_08D1725C
+ ldr r1, _080AB810 @ =0x0600d000
+ bl LZDecompressVram
+ b _080AB946
+ .align 2, 0
+_080AB80C: .4byte gUnknown_08D1725C
+_080AB810: .4byte 0x0600d000
+_080AB814:
+ ldr r0, _080AB830 @ =gUnknown_08D17424
+ ldr r4, _080AB834 @ =0x0600e000
+ adds r1, r4, 0
+ bl LZDecompressVram
+ ldr r1, _080AB838 @ =0x02018a04
+ ldr r0, _080AB83C @ =0x040000d4
+ str r4, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080AB840 @ =0x84000200
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080AB946
+ .align 2, 0
+_080AB830: .4byte gUnknown_08D17424
+_080AB834: .4byte 0x0600e000
+_080AB838: .4byte 0x02018a04
+_080AB83C: .4byte 0x040000d4
+_080AB840: .4byte 0x84000200
+_080AB844:
+ ldr r0, _080AB8AC @ =gUnknown_08D17144
+ movs r2, 0x80
+ lsls r2, 2
+ movs r1, 0
+ bl LoadCompressedPalette
+ ldr r5, _080AB8B0 @ =gPlttBufferUnfaded + 0x100
+ ldr r6, _080AB8B4 @ =REG_BG0CNT
+ adds r0, r5, 0
+ mov r1, sp
+ adds r2, r6, 0
+ bl CpuSet
+ ldr r0, _080AB8B8 @ =gUnknown_02038695
+ mov r9, r0
+ ldrb r0, [r0]
+ adds r0, 0x5
+ lsls r0, 5
+ ldr r1, _080AB8BC @ =0xffffff00
+ adds r1, r5
+ mov r8, r1
+ add r0, r8
+ add r4, sp, 0x20
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl CpuSet
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl CpuSet
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r1, 0x5
+ lsls r1, 5
+ add r1, r8
+ mov r0, sp
+ adds r2, r6, 0
+ bl CpuSet
+ ldr r1, _080AB8C0 @ =0x02018004
+ ldr r0, _080AB8C4 @ =0x040000d4
+ mov r2, r8
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080AB8C8 @ =0x84000080
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_80AB350
+ b _080AB946
+ .align 2, 0
+_080AB8AC: .4byte gUnknown_08D17144
+_080AB8B0: .4byte gPlttBufferUnfaded + 0x100
+_080AB8B4: .4byte REG_BG0CNT
+_080AB8B8: .4byte gUnknown_02038695
+_080AB8BC: .4byte 0xffffff00
+_080AB8C0: .4byte 0x02018004
+_080AB8C4: .4byte 0x040000d4
+_080AB8C8: .4byte 0x84000080
+_080AB8CC:
+ bl sub_80B1118
+ bl sub_80AFA5C
+ bl sub_80AEB30
+ bl sub_80AE8B4
+ ldr r1, _080AB924 @ =0x02019204
+ movs r4, 0
+ strb r0, [r1, 0x12]
+ bl sub_80AFE30
+ bl sub_80B0034
+ bl sub_80B00C8
+ bl sub_80B0324
+ bl sub_80B0518
+ ldr r1, _080AB928 @ =gUnknown_02024A72
+ strb r4, [r1]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ movs r3, 0x3
+ strb r3, [r1, 0x2]
+ movs r2, 0x2
+ strb r2, [r1, 0x3]
+ ldr r0, _080AB92C @ =gUnknown_020239F8
+ strh r4, [r0]
+ ldr r4, _080AB930 @ =gUnknown_02024C07
+ strb r2, [r4]
+ ldr r0, _080AB934 @ =gUnknown_02024C08
+ strb r3, [r0]
+ bl sub_80AE858
+ ldr r2, _080AB938 @ =gUnknown_02024BE0
+ ldrb r1, [r4]
+ adds r1, r2
+ strb r0, [r1]
+ bl sub_80B292C
+ b _080AB946
+ .align 2, 0
+_080AB924: .4byte 0x02019204
+_080AB928: .4byte gUnknown_02024A72
+_080AB92C: .4byte gUnknown_020239F8
+_080AB930: .4byte gUnknown_02024C07
+_080AB934: .4byte gUnknown_02024C08
+_080AB938: .4byte gUnknown_02024BE0
+_080AB93C:
+ movs r0, 0
+ mov r1, r10
+ strb r0, [r1]
+ movs r0, 0x1
+ b _080AB950
+_080AB946:
+ mov r2, r10
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ movs r0, 0
+_080AB950:
+ add sp, 0x44
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AB70C
+
+ thumb_func_start sub_80AB960
+sub_80AB960: @ 80AB960
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _080AB994 @ =gPaletteFade
+ ldrb r2, [r1, 0x8]
+ movs r0, 0x7F
+ ands r0, r2
+ strb r0, [r1, 0x8]
+ ldrb r1, [r1, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080AB990
+ ldr r0, _080AB998 @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ strh r2, [r1, 0x8]
+ strh r2, [r1, 0xA]
+ ldr r0, _080AB99C @ =sub_80AB9A0
+ str r0, [r1]
+_080AB990:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AB994: .4byte gPaletteFade
+_080AB998: .4byte gTasks
+_080AB99C: .4byte sub_80AB9A0
+ thumb_func_end sub_80AB960
+
+ thumb_func_start sub_80AB9A0
+sub_80AB9A0: @ 80AB9A0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080AB9C4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bhi _080ABA7C
+ lsls r0, 2
+ ldr r1, _080AB9C8 @ =_080AB9CC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AB9C4: .4byte gTasks
+_080AB9C8: .4byte _080AB9CC
+ .align 2, 0
+_080AB9CC:
+ .4byte _080AB9E0
+ .4byte _080ABA0A
+ .4byte _080ABA28
+ .4byte _080ABA44
+ .4byte _080ABA7C
+_080AB9E0:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080ABA9C
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ movs r0, 0x61
+ movs r1, 0
+ bl PlaySE12WithPanning
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080ABA9C
+_080ABA0A:
+ ldr r1, _080ABA24 @ =gUnknown_030041B4
+ ldrh r0, [r1]
+ adds r0, 0x7
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA0
+ ble _080ABA9C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r2
+ b _080ABA68
+ .align 2, 0
+_080ABA24: .4byte gUnknown_030041B4
+_080ABA28:
+ bl sub_80B2280
+ ldr r0, _080ABA40 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080ABA9C
+ .align 2, 0
+_080ABA40: .4byte gTasks
+_080ABA44:
+ ldr r3, _080ABA70 @ =REG_BG0CNT
+ ldrb r2, [r3]
+ movs r1, 0x4
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3]
+ ldr r2, _080ABA74 @ =REG_BG2CNT
+ ldrb r0, [r2]
+ ands r1, r0
+ strb r1, [r2]
+ bl sub_80B1B14
+ ldr r1, _080ABA78 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+_080ABA68:
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080ABA9C
+ .align 2, 0
+_080ABA70: .4byte REG_BG0CNT
+_080ABA74: .4byte REG_BG2CNT
+_080ABA78: .4byte gTasks
+_080ABA7C:
+ ldr r0, _080ABAA4 @ =0x02019204
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080ABA9C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r2
+ strh r1, [r0, 0x8]
+ strh r1, [r0, 0xA]
+ ldr r1, _080ABAA8 @ =sub_80ABB70
+ str r1, [r0]
+_080ABA9C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABAA4: .4byte 0x02019204
+_080ABAA8: .4byte sub_80ABB70
+ thumb_func_end sub_80AB9A0
+
+ thumb_func_start sub_80ABAAC
+sub_80ABAAC: @ 80ABAAC
+ push {lr}
+ bl AnimateSprites
+ bl RunTasks
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ABAAC
+
+ thumb_func_start sub_80ABAC4
+sub_80ABAC4: @ 80ABAC4
+ push {lr}
+ ldr r1, _080ABB3C @ =REG_BG0HOFS
+ ldr r0, _080ABB40 @ =gUnknown_030042A4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080ABB44 @ =gUnknown_030042A0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080ABB48 @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080ABB4C @ =gUnknown_030041B4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080ABB50 @ =gUnknown_03004288
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080ABB54 @ =gUnknown_03004280
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080ABB58 @ =gUnknown_030041B0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080ABB5C @ =gUnknown_030041B8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x22
+ ldr r0, _080ABB60 @ =gUnknown_030042C4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r0, _080ABB64 @ =gUnknown_03004240
+ ldrh r0, [r0]
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r0, _080ABB68 @ =gUnknown_03004200
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r0, _080ABB6C @ =gUnknown_03004244
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bl TransferPlttBuffer
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABB3C: .4byte REG_BG0HOFS
+_080ABB40: .4byte gUnknown_030042A4
+_080ABB44: .4byte gUnknown_030042A0
+_080ABB48: .4byte gUnknown_030042C0
+_080ABB4C: .4byte gUnknown_030041B4
+_080ABB50: .4byte gUnknown_03004288
+_080ABB54: .4byte gUnknown_03004280
+_080ABB58: .4byte gUnknown_030041B0
+_080ABB5C: .4byte gUnknown_030041B8
+_080ABB60: .4byte gUnknown_030042C4
+_080ABB64: .4byte gUnknown_03004240
+_080ABB68: .4byte gUnknown_03004200
+_080ABB6C: .4byte gUnknown_03004244
+ thumb_func_end sub_80ABAC4
+
+ thumb_func_start sub_80ABB70
+sub_80ABB70: @ 80ABB70
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080ABBB0 @ =gUnknown_030042A0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080ABBB4 @ =gUnknown_03004280
+ strh r1, [r0]
+ bl sub_80B0D7C
+ ldr r1, _080ABBB8 @ =gPlttBufferUnfaded
+ ldr r2, _080ABBBC @ =0x02018204
+ ldr r0, _080ABBC0 @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080ABBC4 @ =0x84000100
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _080ABBC8 @ =gUnknown_02038695
+ ldrb r0, [r0]
+ bl sub_80AF59C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ABBD4
+ ldr r0, _080ABBCC @ =gUnknown_020238CC
+ ldr r1, _080ABBD0 @ =gUnknown_083CAF84
+ bl StringCopy
+ b _080ABBDC
+ .align 2, 0
+_080ABBB0: .4byte gUnknown_030042A0
+_080ABBB4: .4byte gUnknown_03004280
+_080ABBB8: .4byte gPlttBufferUnfaded
+_080ABBBC: .4byte 0x02018204
+_080ABBC0: .4byte 0x040000d4
+_080ABBC4: .4byte 0x84000100
+_080ABBC8: .4byte gUnknown_02038695
+_080ABBCC: .4byte gUnknown_020238CC
+_080ABBD0: .4byte gUnknown_083CAF84
+_080ABBD4:
+ ldr r0, _080ABC20 @ =gUnknown_020238CC
+ ldr r1, _080ABC24 @ =gUnknown_083CAFAE
+ bl StringCopy
+_080ABBDC:
+ ldr r5, _080ABC20 @ =gUnknown_020238CC
+ ldr r0, _080ABC28 @ =0x02019204
+ ldrb r1, [r0, 0x1]
+ adds r1, 0x1
+ adds r0, r5, 0
+ bl sub_80AE020
+ bl sub_80AF138
+ ldr r4, _080ABC2C @ =gStringVar4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080ABC30 @ =gMenuWindow
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ ldr r1, _080ABC34 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080ABC38 @ =sub_80ABC3C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABC20: .4byte gUnknown_020238CC
+_080ABC24: .4byte gUnknown_083CAFAE
+_080ABC28: .4byte 0x02019204
+_080ABC2C: .4byte gStringVar4
+_080ABC30: .4byte gMenuWindow
+_080ABC34: .4byte gTasks
+_080ABC38: .4byte sub_80ABC3C
+ thumb_func_end sub_80ABB70
+
+ thumb_func_start sub_80ABC3C
+sub_80ABC3C: @ 80ABC3C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080ABC64 @ =gMenuWindow
+ bl sub_80037A0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080ABC5E
+ ldr r0, _080ABC68 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080ABC6C @ =sub_80ABC70
+ str r0, [r1]
+_080ABC5E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABC64: .4byte gMenuWindow
+_080ABC68: .4byte gTasks
+_080ABC6C: .4byte sub_80ABC70
+ thumb_func_end sub_80ABC3C
+
+ thumb_func_start sub_80ABC70
+sub_80ABC70: @ 80ABC70
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r0, _080ABCB0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080ABC88
+ cmp r1, 0x2
+ bne _080ABCCE
+_080ABC88:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080ABCB4 @ =gUnknown_02038695
+ ldrb r0, [r0]
+ bl sub_80AF59C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ABCC0
+ movs r0, 0x1
+ bl sub_80AFFE0
+ ldr r0, _080ABCB8 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080ABCBC @ =sub_80ABCDC
+ b _080ABCCC
+ .align 2, 0
+_080ABCB0: .4byte gMain
+_080ABCB4: .4byte gUnknown_02038695
+_080ABCB8: .4byte gTasks
+_080ABCBC: .4byte sub_80ABCDC
+_080ABCC0:
+ ldr r0, _080ABCD4 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080ABCD8 @ =sub_80AC0C8
+_080ABCCC:
+ str r0, [r1]
+_080ABCCE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABCD4: .4byte gTasks
+_080ABCD8: .4byte sub_80AC0C8
+ thumb_func_end sub_80ABC70
+
+ thumb_func_start sub_80ABCDC
+sub_80ABCDC: @ 80ABCDC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x28]
+ ldr r0, _080ABD80 @ =gUnknown_030042A0
+ movs r1, 0xA0
+ strh r1, [r0]
+ ldr r0, _080ABD84 @ =gUnknown_03004280
+ strh r1, [r0]
+ ldr r5, _080ABD88 @ =gUnknown_03004210
+ ldr r4, _080ABD8C @ =gUnknown_083CA340
+ ldrb r2, [r4]
+ ldrb r3, [r4, 0x1]
+ ldrb r0, [r4, 0x2]
+ str r0, [sp]
+ ldrb r0, [r4, 0x3]
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0
+ bl FillWindowRect_DefaultPalette
+ movs r6, 0
+ ldr r0, _080ABD90 @ =gUnknown_02038695
+ mov r8, r0
+ ldr r7, _080ABD94 @ =0x02019260
+ mov r9, r5
+ mov r10, r4
+_080ABD1C:
+ lsls r1, r6, 1
+ mov r3, r8
+ ldrb r2, [r3]
+ lsls r0, r2, 6
+ adds r1, r0
+ ldr r0, _080ABD98 @ =gUnknown_0203858E
+ adds r1, r0
+ ldrh r4, [r1]
+ add r5, sp, 0x8
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r7
+ ldrh r0, [r0, 0x8]
+ cmp r0, 0
+ beq _080ABDA0
+ adds r0, r2, 0
+ bl sub_80B214C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ABDA0
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrh r0, [r0, 0x8]
+ adds r1, r4, 0
+ bl AreMovesContestCombo
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ABDA0
+ mov r3, r8
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r1, [r0, 0x15]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080ABDA0
+ add r0, sp, 0x8
+ ldr r1, _080ABD9C @ =gUnknownText_UnknownFormatting2
+ b _080ABDC6
+ .align 2, 0
+_080ABD80: .4byte gUnknown_030042A0
+_080ABD84: .4byte gUnknown_03004280
+_080ABD88: .4byte gUnknown_03004210
+_080ABD8C: .4byte gUnknown_083CA340
+_080ABD90: .4byte gUnknown_02038695
+_080ABD94: .4byte 0x02019260
+_080ABD98: .4byte gUnknown_0203858E
+_080ABD9C: .4byte gUnknownText_UnknownFormatting2
+_080ABDA0:
+ cmp r4, 0
+ beq _080ABDCC
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrh r0, [r1, 0x8]
+ cmp r0, r4
+ bne _080ABDCC
+ ldr r0, _080ABE74 @ =gContestMoves
+ lsls r1, r4, 3
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x3
+ beq _080ABDCC
+ add r0, sp, 0x8
+ ldr r1, _080ABE78 @ =gUnknownText_UnknownFormatting3
+_080ABDC6:
+ bl StringCopy
+ adds r5, r0, 0
+_080ABDCC:
+ movs r0, 0xD
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, _080ABE7C @ =gMoveNames
+ adds r1, r0
+ adds r0, r5, 0
+ bl StringCopy
+ lsls r1, r6, 2
+ adds r2, r1, r6
+ lsls r2, 18
+ movs r3, 0xC2
+ lsls r3, 18
+ adds r2, r3
+ lsrs r2, 16
+ mov r3, r10
+ adds r0, r1, r3
+ ldrb r3, [r0]
+ lsls r3, 3
+ adds r3, 0x4
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, _080ABE80 @ =gUnknown_083CA340 + 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 3
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ mov r0, r9
+ add r1, sp, 0x8
+ bl sub_8002E4C
+ mov r0, r9
+ bl sub_8002F44
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bhi _080ABE20
+ b _080ABD1C
+_080ABE20:
+ ldr r1, _080ABE84 @ =0x0000ffff
+ ldr r3, _080ABE88 @ =0x00002d9f
+ movs r0, 0x48
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0xC
+ bl sub_814A5C0
+ ldr r4, _080ABE8C @ =0x02019204
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ bl sub_80AC0AC
+ ldr r2, _080ABE90 @ =gUnknown_02038570
+ ldrb r1, [r4]
+ lsls r1, 1
+ ldr r0, _080ABE94 @ =gUnknown_02038695
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r2, 0x1E
+ adds r1, r2
+ ldrh r0, [r1]
+ bl sub_80AEBEC
+ ldr r1, _080ABE98 @ =gTasks
+ ldr r2, [sp, 0x28]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080ABE9C @ =sub_80ABEA0
+ str r1, [r0]
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABE74: .4byte gContestMoves
+_080ABE78: .4byte gUnknownText_UnknownFormatting3
+_080ABE7C: .4byte gMoveNames
+_080ABE80: .4byte gUnknown_083CA340 + 0x1
+_080ABE84: .4byte 0x0000ffff
+_080ABE88: .4byte 0x00002d9f
+_080ABE8C: .4byte 0x02019204
+_080ABE90: .4byte gUnknown_02038570
+_080ABE94: .4byte gUnknown_02038695
+_080ABE98: .4byte gTasks
+_080ABE9C: .4byte sub_80ABEA0
+ thumb_func_end sub_80ABCDC
+
+ thumb_func_start sub_80ABEA0
+sub_80ABEA0: @ 80ABEA0
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ ldr r3, _080ABEF4 @ =gMain
+ ldr r1, _080ABEF8 @ =gUnknown_02038570
+ ldr r0, _080ABEFC @ =gUnknown_02038695
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, 0x1E
+ adds r1, r0, r1
+ movs r2, 0x3
+_080ABEBA:
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _080ABEC6
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_080ABEC6:
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080ABEBA
+ ldrh r0, [r3, 0x2E]
+ movs r5, 0x1
+ ands r5, r0
+ cmp r5, 0
+ beq _080ABF08
+ bl sub_814A7FC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080ABF00 @ =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080ABF04 @ =sub_80AC0C8
+ str r0, [r1]
+ b _080AC098
+ .align 2, 0
+_080ABEF4: .4byte gMain
+_080ABEF8: .4byte gUnknown_02038570
+_080ABEFC: .4byte gUnknown_02038695
+_080ABF00: .4byte gTasks
+_080ABF04: .4byte sub_80AC0C8
+_080ABF08:
+ ldrh r0, [r3, 0x30]
+ cmp r0, 0x20
+ bne _080ABF10
+ b _080AC098
+_080ABF10:
+ cmp r0, 0x20
+ bgt _080ABF1A
+ cmp r0, 0x2
+ beq _080ABF26
+ b _080AC098
+_080ABF1A:
+ cmp r0, 0x40
+ beq _080ABFEC
+ cmp r0, 0x80
+ bne _080ABF24
+ b _080AC048
+_080ABF24:
+ b _080AC098
+_080ABF26:
+ bl sub_814A904
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_80AFFE0
+ ldr r0, _080ABF64 @ =gUnknown_03004210
+ ldr r1, _080ABF68 @ =gUnknown_083CA340
+ ldrb r2, [r1]
+ ldrb r3, [r1, 0x1]
+ ldrb r4, [r1, 0x2]
+ str r4, [sp]
+ ldrb r1, [r1, 0x3]
+ str r1, [sp, 0x4]
+ movs r1, 0
+ bl FillWindowRect_DefaultPalette
+ ldr r0, _080ABF6C @ =gUnknown_02038695
+ ldrb r0, [r0]
+ bl sub_80AF59C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ABF78
+ ldr r0, _080ABF70 @ =gUnknown_020238CC
+ ldr r1, _080ABF74 @ =gUnknown_083CAF84
+ bl StringCopy
+ b _080ABF80
+ .align 2, 0
+_080ABF64: .4byte gUnknown_03004210
+_080ABF68: .4byte gUnknown_083CA340
+_080ABF6C: .4byte gUnknown_02038695
+_080ABF70: .4byte gUnknown_020238CC
+_080ABF74: .4byte gUnknown_083CAF84
+_080ABF78:
+ ldr r0, _080ABFC8 @ =gUnknown_020238CC
+ ldr r1, _080ABFCC @ =gUnknown_083CAFAE
+ bl StringCopy
+_080ABF80:
+ ldr r5, _080ABFC8 @ =gUnknown_020238CC
+ ldr r0, _080ABFD0 @ =0x02019204
+ ldrb r1, [r0, 0x1]
+ adds r1, 0x1
+ adds r0, r5, 0
+ bl sub_80AE020
+ bl sub_80AF138
+ ldr r4, _080ABFD4 @ =gStringVar4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080ABFD8 @ =gMenuWindow
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8003460
+ ldr r0, _080ABFDC @ =gUnknown_030042A0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080ABFE0 @ =gUnknown_03004280
+ strh r1, [r0]
+ ldr r1, _080ABFE4 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080ABFE8 @ =sub_80ABC70
+ str r1, [r0]
+ b _080AC098
+ .align 2, 0
+_080ABFC8: .4byte gUnknown_020238CC
+_080ABFCC: .4byte gUnknown_083CAFAE
+_080ABFD0: .4byte 0x02019204
+_080ABFD4: .4byte gStringVar4
+_080ABFD8: .4byte gMenuWindow
+_080ABFDC: .4byte gUnknown_030042A0
+_080ABFE0: .4byte gUnknown_03004280
+_080ABFE4: .4byte gTasks
+_080ABFE8: .4byte sub_80ABC70
+_080ABFEC:
+ ldr r4, _080AC000 @ =0x02019204
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ bl nullsub_17
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080AC004
+ subs r0, r6, 0x1
+ b _080AC006
+ .align 2, 0
+_080AC000: .4byte 0x02019204
+_080AC004:
+ subs r0, 0x1
+_080AC006:
+ strb r0, [r4]
+ ldr r4, _080AC03C @ =0x02019204
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ bl sub_80AC0AC
+ bl sub_80AED58
+ ldr r2, _080AC040 @ =gUnknown_02038570
+ ldrb r1, [r4]
+ lsls r1, 1
+ ldr r0, _080AC044 @ =gUnknown_02038695
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r2, 0x1E
+ adds r1, r2
+ ldrh r0, [r1]
+ bl sub_80AEBEC
+ cmp r6, 0x1
+ bls _080AC098
+ movs r0, 0x5
+ bl PlaySE
+ b _080AC098
+ .align 2, 0
+_080AC03C: .4byte 0x02019204
+_080AC040: .4byte gUnknown_02038570
+_080AC044: .4byte gUnknown_02038695
+_080AC048:
+ ldr r4, _080AC060 @ =0x02019204
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ bl nullsub_17
+ ldrb r1, [r4]
+ subs r0, r6, 0x1
+ cmp r1, r0
+ bne _080AC064
+ strb r5, [r4]
+ b _080AC068
+ .align 2, 0
+_080AC060: .4byte 0x02019204
+_080AC064:
+ adds r0, r1, 0x1
+ strb r0, [r4]
+_080AC068:
+ ldr r4, _080AC0A0 @ =0x02019204
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ bl sub_80AC0AC
+ bl sub_80AED58
+ ldr r2, _080AC0A4 @ =gUnknown_02038570
+ ldrb r1, [r4]
+ lsls r1, 1
+ ldr r0, _080AC0A8 @ =gUnknown_02038695
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r2, 0x1E
+ adds r1, r2
+ ldrh r0, [r1]
+ bl sub_80AEBEC
+ cmp r6, 0x1
+ bls _080AC098
+ movs r0, 0x5
+ bl PlaySE
+_080AC098:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC0A0: .4byte 0x02019204
+_080AC0A4: .4byte gUnknown_02038570
+_080AC0A8: .4byte gUnknown_02038695
+ thumb_func_end sub_80ABEA0
+
+ thumb_func_start sub_80AC0AC
+sub_80AC0AC: @ 80AC0AC
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 28
+ movs r0, 0xB0
+ lsls r0, 23
+ adds r1, r0
+ lsrs r1, 24
+ movs r0, 0x4
+ bl sub_814A880
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AC0AC
+
+ thumb_func_start nullsub_17
+nullsub_17: @ 80AC0C4
+ bx lr
+ thumb_func_end nullsub_17
+
+ thumb_func_start sub_80AC0C8
+sub_80AC0C8: @ 80AC0C8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080AC120 @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AC13C
+ ldr r4, _080AC124 @ =gUnknown_02038695
+ ldrb r0, [r4]
+ bl sub_80AF15C
+ ldrb r2, [r4]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ ldr r2, _080AC128 @ =0x02019260
+ adds r1, r2
+ strh r0, [r1, 0x6]
+ ldr r4, _080AC12C @ =sub_80C8A38
+ adds r0, r4, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080AC130 @ =sub_80AC15C
+ adds r1, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ ldr r1, _080AC134 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080AC138 @ =nullsub_89
+ str r1, [r0]
+ bl sub_80AF860
+ movs r0, 0
+ bl sub_80AFFE0
+ b _080AC14E
+ .align 2, 0
+_080AC120: .4byte gUnknown_0203869A
+_080AC124: .4byte gUnknown_02038695
+_080AC128: .4byte 0x02019260
+_080AC12C: .4byte sub_80C8A38
+_080AC130: .4byte sub_80AC15C
+_080AC134: .4byte gTasks
+_080AC138: .4byte nullsub_89
+_080AC13C:
+ bl sub_80AF1B8
+ ldr r0, _080AC154 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080AC158 @ =sub_80AC188
+ str r0, [r1]
+_080AC14E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC154: .4byte gTasks
+_080AC158: .4byte sub_80AC188
+ thumb_func_end sub_80AC0C8
+
+ thumb_func_start sub_80AC15C
+sub_80AC15C: @ 80AC15C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ ldr r2, _080AC17C @ =gTasks
+ ldr r0, _080AC180 @ =0x02019204
+ ldrb r1, [r0, 0x8]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080AC184 @ =sub_80AC188
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC17C: .4byte gTasks
+_080AC180: .4byte 0x02019204
+_080AC184: .4byte sub_80AC188
+ thumb_func_end sub_80AC15C
+
+ thumb_func_start sub_80AC188
+sub_80AC188: @ 80AC188
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ bl sub_80AF138
+ ldr r0, _080AC1E4 @ =gUnknown_030042A0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080AC1E8 @ =gUnknown_03004280
+ strh r1, [r0]
+ movs r0, 0
+ bl sub_80AFFE0
+ ldr r1, _080AC1EC @ =gPlttBufferFaded
+ ldr r0, _080AC1F0 @ =0x02018604
+ movs r2, 0x80
+ lsls r2, 3
+ ldr r4, _080AC1F4 @ =0x040000d4
+ str r1, [r4]
+ str r0, [r4, 0x4]
+ lsrs r1, r2, 2
+ movs r3, 0x84
+ lsls r3, 24
+ orrs r1, r3
+ str r1, [r4, 0x8]
+ ldr r1, [r4, 0x8]
+ ldr r1, _080AC1F8 @ =0xfffffc00
+ adds r0, r1
+ movs r1, 0
+ bl LoadPalette
+ ldr r1, _080AC1FC @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ strh r1, [r0, 0xA]
+ ldr r1, _080AC200 @ =sub_80AC204
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC1E4: .4byte gUnknown_030042A0
+_080AC1E8: .4byte gUnknown_03004280
+_080AC1EC: .4byte gPlttBufferFaded
+_080AC1F0: .4byte 0x02018604
+_080AC1F4: .4byte 0x040000d4
+_080AC1F8: .4byte 0xfffffc00
+_080AC1FC: .4byte gTasks
+_080AC200: .4byte sub_80AC204
+ thumb_func_end sub_80AC188
+
+ thumb_func_start sub_80AC204
+sub_80AC204: @ 80AC204
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080AC248 @ =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, 0x2
+ ble _080AC242
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080AC242
+ bl sub_80B1BDC
+ movs r0, 0x1
+ bl sub_80B25E4
+ ldr r0, _080AC24C @ =sub_80AC250
+ str r0, [r4]
+_080AC242:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC248: .4byte gTasks
+_080AC24C: .4byte sub_80AC250
+ thumb_func_end sub_80AC204
+
+ thumb_func_start sub_80AC250
+sub_80AC250: @ 80AC250
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080AC278 @ =0x02019204
+ ldrh r1, [r0, 0x6]
+ movs r0, 0x90
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ bne _080AC272
+ ldr r0, _080AC27C @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080AC280 @ =sub_80AC284
+ str r0, [r1]
+_080AC272:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC278: .4byte 0x02019204
+_080AC27C: .4byte gTasks
+_080AC280: .4byte sub_80AC284
+ thumb_func_end sub_80AC250
+
+ thumb_func_start sub_80AC284
+sub_80AC284: @ 80AC284
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080AC2BC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1, r2
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080AC2B6
+ ldr r1, _080AC2C0 @ =0x02019204
+ movs r0, 0
+ strb r0, [r1, 0x10]
+ ldr r0, _080AC2C4 @ =gRngValue
+ ldr r0, [r0]
+ str r0, [r1, 0x18]
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ ldr r0, _080AC2C8 @ =sub_80AC2CC
+ str r0, [r2]
+_080AC2B6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC2BC: .4byte gTasks
+_080AC2C0: .4byte 0x02019204
+_080AC2C4: .4byte gRngValue
+_080AC2C8: .4byte sub_80AC2CC
+ thumb_func_end sub_80AC284
+
+ thumb_func_start sub_80AC2CC
+sub_80AC2CC: @ 80AC2CC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r2, _080AC308 @ =0x02019204
+ ldrb r7, [r2, 0x11]
+ ldr r1, _080AC30C @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r3, 0x8
+ ldrsh r0, [r0, r3]
+ adds r6, r2, 0
+ mov r12, r1
+ cmp r0, 0x3B
+ bls _080AC2FC
+ bl _080AD8CA
+_080AC2FC:
+ lsls r0, 2
+ ldr r1, _080AC310 @ =_080AC314
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AC308: .4byte 0x02019204
+_080AC30C: .4byte gTasks
+_080AC310: .4byte _080AC314
+ .align 2, 0
+_080AC314:
+ .4byte _080AC404
+ .4byte _080AC4B4
+ .4byte _080AC4D4
+ .4byte _080AC534
+ .4byte _080AC5E8
+ .4byte _080AC638
+ .4byte _080AC6F8
+ .4byte _080AC730
+ .4byte _080AC77C
+ .4byte _080AC7F4
+ .4byte _080AD750
+ .4byte _080AD77C
+ .4byte _080AC98C
+ .4byte _080AC9C0
+ .4byte _080ACEC0
+ .4byte _080ACFD4
+ .4byte _080AD040
+ .4byte _080AD070
+ .4byte _080AD168
+ .4byte _080AD11A
+ .4byte _080AD7B8
+ .4byte _080AD868
+ .4byte _080AD88C
+ .4byte _080AC81E
+ .4byte _080AC8CC
+ .4byte _080ACAD8
+ .4byte _080ACAEE
+ .4byte _080ACBB0
+ .4byte _080ACBDC
+ .4byte _080ACC44
+ .4byte _080ACD2A
+ .4byte _080AD7E8
+ .4byte _080AD840
+ .4byte _080AD648
+ .4byte _080AD6D8
+ .4byte _080AC9EC
+ .4byte _080ACA24
+ .4byte _080ACA44
+ .4byte _080ACA84
+ .4byte _080ACC98
+ .4byte _080ACD00
+ .4byte _080AD1A4
+ .4byte _080AD8CA
+ .4byte _080AD514
+ .4byte _080AD8CA
+ .4byte _080ACFA8
+ .4byte _080AD0FA
+ .4byte _080AC96C
+ .4byte _080AC8F8
+ .4byte _080AC94C
+ .4byte _080ACAAE
+ .4byte _080ACDC8
+ .4byte _080ACE64
+ .4byte _080AD316
+ .4byte _080AD3D0
+ .4byte _080AD700
+ .4byte _080AD71C
+ .4byte _080AD53C
+ .4byte _080AD5D0
+ .4byte _080AD624
+_080AC404:
+ bl sub_80B0D7C
+ movs r6, 0
+ ldr r0, _080AC484 @ =0x02019204
+ adds r1, r0, 0
+ adds r1, 0xCC
+ ldrb r0, [r0, 0x10]
+ mov r4, r8
+ lsls r4, 2
+ mov r9, r4
+ ldrb r5, [r1]
+ cmp r0, r5
+ beq _080AC42C
+ adds r2, r1, 0
+ adds r1, r0, 0
+_080AC422:
+ adds r6, 0x1
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _080AC422
+_080AC42C:
+ ldr r4, _080AC484 @ =0x02019204
+ strb r6, [r4, 0x11]
+ ldrb r7, [r4, 0x11]
+ ldr r0, _080AC488 @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ movs r5, 0x1
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080AC498
+ ldrb r0, [r4, 0x7]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4, 0x7]
+ bl sub_80AE074
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AC458
+ ldrb r0, [r4, 0x11]
+ bl sub_80B114C
+_080AC458:
+ ldr r4, _080AC48C @ =sub_80C8C80
+ adds r0, r4, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080AC490 @ =sub_80AD8DC
+ adds r1, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ bl sub_80AF860
+ ldr r1, _080AC494 @ =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC484: .4byte 0x02019204
+_080AC488: .4byte gUnknown_0203869A
+_080AC48C: .4byte sub_80C8C80
+_080AC490: .4byte sub_80AD8DC
+_080AC494: .4byte gTasks
+_080AC498:
+ adds r0, r7, 0
+ bl sub_80B114C
+ ldr r0, _080AC4B0 @ =gTasks
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x2
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC4B0: .4byte gTasks
+_080AC4B4:
+ ldrb r1, [r6, 0x7]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080AC4C2
+ bl _080AD8CA
+_080AC4C2:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x2
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+_080AC4D4:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080AC508 @ =0x02019260
+ adds r2, r0, r1
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ bne _080AC4F6
+ ldrb r1, [r2, 0xB]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ beq _080AC50C
+_080AC4F6:
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x1F
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC508: .4byte 0x02019260
+_080AC50C:
+ bl sub_80AF138
+ adds r0, r7, 0
+ movs r1, 0
+ bl sub_80B0CDC
+ ldr r0, _080AC530 @ =gTasks
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ strh r6, [r1, 0x1C]
+ movs r0, 0x3
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC530: .4byte gTasks
+_080AC534:
+ mov r4, r8
+ lsls r4, 2
+ mov r9, r4
+ ldr r4, _080AC5C4 @ =0x02019348
+ ldr r1, _080AC5C8 @ =gUnknown_02024E84
+ movs r2, 0
+ adds r0, r1, 0x3
+_080AC542:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _080AC542
+ movs r6, 0x4
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x14
+ bl memset
+ ldr r5, _080AC5CC @ =0xfffffebc
+ adds r7, r4, r5
+ ldrb r0, [r7, 0x11]
+ bl sub_80B28F0
+ ldr r3, _080AC5D0 @ =gUnknown_02038570
+ ldrb r2, [r7, 0x11]
+ lsls r2, 6
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ adds r1, r3, 0
+ adds r1, 0x3C
+ adds r1, r2, r1
+ ldr r1, [r1]
+ adds r3, 0x38
+ adds r2, r3
+ ldr r2, [r2]
+ bl sub_80AE9FC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _080AC5D4 @ =gSprites
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r3, r0, r2
+ movs r1, 0x78
+ strh r1, [r3, 0x24]
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080AC5D8 @ =sub_80AD8FC
+ str r1, [r0]
+ ldr r0, _080AC5DC @ =gTasks
+ mov r4, r9
+ add r4, r8
+ lsls r4, 3
+ adds r4, r0
+ strh r5, [r4, 0xC]
+ ldr r1, _080AC5E0 @ =gUnknown_02024BE0
+ ldr r0, _080AC5E4 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ adds r0, r1
+ strb r5, [r0]
+ ldrb r0, [r7, 0x11]
+ bl sub_80B09E4
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_80B0BC4
+ strh r6, [r4, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC5C4: .4byte 0x02019348
+_080AC5C8: .4byte gUnknown_02024E84
+_080AC5CC: .4byte 0xfffffebc
+_080AC5D0: .4byte gUnknown_02038570
+_080AC5D4: .4byte gSprites
+_080AC5D8: .4byte sub_80AD8FC
+_080AC5DC: .4byte gTasks
+_080AC5E0: .4byte gUnknown_02024BE0
+_080AC5E4: .4byte gUnknown_02024C07
+_080AC5E8:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ mov r3, r12
+ adds r2, r0, r3
+ ldrb r5, [r2, 0xC]
+ ldr r1, _080AC62C @ =gSprites
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, _080AC630 @ =SpriteCallbackDummy
+ cmp r1, r0
+ beq _080AC60E
+ bl _080AD8CA
+_080AC60E:
+ lsls r0, r7, 2
+ ldr r1, _080AC634 @ =0x02019338
+ adds r0, r1
+ ldrb r1, [r0, 0x2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080AC622
+ bl _080AD8CA
+_080AC622:
+ movs r0, 0x5
+ strh r0, [r2, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC62C: .4byte gSprites
+_080AC630: .4byte SpriteCallbackDummy
+_080AC634: .4byte 0x02019338
+_080AC638:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080AC660 @ =0x02019260
+ adds r5, r0, r1
+ ldrb r1, [r5, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AC664
+ mov r4, r8
+ lsls r0, r4, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x21
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC660: .4byte 0x02019260
+_080AC664:
+ bl sub_80AF138
+ ldr r0, _080AC690 @ =gStringVar1
+ lsls r1, r7, 6
+ ldr r2, _080AC694 @ =gUnknown_02038572
+ adds r1, r2
+ bl StringCopy
+ ldrh r1, [r5, 0x6]
+ movs r0, 0xB1
+ lsls r0, 1
+ cmp r1, r0
+ bhi _080AC6A0
+ ldr r0, _080AC698 @ =gStringVar2
+ adds r2, r1, 0
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _080AC69C @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ b _080AC6B0
+ .align 2, 0
+_080AC690: .4byte gStringVar1
+_080AC694: .4byte gUnknown_02038572
+_080AC698: .4byte gStringVar2
+_080AC69C: .4byte gMoveNames
+_080AC6A0:
+ ldr r0, _080AC6E0 @ =gStringVar2
+ ldr r2, _080AC6E4 @ =gUnknown_083CC330
+ ldrb r1, [r5, 0xA]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+_080AC6B0:
+ ldr r4, _080AC6E8 @ =gStringVar4
+ ldr r1, _080AC6EC @ =gUnknown_083CAFD7
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080AC6F0 @ =gMenuWindow
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ ldr r1, _080AC6F4 @ =gTasks
+ mov r5, r8
+ lsls r0, r5, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x6
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC6E0: .4byte gStringVar2
+_080AC6E4: .4byte gUnknown_083CC330
+_080AC6E8: .4byte gStringVar4
+_080AC6EC: .4byte gUnknown_083CAFD7
+_080AC6F0: .4byte gMenuWindow
+_080AC6F4: .4byte gTasks
+_080AC6F8:
+ ldr r0, _080AC724 @ =gMenuWindow
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AC708
+ bl _080AD8CA
+_080AC708:
+ ldr r0, _080AC728 @ =0x02019204
+ adds r0, 0x5A
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _080AC72C @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x7
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC724: .4byte gMenuWindow
+_080AC728: .4byte 0x02019204
+_080AC72C: .4byte gTasks
+_080AC730:
+ ldrb r1, [r6, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x5C
+ adds r0, r1
+ ldrh r0, [r0, 0x6]
+ bl sub_80B2760
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r6, 0x11]
+ bl sub_80B2790
+ ldrb r0, [r6, 0x11]
+ bl sub_80B28F0
+ adds r0, r4, 0
+ bl sub_80B29B4
+ adds r0, r4, 0
+ bl move_anim_start_t1
+ ldr r1, _080AC778 @ =gTasks
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC778: .4byte gTasks
+_080AC77C:
+ ldr r0, _080AC7B8 @ =gUnknown_0202F7AC
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _080AC7BC @ =gUnknown_0202F7B1
+ ldrb r4, [r0]
+ cmp r4, 0
+ beq _080AC790
+ bl _080AD8CA
+_080AC790:
+ adds r0, r7, 0
+ bl unref_sub_80B28CC
+ ldr r1, _080AC7C0 @ =0x02019204
+ adds r0, r1, 0
+ adds r0, 0x5A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080AC7C8
+ ldr r0, _080AC7C4 @ =gTasks
+ mov r5, r8
+ lsls r1, r5, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ strh r4, [r1, 0x1C]
+ movs r0, 0x9
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC7B8: .4byte gUnknown_0202F7AC
+_080AC7BC: .4byte gUnknown_0202F7B1
+_080AC7C0: .4byte 0x02019204
+_080AC7C4: .4byte gTasks
+_080AC7C8:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r1, 0x5C
+ adds r0, r1
+ ldrb r1, [r0, 0x15]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _080AC7E2
+ adds r0, r7, 0
+ bl sub_80B03A8
+_080AC7E2:
+ bl unref_sub_80B20C4
+ ldr r0, _080AC7F0 @ =gTasks
+ mov r2, r8
+ lsls r1, r2, 2
+ b _080AC8E2
+ .align 2, 0
+_080AC7F0: .4byte gTasks
+_080AC7F4:
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ mov r4, r12
+ adds r2, r0, r4
+ ldrh r0, [r2, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ bgt _080AC812
+ bl _080AD8CA
+_080AC812:
+ movs r0, 0
+ strh r0, [r2, 0x1C]
+ movs r0, 0x7
+ strh r0, [r2, 0x8]
+ bl _080AD8CA
+_080AC81E:
+ mov r5, r8
+ lsls r3, r5, 2
+ adds r0, r3, r5
+ lsls r0, 3
+ mov r1, r12
+ adds r4, r0, r1
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ lsls r2, r7, 3
+ subs r0, r2, r7
+ lsls r0, 2
+ ldr r1, _080AC858 @ =0x02019260
+ adds r6, r0, r1
+ ldrb r0, [r6, 0x13]
+ mov r9, r3
+ mov r10, r2
+ adds r3, r1, 0
+ cmp r0, 0xFF
+ beq _080AC85C
+ adds r1, r0, 0
+ adds r0, r7, 0
+ bl sub_80B146C
+ movs r0, 0xFF
+ strb r0, [r6, 0x13]
+ movs r0, 0x18
+ strh r0, [r4, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC858: .4byte 0x02019260
+_080AC85C:
+ ldrb r0, [r6, 0x14]
+ cmp r0, 0xFF
+ beq _080AC8C4
+ movs r6, 0
+ cmp r6, r7
+ beq _080AC86E
+ ldrb r0, [r3, 0x13]
+ cmp r0, 0xFF
+ bne _080AC886
+_080AC86E:
+ adds r6, 0x1
+ cmp r6, 0x3
+ bgt _080AC886
+ cmp r6, r7
+ beq _080AC86E
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0xFF
+ beq _080AC86E
+_080AC886:
+ cmp r6, 0x4
+ bne _080AC8B4
+ mov r2, r10
+ subs r4, r2, r7
+ lsls r4, 2
+ adds r4, r3
+ ldrb r1, [r4, 0x14]
+ adds r0, r7, 0
+ bl sub_80B146C
+ movs r0, 0xFF
+ strb r0, [r4, 0x14]
+ ldr r1, _080AC8B0 @ =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x18
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC8B0: .4byte gTasks
+_080AC8B4:
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x30
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+_080AC8C4:
+ movs r0, 0x30
+ strh r0, [r4, 0x8]
+ bl _080AD8CA
+_080AC8CC:
+ ldr r0, _080AC8F0 @ =gMenuWindow
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AC8DC
+ bl _080AD8CA
+_080AC8DC:
+ ldr r0, _080AC8F4 @ =gTasks
+ mov r3, r8
+ lsls r1, r3, 2
+_080AC8E2:
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x17
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC8F0: .4byte gMenuWindow
+_080AC8F4: .4byte gTasks
+_080AC8F8:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080AC914 @ =0x02019260
+ adds r0, r1
+ ldrb r0, [r0, 0x11]
+ movs r3, 0x3
+ ands r3, r0
+ cmp r3, 0x1
+ bne _080AC918
+ movs r0, 0x5
+ bl sub_80B1710
+ b _080AC934
+ .align 2, 0
+_080AC914: .4byte 0x02019260
+_080AC918:
+ cmp r3, 0x2
+ bne _080AC924
+ movs r0, 0x6
+ bl sub_80B1710
+ b _080AC934
+_080AC924:
+ cmp r3, 0x3
+ beq _080AC92E
+ mov r4, r8
+ lsls r0, r4, 2
+ b _080AC95E
+_080AC92E:
+ movs r0, 0x7
+ bl sub_80B1710
+_080AC934:
+ ldr r0, _080AC948 @ =gTasks
+ mov r5, r8
+ lsls r1, r5, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x31
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC948: .4byte gTasks
+_080AC94C:
+ ldrb r1, [r6, 0x6]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080AC95A
+ bl _080AD8CA
+_080AC95A:
+ mov r1, r8
+ lsls r0, r1, 2
+_080AC95E:
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x2F
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+_080AC96C:
+ movs r0, 0x1
+ bl sub_80B1FD0
+ ldr r0, _080AC988 @ =gTasks
+ mov r2, r8
+ lsls r1, r2, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0xC
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC988: .4byte gTasks
+_080AC98C:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080AC9B8 @ =0x02019260
+ adds r0, r1
+ movs r3, 0x2
+ ldrsh r1, [r0, r3]
+ movs r0, 0
+ adds r2, r7, 0
+ bl sub_80AFBA0
+ ldr r1, _080AC9BC @ =gTasks
+ mov r4, r8
+ lsls r0, r4, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xD
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AC9B8: .4byte 0x02019260
+_080AC9BC: .4byte gTasks
+_080AC9C0:
+ ldrb r0, [r6, 0x11]
+ lsls r0, 2
+ movs r5, 0x9A
+ lsls r5, 1
+ adds r1, r6, r5
+ adds r0, r1
+ ldrb r1, [r0, 0x2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080AC9DA
+ bl _080AD8CA
+_080AC9DA:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x23
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+_080AC9EC:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080ACA1C @ =0x02019260
+ adds r0, r1
+ ldrb r1, [r0, 0x10]
+ movs r0, 0x30
+ ands r0, r1
+ cmp r0, 0x10
+ bne _080ACA06
+ movs r0, 0x8
+ bl sub_80B1710
+_080ACA06:
+ ldr r0, _080ACA20 @ =gTasks
+ mov r2, r8
+ lsls r1, r2, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x24
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACA1C: .4byte 0x02019260
+_080ACA20: .4byte gTasks
+_080ACA24:
+ ldrb r1, [r6, 0x6]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080ACA32
+ bl _080AD8CA
+_080ACA32:
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x25
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+_080ACA44:
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_80AEE54
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ACA70
+ ldr r1, _080ACA6C @ =gTasks
+ mov r4, r8
+ lsls r0, r4, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ movs r1, 0x26
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACA6C: .4byte gTasks
+_080ACA70:
+ ldr r0, _080ACA80 @ =gTasks
+ mov r5, r8
+ lsls r1, r5, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ b _080ACAA6
+ .align 2, 0
+_080ACA80: .4byte gTasks
+_080ACA84:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ mov r2, r12
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ strh r0, [r1, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bgt _080ACAA2
+ bl _080AD8CA
+_080ACAA2:
+ movs r0, 0
+ strh r0, [r1, 0x1C]
+_080ACAA6:
+ movs r0, 0x32
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+_080ACAAE:
+ adds r0, r7, 0
+ bl sub_80AF038
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ACAC0
+ movs r0, 0x63
+ bl PlaySE
+_080ACAC0:
+ ldr r0, _080ACAD4 @ =gTasks
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x19
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACAD4: .4byte gTasks
+_080ACAD8:
+ mov r4, r8
+ lsls r0, r4, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0
+ strh r1, [r0, 0xA]
+ movs r1, 0x1A
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+_080ACAEE:
+ movs r2, 0
+ movs r4, 0
+ mov r5, r8
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ add r0, r12
+ movs r3, 0xA
+ ldrsh r6, [r0, r3]
+ mov r9, r1
+ cmp r6, 0x3
+ bgt _080ACB58
+ ldr r3, _080ACB24 @ =gUnknown_02038696
+ ldr r1, _080ACB28 @ =0x02019260
+_080ACB0A:
+ movs r4, 0
+ movs r2, 0
+ cmp r4, r7
+ beq _080ACB2C
+ ldrb r0, [r3]
+ cmp r0, r6
+ bne _080ACB2C
+ ldrb r0, [r1, 0x13]
+ cmp r0, 0xFF
+ beq _080ACB2C
+ movs r4, 0x1
+ b _080ACB60
+ .align 2, 0
+_080ACB24: .4byte gUnknown_02038696
+_080ACB28: .4byte 0x02019260
+_080ACB2C:
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _080ACB4E
+ cmp r2, r7
+ beq _080ACB2C
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, r6
+ bne _080ACB2C
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0xFF
+ beq _080ACB2C
+ movs r4, 0x1
+_080ACB4E:
+ cmp r4, 0
+ bne _080ACB60
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080ACB0A
+_080ACB58:
+ lsls r0, r4, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080ACB98
+_080ACB60:
+ mov r5, r9
+ add r5, r8
+ lsls r5, 3
+ add r5, r12
+ ldr r0, _080ACB90 @ =gUnknown_02038696
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ strh r0, [r5, 0xA]
+ lsls r0, r2, 24
+ lsrs r0, 24
+ lsls r4, r2, 3
+ subs r4, r2
+ lsls r4, 2
+ ldr r1, _080ACB94 @ =0x02019260
+ adds r4, r1
+ ldrb r1, [r4, 0x13]
+ bl sub_80B146C
+ movs r0, 0xFF
+ strb r0, [r4, 0x13]
+ movs r0, 0x1B
+ strh r0, [r5, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACB90: .4byte gUnknown_02038696
+_080ACB94: .4byte 0x02019260
+_080ACB98:
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ strh r1, [r0, 0xA]
+ strh r1, [r0, 0x1C]
+ movs r1, 0x33
+ strh r1, [r0, 0x8]
+ bl sub_80AF120
+ bl _080AD8CA
+_080ACBB0:
+ ldr r0, _080ACBD4 @ =gMenuWindow
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ACBC0
+ bl _080AD8CA
+_080ACBC0:
+ ldr r0, _080ACBD8 @ =gTasks
+ mov r4, r8
+ lsls r1, r4, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1C
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACBD4: .4byte gMenuWindow
+_080ACBD8: .4byte gTasks
+_080ACBDC:
+ movs r6, 0
+ mov r5, r8
+ lsls r0, r5, 2
+ adds r1, r0, r5
+ lsls r1, 3
+ add r1, r12
+ movs r3, 0xA
+ ldrsh r2, [r1, r3]
+ ldr r1, _080ACC38 @ =gUnknown_02038696
+ mov r9, r0
+ ldr r3, _080ACC3C @ =0x02019260
+ adds r5, r1, 0
+ ldrb r4, [r5]
+ cmp r2, r4
+ beq _080ACC08
+ adds r1, r2, 0
+ adds r2, r5, 0
+_080ACBFE:
+ adds r6, 0x1
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _080ACBFE
+_080ACC08:
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0xE]
+ ldrh r0, [r0, 0x2]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ negs r1, r1
+ lsls r2, r6, 24
+ lsrs r2, 24
+ bl sub_80AFBA0
+ ldr r1, _080ACC40 @ =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1D
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACC38: .4byte gUnknown_02038696
+_080ACC3C: .4byte 0x02019260
+_080ACC40: .4byte gTasks
+_080ACC44:
+ movs r6, 0
+ mov r5, r8
+ lsls r0, r5, 2
+ adds r1, r0, r5
+ lsls r1, 3
+ add r1, r12
+ movs r2, 0xA
+ ldrsh r3, [r1, r2]
+ ldr r1, _080ACC90 @ =gUnknown_02038696
+ mov r9, r0
+ ldr r2, _080ACC94 @ =0x02019338
+ adds r5, r1, 0
+ ldrb r4, [r5]
+ cmp r3, r4
+ beq _080ACC6C
+_080ACC62:
+ adds r6, 0x1
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ cmp r3, r0
+ bne _080ACC62
+_080ACC6C:
+ lsls r0, r6, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080ACC7E
+ bl _080AD8CA
+_080ACC7E:
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x27
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACC90: .4byte gUnknown_02038696
+_080ACC94: .4byte 0x02019338
+_080ACC98:
+ movs r6, 0
+ mov r5, r8
+ lsls r0, r5, 2
+ adds r1, r0, r5
+ lsls r1, 3
+ add r1, r12
+ movs r3, 0xA
+ ldrsh r2, [r1, r3]
+ ldr r1, _080ACCE8 @ =gUnknown_02038696
+ mov r9, r0
+ adds r5, r1, 0
+ ldrb r4, [r5]
+ cmp r2, r4
+ beq _080ACCC2
+ adds r1, r2, 0
+ adds r2, r5, 0
+_080ACCB8:
+ adds r6, 0x1
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _080ACCB8
+_080ACCC2:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl sub_80AEE54
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ACCF0
+ ldr r1, _080ACCEC @ =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ movs r1, 0x28
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACCE8: .4byte gUnknown_02038696
+_080ACCEC: .4byte gTasks
+_080ACCF0:
+ ldr r0, _080ACCFC @ =gTasks
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ b _080ACD22
+ .align 2, 0
+_080ACCFC: .4byte gTasks
+_080ACD00:
+ mov r5, r8
+ lsls r0, r5, 2
+ add r0, r8
+ lsls r0, 3
+ mov r2, r12
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ strh r0, [r1, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bgt _080ACD1E
+ bl _080AD8CA
+_080ACD1E:
+ movs r0, 0
+ strh r0, [r1, 0x1C]
+_080ACD22:
+ movs r0, 0x1E
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+_080ACD2A:
+ movs r6, 0
+ ldr r2, _080ACD78 @ =gUnknown_02038696
+ ldrb r3, [r2]
+ mov r4, r8
+ lsls r1, r4, 2
+ adds r0, r1, r4
+ lsls r0, 3
+ mov r5, r12
+ adds r4, r0, r5
+ movs r5, 0xA
+ ldrsh r0, [r4, r5]
+ mov r9, r1
+ adds r5, r2, 0
+ cmp r3, r0
+ beq _080ACD5E
+ adds r3, r5, 0
+ adds r2, r4, 0
+_080ACD4C:
+ adds r6, 0x1
+ cmp r6, 0x3
+ bgt _080ACD5E
+ adds r0, r6, r3
+ ldrb r1, [r0]
+ movs r4, 0xA
+ ldrsh r0, [r2, r4]
+ cmp r1, r0
+ bne _080ACD4C
+_080ACD5E:
+ lsls r4, r6, 24
+ lsrs r0, r4, 24
+ bl sub_80AF038
+ lsls r0, 24
+ adds r5, r4, 0
+ cmp r0, 0
+ beq _080ACD7C
+ movs r0, 0x63
+ bl PlaySE
+ b _080ACD82
+ .align 2, 0
+_080ACD78: .4byte gUnknown_02038696
+_080ACD7C:
+ movs r0, 0x64
+ bl PlaySE
+_080ACD82:
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ ldr r1, _080ACDC0 @ =0x02019260
+ adds r4, r0, r1
+ ldrb r1, [r4, 0x15]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080ACDA6
+ lsrs r0, r5, 24
+ bl sub_80B03A8
+ ldrb r1, [r4, 0x15]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x15]
+_080ACDA6:
+ ldr r0, _080ACDC4 @ =gTasks
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ movs r0, 0x1A
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACDC0: .4byte 0x02019260
+_080ACDC4: .4byte gTasks
+_080ACDC8:
+ mov r5, r8
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ mov r1, r12
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ mov r9, r2
+ cmp r0, 0x9
+ bgt _080ACDE8
+ bl _080AD8CA
+_080ACDE8:
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080ACE48 @ =0x02019260
+ adds r2, r0, r1
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ bne _080ACE0A
+ ldrb r1, [r2, 0x11]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080ACE36
+_080ACE0A:
+ bl sub_80AF138
+ ldr r0, _080ACE4C @ =gStringVar1
+ lsls r1, r7, 6
+ ldr r2, _080ACE50 @ =gUnknown_02038572
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _080ACE54 @ =gStringVar4
+ ldr r1, _080ACE58 @ =gUnknown_083CC103
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080ACE5C @ =gMenuWindow
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+_080ACE36:
+ ldr r0, _080ACE60 @ =gTasks
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x34
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACE48: .4byte 0x02019260
+_080ACE4C: .4byte gStringVar1
+_080ACE50: .4byte gUnknown_02038572
+_080ACE54: .4byte gStringVar4
+_080ACE58: .4byte gUnknown_083CC103
+_080ACE5C: .4byte gMenuWindow
+_080ACE60: .4byte gTasks
+_080ACE64:
+ ldr r0, _080ACE9C @ =gMenuWindow
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ACE74
+ bl _080AD8CA
+_080ACE74:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080ACEA0 @ =0x02019260
+ adds r0, r1
+ ldrb r1, [r0, 0x15]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080ACEA8
+ ldr r0, _080ACEA4 @ =gTasks
+ mov r2, r8
+ lsls r1, r2, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x11
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACE9C: .4byte gMenuWindow
+_080ACEA0: .4byte 0x02019260
+_080ACEA4: .4byte gTasks
+_080ACEA8:
+ ldr r0, _080ACEBC @ =gTasks
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0xE
+ strh r0, [r1, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACEBC: .4byte gTasks
+_080ACEC0:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080ACEE4 @ =0x02019260
+ adds r0, r1
+ ldrb r4, [r0, 0x16]
+ lsls r4, 24
+ lsrs r5, r4, 24
+ cmp r5, 0
+ beq _080ACF48
+ bl sub_80AF138
+ asrs r0, r4, 24
+ cmp r0, 0x1
+ bne _080ACEF0
+ ldr r0, _080ACEE8 @ =gMenuWindow
+ ldr r1, _080ACEEC @ =gUnknown_083CBD79
+ b _080ACEF8
+ .align 2, 0
+_080ACEE4: .4byte 0x02019260
+_080ACEE8: .4byte gMenuWindow
+_080ACEEC: .4byte gUnknown_083CBD79
+_080ACEF0:
+ cmp r0, 0x2
+ bne _080ACF10
+ ldr r0, _080ACF08 @ =gMenuWindow
+ ldr r1, _080ACF0C @ =gUnknown_083CBD9D
+_080ACEF8:
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x1
+ bl sub_8002EB0
+ b _080ACF22
+ .align 2, 0
+_080ACF08: .4byte gMenuWindow
+_080ACF0C: .4byte gUnknown_083CBD9D
+_080ACF10:
+ ldr r0, _080ACF3C @ =gMenuWindow
+ ldr r1, _080ACF40 @ =gUnknown_083CBDC6
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x1
+ bl sub_8002EB0
+_080ACF22:
+ movs r0, 0x3
+ bl sub_80B1710
+ ldr r1, _080ACF44 @ =gTasks
+ mov r4, r8
+ lsls r0, r4, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ b _080ACF88
+ .align 2, 0
+_080ACF3C: .4byte gMenuWindow
+_080ACF40: .4byte gUnknown_083CBDC6
+_080ACF44: .4byte gTasks
+_080ACF48:
+ bl sub_80AF138
+ ldr r0, _080ACF90 @ =gStringVar1
+ lsls r1, r7, 6
+ ldr r2, _080ACF94 @ =gUnknown_02038572
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _080ACF98 @ =gStringVar4
+ ldr r1, _080ACF9C @ =gUnknown_083CBD52
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080ACFA0 @ =gMenuWindow
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ movs r0, 0x2
+ bl sub_80B1710
+ ldr r1, _080ACFA4 @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x1C]
+_080ACF88:
+ movs r1, 0x2D
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACF90: .4byte gStringVar1
+_080ACF94: .4byte gUnknown_02038572
+_080ACF98: .4byte gStringVar4
+_080ACF9C: .4byte gUnknown_083CBD52
+_080ACFA0: .4byte gMenuWindow
+_080ACFA4: .4byte gTasks
+_080ACFA8:
+ ldrb r1, [r6, 0x6]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080ACFB6
+ bl _080AD8CA
+_080ACFB6:
+ ldrb r0, [r6, 0x11]
+ bl sub_80B09B0
+ ldr r1, _080ACFD0 @ =gTasks
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xF
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080ACFD0: .4byte gTasks
+_080ACFD4:
+ ldr r0, _080AD034 @ =gMenuWindow
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ACFE4
+ bl _080AD8CA
+_080ACFE4:
+ ldr r1, _080AD038 @ =gTasks
+ mov r4, r8
+ lsls r0, r4, 2
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x32
+ bgt _080AD002
+ bl _080AD8CA
+_080AD002:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080AD03C @ =0x02019260
+ adds r6, r0, r1
+ ldrb r1, [r6, 0x15]
+ movs r5, 0x10
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080AD02C
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ ldrb r1, [r6, 0x17]
+ adds r2, r7, 0
+ bl sub_80AFBA0
+ ldrh r0, [r6, 0x2]
+ ldrb r2, [r6, 0x17]
+ adds r0, r2
+ strh r0, [r6, 0x2]
+_080AD02C:
+ strh r5, [r4, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AD034: .4byte gMenuWindow
+_080AD038: .4byte gTasks
+_080AD03C: .4byte 0x02019260
+_080AD040:
+ lsls r0, r7, 2
+ ldr r1, _080AD06C @ =0x02019338
+ adds r0, r1
+ ldrb r1, [r0, 0x2]
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080AD058
+ bl _080AD8CA
+_080AD058:
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ strh r1, [r0, 0x1C]
+ movs r1, 0x11
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AD06C: .4byte 0x02019338
+_080AD070:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080AD0CC @ =0x02019260
+ adds r0, r1
+ ldrb r1, [r0, 0x15]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD0E8
+ bl sub_80AF138
+ ldr r0, _080AD0D0 @ =gStringVar1
+ lsls r1, r7, 6
+ ldr r2, _080AD0D4 @ =gUnknown_02038572
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _080AD0D8 @ =gStringVar4
+ ldr r1, _080AD0DC @ =gUnknown_083CC075
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080AD0E0 @ =gMenuWindow
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ ldr r0, _080AD0E4 @ =gTasks
+ mov r5, r8
+ lsls r4, r5, 2
+ add r4, r8
+ lsls r4, 3
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ bl sub_80B1710
+ movs r0, 0x2E
+ strh r0, [r4, 0x8]
+ bl _080AD8CA
+ .align 2, 0
+_080AD0CC: .4byte 0x02019260
+_080AD0D0: .4byte gStringVar1
+_080AD0D4: .4byte gUnknown_02038572
+_080AD0D8: .4byte gStringVar4
+_080AD0DC: .4byte gUnknown_083CC075
+_080AD0E0: .4byte gMenuWindow
+_080AD0E4: .4byte gTasks
+_080AD0E8:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x29
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+_080AD0FA:
+ ldrb r1, [r6, 0x6]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD108
+ bl _080AD8CA
+_080AD108:
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x13
+ strh r1, [r0, 0x8]
+ bl _080AD8CA
+_080AD11A:
+ ldr r0, _080AD15C @ =gMenuWindow
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AD12A
+ bl _080AD8CA
+_080AD12A:
+ lsls r4, r7, 3
+ subs r4, r7
+ lsls r4, 2
+ ldr r0, _080AD160 @ =0x02019260
+ adds r4, r0
+ movs r3, 0x2
+ ldrsh r0, [r4, r3]
+ ldrb r1, [r4, 0x18]
+ negs r1, r1
+ adds r2, r7, 0
+ bl sub_80AFBA0
+ ldrb r1, [r4, 0x18]
+ ldrh r0, [r4, 0x2]
+ subs r0, r1
+ strh r0, [r4, 0x2]
+ ldr r1, _080AD164 @ =gTasks
+ mov r4, r8
+ lsls r0, r4, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x12
+ strh r1, [r0, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD15C: .4byte gMenuWindow
+_080AD160: .4byte 0x02019260
+_080AD164: .4byte gTasks
+_080AD168:
+ bl sub_80B0D7C
+ lsls r0, r7, 2
+ ldr r1, _080AD19C @ =0x02019338
+ adds r0, r1
+ ldrb r1, [r0, 0x2]
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ beq _080AD182
+ b _080AD8CA
+_080AD182:
+ ldr r0, _080AD1A0 @ =gTasks
+ mov r5, r8
+ lsls r4, r5, 2
+ add r4, r8
+ lsls r4, 3
+ adds r4, r0
+ strh r6, [r4, 0x1C]
+ bl sub_80AF138
+ movs r0, 0x29
+ strh r0, [r4, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD19C: .4byte 0x02019338
+_080AD1A0: .4byte gTasks
+_080AD1A4:
+ ldr r2, _080AD1CC @ =0x02019328
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _080AD1D0
+ ldr r0, [r1]
+ lsls r0, 20
+ lsrs r0, 29
+ cmp r7, r0
+ beq _080AD1D0
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x39
+ strh r1, [r0, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD1CC: .4byte 0x02019328
+_080AD1D0:
+ ldrb r4, [r1]
+ lsls r2, r7, 3
+ subs r0, r2, r7
+ lsls r0, 2
+ subs r1, 0xC8
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x11]
+ movs r0, 0x10
+ ands r0, r1
+ mov r10, r2
+ cmp r0, 0
+ beq _080AD204
+ movs r4, 0x1
+ ldr r0, _080AD1FC @ =gStringVar3
+ ldrh r2, [r5, 0x6]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _080AD200 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ b _080AD21E
+ .align 2, 0
+_080AD1FC: .4byte gStringVar3
+_080AD200: .4byte gMoveNames
+_080AD204:
+ ldr r0, _080AD270 @ =gStringVar3
+ ldr r3, _080AD274 @ =gUnknown_083CC2D8
+ ldr r2, _080AD278 @ =gContestMoves
+ ldrh r1, [r5, 0x6]
+ lsls r1, 3
+ adds r1, r2
+ ldrb r1, [r1, 0x1]
+ lsls r1, 29
+ lsrs r1, 27
+ adds r1, r3
+ ldr r1, [r1]
+ bl StringCopy
+_080AD21E:
+ lsls r0, r4, 24
+ cmp r0, 0
+ ble _080AD23A
+ mov r2, r10
+ subs r0, r2, r7
+ lsls r0, 2
+ ldr r1, _080AD27C @ =0x02019260
+ adds r0, r1
+ ldrb r1, [r0, 0x15]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD23A
+ movs r4, 0
+_080AD23A:
+ bl sub_80AF138
+ ldr r0, _080AD280 @ =gStringVar1
+ lsls r1, r7, 6
+ ldr r2, _080AD284 @ =gUnknown_02038572
+ adds r1, r2
+ bl StringCopy
+ ldr r3, _080AD288 @ =0x02019204
+ ldrb r0, [r3, 0x13]
+ lsls r1, r4, 24
+ asrs r2, r1, 24
+ adds r0, r2, r0
+ strb r0, [r3, 0x13]
+ lsls r0, 24
+ adds r4, r1, 0
+ cmp r0, 0
+ bge _080AD262
+ movs r0, 0
+ strb r0, [r3, 0x13]
+_080AD262:
+ cmp r2, 0
+ bne _080AD290
+ ldr r0, _080AD28C @ =gTasks
+ mov r3, r8
+ lsls r1, r3, 2
+ b _080AD6EC
+ .align 2, 0
+_080AD270: .4byte gStringVar3
+_080AD274: .4byte gUnknown_083CC2D8
+_080AD278: .4byte gContestMoves
+_080AD27C: .4byte 0x02019260
+_080AD280: .4byte gStringVar1
+_080AD284: .4byte gUnknown_02038572
+_080AD288: .4byte 0x02019204
+_080AD28C: .4byte gTasks
+_080AD290:
+ cmp r2, 0
+ bge _080AD2A8
+ ldr r0, _080AD2A0 @ =gStringVar4
+ ldr r1, _080AD2A4 @ =gUnknown_083CC0BC
+ bl StringExpandPlaceholders
+ b _080AD2D0
+ .align 2, 0
+_080AD2A0: .4byte gStringVar4
+_080AD2A4: .4byte gUnknown_083CC0BC
+_080AD2A8:
+ cmp r2, 0
+ ble _080AD2C8
+ movs r0, 0x13
+ ldrsb r0, [r3, r0]
+ cmp r0, 0x4
+ bgt _080AD2C8
+ ldr r0, _080AD2C0 @ =gStringVar4
+ ldr r1, _080AD2C4 @ =gUnknown_083CC0A0
+ bl StringExpandPlaceholders
+ b _080AD2D0
+ .align 2, 0
+_080AD2C0: .4byte gStringVar4
+_080AD2C4: .4byte gUnknown_083CC0A0
+_080AD2C8:
+ ldr r0, _080AD300 @ =gStringVar4
+ ldr r1, _080AD304 @ =gUnknown_083CC0E3
+ bl StringExpandPlaceholders
+_080AD2D0:
+ ldr r0, _080AD308 @ =gMenuWindow
+ ldr r1, _080AD300 @ =gStringVar4
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x1
+ bl sub_8002EB0
+ ldr r1, _080AD30C @ =gTasks
+ mov r5, r8
+ lsls r0, r5, 2
+ add r0, r8
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r0, 0
+ strh r0, [r1, 0x1C]
+ strh r0, [r1, 0x1E]
+ cmp r4, 0
+ bge _080AD310
+ movs r0, 0x35
+ strh r0, [r1, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD300: .4byte gStringVar4
+_080AD304: .4byte gUnknown_083CC0E3
+_080AD308: .4byte gMenuWindow
+_080AD30C: .4byte gTasks
+_080AD310:
+ movs r0, 0x36
+ strh r0, [r1, 0x8]
+ b _080AD8CA
+_080AD316:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ mov r2, r12
+ adds r4, r0, r2
+ movs r3, 0x1C
+ ldrsh r2, [r4, r3]
+ cmp r2, 0x1
+ beq _080AD354
+ cmp r2, 0x1
+ bgt _080AD334
+ cmp r2, 0
+ beq _080AD33E
+ b _080AD8CA
+_080AD334:
+ cmp r2, 0x2
+ beq _080AD37C
+ cmp r2, 0x3
+ beq _080AD3B0
+ b _080AD8CA
+_080AD33E:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x1
+ bl sub_80B1EA8
+ ldr r0, _080AD350 @ =0x00000187
+ bl PlayFanfare
+ b _080AD3A8
+ .align 2, 0
+_080AD350: .4byte 0x00000187
+_080AD354:
+ ldrb r0, [r6, 0x7]
+ ands r2, r0
+ cmp r2, 0
+ beq _080AD35E
+ b _080AD8CA
+_080AD35E:
+ ldr r0, _080AD378 @ =gMenuWindow
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AD36C
+ b _080AD8CA
+_080AD36C:
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_80B1CBC
+ b _080AD3A8
+ .align 2, 0
+_080AD378: .4byte gMenuWindow
+_080AD37C:
+ ldrb r1, [r6, 0x6]
+ movs r0, 0x20
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080AD38C
+ b _080AD8CA
+_080AD38C:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ bgt _080AD39C
+ b _080AD8CA
+_080AD39C:
+ strh r2, [r4, 0x1E]
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r1, 0
+ bl sub_80B1EA8
+_080AD3A8:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ b _080AD8CA
+_080AD3B0:
+ ldr r0, _080AD3CC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080AD3C2
+ b _080AD8CA
+_080AD3C2:
+ strh r0, [r4, 0x1C]
+ strh r0, [r4, 0x1E]
+ movs r0, 0x2B
+ strh r0, [r4, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD3CC: .4byte gPaletteFade
+_080AD3D0:
+ mov r4, r8
+ lsls r1, r4, 2
+ adds r0, r1, r4
+ lsls r0, 3
+ add r0, r12
+ movs r5, 0x1C
+ ldrsh r0, [r0, r5]
+ mov r9, r1
+ cmp r0, 0x4
+ bls _080AD3E6
+ b _080AD8CA
+_080AD3E6:
+ lsls r0, 2
+ ldr r1, _080AD3F0 @ =_080AD3F4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AD3F0: .4byte _080AD3F4
+ .align 2, 0
+_080AD3F4:
+ .4byte _080AD408
+ .4byte _080AD420
+ .4byte _080AD43E
+ .4byte _080AD4A0
+ .4byte _080AD4EC
+_080AD408:
+ ldr r0, _080AD41C @ =gMenuWindow
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AD416
+ b _080AD8CA
+_080AD416:
+ movs r0, 0x1
+ movs r1, 0x1
+ b _080AD4C8
+ .align 2, 0
+_080AD41C: .4byte gMenuWindow
+_080AD420:
+ ldrb r1, [r6, 0x7]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD42C
+ b _080AD8CA
+_080AD42C:
+ bl sub_80B1DDC
+ movs r0, 0xDF
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_80B1CBC
+ b _080AD4CC
+_080AD43E:
+ ldrb r1, [r6, 0x6]
+ movs r0, 0x20
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080AD44E
+ b _080AD8CA
+_080AD44E:
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ mov r1, r12
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ bgt _080AD468
+ b _080AD8CA
+_080AD468:
+ strh r2, [r3, 0x1E]
+ lsls r4, r7, 3
+ subs r4, r7
+ lsls r4, 2
+ adds r0, r6, 0
+ adds r0, 0x5C
+ adds r4, r0
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ movs r1, 0x92
+ lsls r1, 1
+ adds r5, r6, r1
+ movs r1, 0x2
+ ldrsb r1, [r5, r1]
+ adds r2, r7, 0
+ str r3, [sp, 0x4]
+ bl sub_80AFBA0
+ movs r0, 0x2
+ ldrsb r0, [r5, r0]
+ ldrh r2, [r4, 0x2]
+ adds r0, r2
+ strh r0, [r4, 0x2]
+ ldr r3, [sp, 0x4]
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ b _080AD8CA
+_080AD4A0:
+ lsls r0, r7, 2
+ ldr r2, _080AD4E0 @ =0x02019338
+ adds r0, r2
+ ldrb r1, [r0, 0x2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD4B2
+ b _080AD8CA
+_080AD4B2:
+ ldr r3, _080AD4E4 @ =0xfffffecc
+ adds r0, r2, r3
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD4C2
+ b _080AD8CA
+_080AD4C2:
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0x1
+_080AD4C8:
+ bl sub_80B1EA8
+_080AD4CC:
+ ldr r0, _080AD4E8 @ =gTasks
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ strh r0, [r1, 0x1C]
+ b _080AD8CA
+ .align 2, 0
+_080AD4E0: .4byte 0x02019338
+_080AD4E4: .4byte 0xfffffecc
+_080AD4E8: .4byte gTasks
+_080AD4EC:
+ ldr r0, _080AD510 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080AD4FE
+ b _080AD8CA
+_080AD4FE:
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ strh r1, [r0, 0x1C]
+ strh r1, [r0, 0x1E]
+ movs r1, 0x2B
+ strh r1, [r0, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD510: .4byte gPaletteFade
+_080AD514:
+ lsls r0, r7, 2
+ ldr r1, _080AD534 @ =0x02019338
+ adds r0, r1
+ ldrb r1, [r0, 0x2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD526
+ b _080AD8CA
+_080AD526:
+ bl sub_80AF138
+ ldr r0, _080AD538 @ =gTasks
+ mov r4, r8
+ lsls r1, r4, 2
+ b _080AD6EC
+ .align 2, 0
+_080AD534: .4byte 0x02019338
+_080AD538: .4byte gTasks
+_080AD53C:
+ bl sub_80AF138
+ ldr r0, _080AD5A8 @ =gStringVar3
+ ldr r4, _080AD5AC @ =0x02019328
+ ldr r1, [r4]
+ lsls r1, 20
+ lsrs r1, 29
+ lsls r1, 6
+ ldr r5, _080AD5B0 @ =gUnknown_02038572
+ adds r1, r5
+ bl StringCopy
+ ldr r0, _080AD5B4 @ =gStringVar1
+ lsls r1, r7, 6
+ adds r1, r5
+ bl StringCopy
+ ldr r0, _080AD5B8 @ =gStringVar2
+ lsls r1, r7, 3
+ subs r1, r7
+ lsls r1, 2
+ subs r4, 0xC8
+ adds r1, r4
+ ldrh r2, [r1, 0x6]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _080AD5BC @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _080AD5C0 @ =gStringVar4
+ ldr r1, _080AD5C4 @ =gUnknown_083CC14A
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080AD5C8 @ =gMenuWindow
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ ldr r1, _080AD5CC @ =gTasks
+ mov r5, r8
+ lsls r0, r5, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3A
+ strh r1, [r0, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD5A8: .4byte gStringVar3
+_080AD5AC: .4byte 0x02019328
+_080AD5B0: .4byte gUnknown_02038572
+_080AD5B4: .4byte gStringVar1
+_080AD5B8: .4byte gStringVar2
+_080AD5BC: .4byte gMoveNames
+_080AD5C0: .4byte gStringVar4
+_080AD5C4: .4byte gUnknown_083CC14A
+_080AD5C8: .4byte gMenuWindow
+_080AD5CC: .4byte gTasks
+_080AD5D0:
+ ldr r5, _080AD614 @ =gMenuWindow
+ adds r0, r5, 0
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AD5E0
+ b _080AD8CA
+_080AD5E0:
+ bl sub_80AF138
+ ldr r4, _080AD618 @ =gStringVar4
+ ldr r1, _080AD61C @ =gUnknown_083CC16E
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r0, 0xF
+ str r0, [sp]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ ldr r1, _080AD620 @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3B
+ strh r1, [r0, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD614: .4byte gMenuWindow
+_080AD618: .4byte gStringVar4
+_080AD61C: .4byte gUnknown_083CC16E
+_080AD620: .4byte gTasks
+_080AD624:
+ ldr r0, _080AD640 @ =gMenuWindow
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AD632
+ b _080AD8CA
+_080AD632:
+ bl sub_80AF138
+ ldr r0, _080AD644 @ =gTasks
+ mov r3, r8
+ lsls r1, r3, 2
+ b _080AD6EC
+ .align 2, 0
+_080AD640: .4byte gMenuWindow
+_080AD644: .4byte gTasks
+_080AD648:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _080AD6B4 @ =0x02019260
+ adds r4, r0, r1
+ ldrb r1, [r4, 0x15]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD664
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x15]
+_080AD664:
+ adds r0, r7, 0
+ bl sub_80B09B0
+ ldr r0, _080AD6B8 @ =gStringVar1
+ lsls r1, r7, 6
+ ldr r2, _080AD6BC @ =gUnknown_02038572
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080AD6C0 @ =gStringVar2
+ ldrh r2, [r4, 0x6]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _080AD6C4 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _080AD6C8 @ =gStringVar4
+ ldr r1, _080AD6CC @ =gUnknown_083CBF60
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080AD6D0 @ =gMenuWindow
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ ldr r1, _080AD6D4 @ =gTasks
+ mov r4, r8
+ lsls r0, r4, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x22
+ strh r1, [r0, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD6B4: .4byte 0x02019260
+_080AD6B8: .4byte gStringVar1
+_080AD6BC: .4byte gUnknown_02038572
+_080AD6C0: .4byte gStringVar2
+_080AD6C4: .4byte gMoveNames
+_080AD6C8: .4byte gStringVar4
+_080AD6CC: .4byte gUnknown_083CBF60
+_080AD6D0: .4byte gMenuWindow
+_080AD6D4: .4byte gTasks
+_080AD6D8:
+ ldr r0, _080AD6F8 @ =gMenuWindow
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AD6E6
+ b _080AD8CA
+_080AD6E6:
+ ldr r0, _080AD6FC @ =gTasks
+ mov r5, r8
+ lsls r1, r5, 2
+_080AD6EC:
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x37
+ strh r0, [r1, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD6F8: .4byte gMenuWindow
+_080AD6FC: .4byte gTasks
+_080AD700:
+ bl sub_80B1BDC
+ ldr r0, _080AD718 @ =gTasks
+ mov r2, r8
+ lsls r1, r2, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x38
+ strh r0, [r1, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD718: .4byte gTasks
+_080AD71C:
+ ldrb r1, [r6, 0x6]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080AD72C
+ b _080AD8CA
+_080AD72C:
+ movs r0, 0x13
+ ldrsb r0, [r6, r0]
+ cmp r0, 0x4
+ ble _080AD73A
+ strb r1, [r6, 0x13]
+ bl sub_80B1928
+_080AD73A:
+ ldr r0, _080AD74C @ =gTasks
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0xA
+ strh r0, [r1, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD74C: .4byte gTasks
+_080AD750:
+ mov r4, r8
+ lsls r2, r4, 2
+ add r2, r8
+ lsls r2, 3
+ add r2, r12
+ ldrb r5, [r2, 0xC]
+ ldr r1, _080AD774 @ =gSprites
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080AD778 @ =sub_80AD92C
+ str r1, [r0]
+ movs r0, 0xB
+ strh r0, [r2, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD774: .4byte gSprites
+_080AD778: .4byte sub_80AD92C
+_080AD77C:
+ mov r5, r8
+ lsls r0, r5, 2
+ add r0, r8
+ lsls r0, 3
+ mov r1, r12
+ adds r4, r0, r1
+ ldrb r5, [r4, 0xC]
+ ldr r1, _080AD7B4 @ =gSprites
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r6, r0, r1
+ adds r0, r6, 0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _080AD7A2
+ b _080AD8CA
+_080AD7A2:
+ adds r0, r6, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r6, 0
+ bl DestroySprite
+ movs r0, 0x14
+ strh r0, [r4, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD7B4: .4byte gSprites
+_080AD7B8:
+ movs r6, 0
+ mov r2, r8
+ lsls r2, 2
+ mov r9, r2
+_080AD7C0:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl sub_80B0CDC
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080AD7C0
+ ldr r1, _080AD7E4 @ =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ movs r1, 0x15
+ strh r1, [r0, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD7E4: .4byte gTasks
+_080AD7E8:
+ bl sub_80AF138
+ ldr r0, _080AD828 @ =gStringVar1
+ lsls r1, r7, 6
+ ldr r2, _080AD82C @ =gUnknown_02038572
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _080AD830 @ =gStringVar4
+ ldr r1, _080AD834 @ =gUnknown_083CB00D
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080AD838 @ =gMenuWindow
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ ldr r1, _080AD83C @ =gTasks
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x20
+ strh r1, [r0, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD828: .4byte gStringVar1
+_080AD82C: .4byte gUnknown_02038572
+_080AD830: .4byte gStringVar4
+_080AD834: .4byte gUnknown_083CB00D
+_080AD838: .4byte gMenuWindow
+_080AD83C: .4byte gTasks
+_080AD840:
+ ldr r0, _080AD860 @ =gMenuWindow
+ bl sub_80037A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AD8CA
+ ldr r0, _080AD864 @ =gTasks
+ mov r4, r8
+ lsls r1, r4, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x15
+ strh r0, [r1, 0x8]
+ b _080AD8CA
+ .align 2, 0
+_080AD860: .4byte gMenuWindow
+_080AD864: .4byte gTasks
+_080AD868:
+ mov r5, r8
+ lsls r0, r5, 2
+ add r0, r8
+ lsls r0, 3
+ mov r2, r12
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ strh r0, [r1, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _080AD8CA
+ movs r0, 0
+ strh r0, [r1, 0x1C]
+ movs r0, 0x16
+ strh r0, [r1, 0x8]
+ b _080AD8CA
+_080AD88C:
+ ldrb r0, [r6, 0x10]
+ adds r0, 0x1
+ movs r1, 0
+ strb r0, [r6, 0x10]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _080AD8B8
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ strh r1, [r0, 0x8]
+ strh r1, [r0, 0xA]
+ strh r1, [r0, 0xC]
+ ldr r1, _080AD8B4 @ =sub_80AD960
+ str r1, [r0]
+ b _080AD8C4
+ .align 2, 0
+_080AD8B4: .4byte sub_80AD960
+_080AD8B8:
+ mov r4, r8
+ lsls r0, r4, 2
+ add r0, r8
+ lsls r0, 3
+ add r0, r12
+ strh r1, [r0, 0x8]
+_080AD8C4:
+ movs r0, 0
+ bl nullsub_18
+_080AD8CA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AC2CC
+
+ thumb_func_start sub_80AD8DC
+sub_80AD8DC: @ 80AD8DC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080AD8F8 @ =0x02019204
+ ldrb r2, [r3, 0x7]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r3, 0x7]
+ bl DestroyTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD8F8: .4byte 0x02019204
+ thumb_func_end sub_80AD8DC
+
+ thumb_func_start sub_80AD8FC
+sub_80AD8FC: @ 80AD8FC
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x24]
+ movs r3, 0x24
+ ldrsh r2, [r1, r3]
+ cmp r2, 0
+ beq _080AD910
+ subs r0, 0x2
+ strh r0, [r1, 0x24]
+ b _080AD924
+_080AD910:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _080AD924
+ strh r2, [r1, 0x2E]
+ ldr r0, _080AD928 @ =SpriteCallbackDummy
+ str r0, [r1, 0x1C]
+_080AD924:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD928: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80AD8FC
+
+ thumb_func_start sub_80AD92C
+sub_80AD92C: @ 80AD92C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x24]
+ subs r0, 0x6
+ strh r0, [r2, 0x24]
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ movs r3, 0x24
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _080AD956
+ ldr r0, _080AD95C @ =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080AD956:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD95C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80AD92C
+
+ thumb_func_start sub_80AD960
+sub_80AD960: @ 80AD960
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080AD984 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r5, r1, r2
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080AD9F2
+ cmp r0, 0x1
+ bgt _080AD988
+ cmp r0, 0
+ beq _080AD98E
+ b _080ADA10
+ .align 2, 0
+_080AD984: .4byte gTasks
+_080AD988:
+ cmp r0, 0x2
+ beq _080ADA08
+ b _080ADA10
+_080AD98E:
+ ldr r0, _080AD9D8 @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ movs r6, 0x1
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD9E8
+ ldr r2, _080AD9DC @ =0x02019204
+ ldrb r0, [r2, 0x7]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x7]
+ bl sub_80AE074
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AD9B8
+ bl sub_80AF2FC
+ bl sub_80AF3C0
+_080AD9B8:
+ ldr r4, _080AD9E0 @ =sub_80C8C80
+ adds r0, r4, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080AD9E4 @ =sub_80AD8DC
+ adds r1, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ bl sub_80AF860
+ strh r6, [r5, 0x8]
+ b _080ADA10
+ .align 2, 0
+_080AD9D8: .4byte gUnknown_0203869A
+_080AD9DC: .4byte 0x02019204
+_080AD9E0: .4byte sub_80C8C80
+_080AD9E4: .4byte sub_80AD8DC
+_080AD9E8:
+ bl sub_80AF2FC
+ bl sub_80AF3C0
+ b _080AD9FE
+_080AD9F2:
+ ldr r0, _080ADA04 @ =0x02019204
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080ADA10
+_080AD9FE:
+ movs r0, 0x2
+ strh r0, [r5, 0x8]
+ b _080ADA10
+ .align 2, 0
+_080ADA04: .4byte 0x02019204
+_080ADA08:
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ ldr r0, _080ADA18 @ =sub_80ADA1C
+ str r0, [r5]
+_080ADA10:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADA18: .4byte sub_80ADA1C
+ thumb_func_end sub_80AD960
+
+ thumb_func_start sub_80ADA1C
+sub_80ADA1C: @ 80ADA1C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl sub_80B1FD0
+ ldr r1, _080ADA44 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ strh r1, [r0, 0xA]
+ ldr r1, _080ADA48 @ =sub_80ADA4C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADA44: .4byte gTasks
+_080ADA48: .4byte sub_80ADA4C
+ thumb_func_end sub_80ADA1C
+
+ thumb_func_start sub_80ADA4C
+sub_80ADA4C: @ 80ADA4C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080ADA70 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080ADA92
+ cmp r5, 0x1
+ bgt _080ADA74
+ cmp r5, 0
+ beq _080ADA7A
+ b _080ADACE
+ .align 2, 0
+_080ADA70: .4byte gTasks
+_080ADA74:
+ cmp r5, 0x2
+ beq _080ADAC0
+ b _080ADACE
+_080ADA7A:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080ADACE
+ movs r0, 0x2
+ bl sub_80B25E4
+ strh r5, [r4, 0xA]
+ b _080ADAB2
+_080ADA92:
+ ldr r0, _080ADABC @ =0x02019204
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x2
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080ADACE
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080ADACE
+ strh r1, [r4, 0xA]
+_080ADAB2:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080ADACE
+ .align 2, 0
+_080ADABC: .4byte 0x02019204
+_080ADAC0:
+ bl sub_80AFF10
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ ldr r0, _080ADAD4 @ =sub_80ADAD8
+ str r0, [r4]
+_080ADACE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADAD4: .4byte sub_80ADAD8
+ thumb_func_end sub_80ADA4C
+
+ thumb_func_start sub_80ADAD8
+sub_80ADAD8: @ 80ADAD8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80AFF28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ADAF6
+ ldr r0, _080ADAFC @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080ADB00 @ =sub_80ADB04
+ str r0, [r1]
+_080ADAF6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADAFC: .4byte gTasks
+_080ADB00: .4byte sub_80ADB04
+ thumb_func_end sub_80ADAD8
+
+ thumb_func_start sub_80ADB04
+sub_80ADB04: @ 80ADB04
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080ADB30 @ =0x02018204
+ ldr r3, _080ADB34 @ =gPlttBufferUnfaded
+ ldr r1, _080ADB38 @ =0x040000d4
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ ldr r2, _080ADB3C @ =0x84000100
+ str r2, [r1, 0x8]
+ ldr r1, [r1, 0x8]
+ ldr r2, _080ADB40 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ movs r0, 0x2
+ strh r0, [r1, 0xA]
+ ldr r0, _080ADB44 @ =sub_80ADB48
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080ADB30: .4byte 0x02018204
+_080ADB34: .4byte gPlttBufferUnfaded
+_080ADB38: .4byte 0x040000d4
+_080ADB3C: .4byte 0x84000100
+_080ADB40: .4byte gTasks
+_080ADB44: .4byte sub_80ADB48
+ thumb_func_end sub_80ADB04
+
+ thumb_func_start sub_80ADB48
+sub_80ADB48: @ 80ADB48
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080ADB80 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080ADB7A
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ ldrh r0, [r1, 0xA]
+ subs r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080ADB7A
+ ldr r0, _080ADB84 @ =sub_80ADB88
+ str r0, [r1]
+_080ADB7A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADB80: .4byte gTasks
+_080ADB84: .4byte sub_80ADB88
+ thumb_func_end sub_80ADB48
+
+ thumb_func_start sub_80ADB88
+sub_80ADB88: @ 80ADB88
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _080ADBEC @ =gUnknown_02038695
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _080ADBF0 @ =0x02019260
+ adds r0, r1
+ ldrb r4, [r0, 0x1A]
+ bl sub_80AF138
+ ldr r0, _080ADBF4 @ =gStringVar1
+ ldrb r1, [r6]
+ lsls r1, 6
+ ldr r2, _080ADBF8 @ =gUnknown_02038572
+ adds r1, r2
+ bl StringCopy
+ ldr r6, _080ADBFC @ =gStringVar4
+ ldr r0, _080ADC00 @ =gUnknown_083CB2F0
+ lsls r4, 2
+ adds r4, r0
+ ldr r1, [r4]
+ adds r0, r6, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080ADC04 @ =gMenuWindow
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r6, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ ldr r1, _080ADC08 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080ADC0C @ =sub_80ADC10
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADBEC: .4byte gUnknown_02038695
+_080ADBF0: .4byte 0x02019260
+_080ADBF4: .4byte gStringVar1
+_080ADBF8: .4byte gUnknown_02038572
+_080ADBFC: .4byte gStringVar4
+_080ADC00: .4byte gUnknown_083CB2F0
+_080ADC04: .4byte gMenuWindow
+_080ADC08: .4byte gTasks
+_080ADC0C: .4byte sub_80ADC10
+ thumb_func_end sub_80ADB88
+
+ thumb_func_start sub_80ADC10
+sub_80ADC10: @ 80ADC10
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080ADC40 @ =gMenuWindow
+ bl sub_80037A0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080ADC3A
+ ldr r1, _080ADC44 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ ldr r1, _080ADC48 @ =sub_80ADC4C
+ str r1, [r0]
+ bl sub_80B0D7C
+_080ADC3A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADC40: .4byte gMenuWindow
+_080ADC44: .4byte gTasks
+_080ADC48: .4byte sub_80ADC4C
+ thumb_func_end sub_80ADC10
+
+ thumb_func_start sub_80ADC4C
+sub_80ADC4C: @ 80ADC4C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080ADC7C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x8]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _080ADC76
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ bl sub_80AFF10
+ ldr r0, _080ADC80 @ =sub_80ADC84
+ str r0, [r4]
+_080ADC76:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADC7C: .4byte gTasks
+_080ADC80: .4byte sub_80ADC84
+ thumb_func_end sub_80ADC4C
+
+ thumb_func_start sub_80ADC84
+sub_80ADC84: @ 80ADC84
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80AFF28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ADCA6
+ ldr r1, _080ADCAC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ ldr r1, _080ADCB0 @ =sub_80ADCB4
+ str r1, [r0]
+_080ADCA6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADCAC: .4byte gTasks
+_080ADCB0: .4byte sub_80ADCB4
+ thumb_func_end sub_80ADC84
+
+ thumb_func_start sub_80ADCB4
+sub_80ADCB4: @ 80ADCB4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80B2184
+ ldr r1, _080ADCD4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080ADCD8 @ =sub_80B237C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADCD4: .4byte gTasks
+_080ADCD8: .4byte sub_80B237C
+ thumb_func_end sub_80ADCB4
+
+ thumb_func_start sub_80ADCDC
+sub_80ADCDC: @ 80ADCDC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80B2280
+ ldr r1, _080ADCFC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080ADD00 @ =sub_80ADD04
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADCFC: .4byte gTasks
+_080ADD00: .4byte sub_80ADD04
+ thumb_func_end sub_80ADCDC
+
+ thumb_func_start sub_80ADD04
+sub_80ADD04: @ 80ADD04
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, _080ADD40 @ =REG_BG0CNT
+ ldrb r2, [r3]
+ movs r1, 0x4
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3]
+ ldr r2, _080ADD44 @ =REG_BG2CNT
+ ldrb r0, [r2]
+ ands r1, r0
+ strb r1, [r2]
+ ldr r1, _080ADD48 @ =0x02019204
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x1
+ strb r0, [r1, 0x1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bne _080ADD54
+ ldr r0, _080ADD4C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080ADD50 @ =sub_80ADDA4
+ b _080ADD64
+ .align 2, 0
+_080ADD40: .4byte REG_BG0CNT
+_080ADD44: .4byte REG_BG2CNT
+_080ADD48: .4byte 0x02019204
+_080ADD4C: .4byte gTasks
+_080ADD50: .4byte sub_80ADDA4
+_080ADD54:
+ bl sub_80B1B14
+ ldr r0, _080ADD6C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080ADD70 @ =sub_80ADD74
+_080ADD64:
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADD6C: .4byte gTasks
+_080ADD70: .4byte sub_80ADD74
+ thumb_func_end sub_80ADD04
+
+ thumb_func_start sub_80ADD74
+sub_80ADD74: @ 80ADD74
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080ADD98 @ =0x02019204
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080ADD94
+ ldr r0, _080ADD9C @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080ADDA0 @ =sub_80ABB70
+ str r0, [r1]
+_080ADD94:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADD98: .4byte 0x02019204
+_080ADD9C: .4byte gTasks
+_080ADDA0: .4byte sub_80ABB70
+ thumb_func_end sub_80ADD74
+
+ thumb_func_start sub_80ADDA4
+sub_80ADDA4: @ 80ADDA4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080ADE24 @ =gUnknown_030042A0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080ADE28 @ =gUnknown_03004280
+ strh r1, [r0]
+ ldr r3, _080ADE2C @ =0x02019260
+ ldr r2, _080ADE30 @ =gUnknown_02038680
+ movs r1, 0x3
+_080ADDBC:
+ ldrh r0, [r3, 0x4]
+ strh r0, [r2]
+ adds r3, 0x1C
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080ADDBC
+ movs r5, 0
+ bl sub_80AF668
+ bl sub_80AF138
+ ldr r0, _080ADE34 @ =gUnknown_02038695
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _080ADE2C @ =0x02019260
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ bl sub_80BE23C
+ ldr r1, _080ADE38 @ =gUnknown_03005D28
+ ldr r0, _080ADE3C @ =gRngValue
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r4, _080ADE40 @ =gStringVar4
+ ldr r1, _080ADE44 @ =gUnknown_083CB02C
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _080ADE48 @ =gMenuWindow
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ ldr r1, _080ADE4C @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0xC]
+ ldr r1, _080ADE50 @ =sub_80ADE54
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADE24: .4byte gUnknown_030042A0
+_080ADE28: .4byte gUnknown_03004280
+_080ADE2C: .4byte 0x02019260
+_080ADE30: .4byte gUnknown_02038680
+_080ADE34: .4byte gUnknown_02038695
+_080ADE38: .4byte gUnknown_03005D28
+_080ADE3C: .4byte gRngValue
+_080ADE40: .4byte gStringVar4
+_080ADE44: .4byte gUnknown_083CB02C
+_080ADE48: .4byte gMenuWindow
+_080ADE4C: .4byte gTasks
+_080ADE50: .4byte sub_80ADE54
+ thumb_func_end sub_80ADDA4
+
+ thumb_func_start sub_80ADE54
+sub_80ADE54: @ 80ADE54
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080ADE98 @ =gMenuWindow
+ bl sub_80037A0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080ADE92
+ bl sub_80B2184
+ ldr r1, _080ADE9C @ =gUnknown_030042C0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _080ADEA0 @ =gUnknown_030041B4
+ movs r0, 0xA0
+ strh r0, [r1]
+ movs r0, 0x62
+ movs r1, 0
+ bl PlaySE12WithPanning
+ ldr r1, _080ADEA4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ ldr r1, _080ADEA8 @ =sub_80ADEAC
+ str r1, [r0]
+_080ADE92:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADE98: .4byte gMenuWindow
+_080ADE9C: .4byte gUnknown_030042C0
+_080ADEA0: .4byte gUnknown_030041B4
+_080ADEA4: .4byte gTasks
+_080ADEA8: .4byte sub_80ADEAC
+ thumb_func_end sub_80ADE54
+
+ thumb_func_start sub_80ADEAC
+sub_80ADEAC: @ 80ADEAC
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _080ADEE0 @ =gUnknown_030041B4
+ ldrh r0, [r1]
+ subs r0, 0x7
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080ADEC4
+ movs r0, 0
+ strh r0, [r1]
+_080ADEC4:
+ ldrh r2, [r1]
+ cmp r2, 0
+ bne _080ADEDA
+ ldr r0, _080ADEE4 @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080ADEE8 @ =sub_80ADEEC
+ str r0, [r1]
+ strh r2, [r1, 0x8]
+_080ADEDA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADEE0: .4byte gUnknown_030041B4
+_080ADEE4: .4byte gTasks
+_080ADEE8: .4byte sub_80ADEEC
+ thumb_func_end sub_80ADEAC
+
+ thumb_func_start sub_80ADEEC
+sub_80ADEEC: @ 80ADEEC
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080ADF20 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x8]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x31
+ ble _080ADF40
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, _080ADF24 @ =gUnknown_0203869A
+ ldrb r0, [r0]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080ADF2C
+ ldr r0, _080ADF28 @ =sub_80ADF4C
+ b _080ADF3E
+ .align 2, 0
+_080ADF20: .4byte gTasks
+_080ADF24: .4byte gUnknown_0203869A
+_080ADF28: .4byte sub_80ADF4C
+_080ADF2C:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _080ADF48 @ =sub_80ADFD8
+_080ADF3E:
+ str r0, [r4]
+_080ADF40:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADF48: .4byte sub_80ADFD8
+ thumb_func_end sub_80ADEEC
+
+ thumb_func_start sub_80ADF4C
+sub_80ADF4C: @ 80ADF4C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _080ADF88 @ =sub_80C8AD0
+ adds r0, r5, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080ADF8C @ =sub_80ADF98
+ adds r1, r5, 0
+ bl SetTaskFuncWithFollowupFunc
+ ldr r1, _080ADF90 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080ADF94 @ =nullsub_89
+ str r1, [r0]
+ bl sub_80AF860
+ movs r0, 0
+ bl sub_80AFFE0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADF88: .4byte sub_80C8AD0
+_080ADF8C: .4byte sub_80ADF98
+_080ADF90: .4byte gTasks
+_080ADF94: .4byte nullsub_89
+ thumb_func_end sub_80ADF4C
+
+ thumb_func_start sub_80ADF98
+sub_80ADF98: @ 80ADF98
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r2, _080ADFCC @ =gTasks
+ ldr r0, _080ADFD0 @ =0x02019204
+ ldrb r1, [r0, 0x8]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080ADFD4 @ =sub_80ADFD8
+ str r1, [r0]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADFCC: .4byte gTasks
+_080ADFD0: .4byte 0x02019204
+_080ADFD4: .4byte sub_80ADFD8
+ thumb_func_end sub_80ADF98
+
+ thumb_func_start sub_80ADFD8
+sub_80ADFD8: @ 80ADFD8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080AE000 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ADFFC
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _080AE004 @ =gUnknown_0300485C
+ ldr r1, _080AE008 @ =sub_80AE010
+ str r1, [r0]
+ ldr r0, _080AE00C @ =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+_080ADFFC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE000: .4byte gPaletteFade
+_080AE004: .4byte gUnknown_0300485C
+_080AE008: .4byte sub_80AE010
+_080AE00C: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_80ADFD8
+
+ thumb_func_start sub_80AE010
+sub_80AE010: @ 80AE010
+ push {lr}
+ bl ScriptContext2_Disable
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AE010
+
+ thumb_func_start sub_80AE020
+sub_80AE020: @ 80AE020
+ push {r4,lr}
+ adds r4, r0, 0
+ b _080AE028
+_080AE026:
+ adds r4, 0x1
+_080AE028:
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080AE04C
+ cmp r0, 0xFC
+ bne _080AE026
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _080AE026
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ movs r1, 0xFF
+ strb r1, [r0]
+ adds r1, r4, 0x2
+ bl StringAppend
+_080AE04C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AE020
+
+ thumb_func_start sub_80AE054
+sub_80AE054: @ 80AE054
+ push {lr}
+ ldr r0, _080AE06C @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080AE068
+ ldr r1, _080AE070 @ =gUnknown_02038695
+ movs r0, 0x3
+ strb r0, [r1]
+_080AE068:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE06C: .4byte gUnknown_0203869A
+_080AE070: .4byte gUnknown_02038695
+ thumb_func_end sub_80AE054
+
+ thumb_func_start sub_80AE074
+sub_80AE074: @ 80AE074
+ push {lr}
+ ldr r0, _080AE088 @ =gUnknown_02038695
+ ldr r1, _080AE08C @ =gUnknown_0203869B
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080AE090
+ movs r0, 0
+ b _080AE092
+ .align 2, 0
+_080AE088: .4byte gUnknown_02038695
+_080AE08C: .4byte gUnknown_0203869B
+_080AE090:
+ movs r0, 0x1
+_080AE092:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AE074
+
+ thumb_func_start sub_80AE098
+sub_80AE098: @ 80AE098
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r6, _080AE0F0 @ =gSaveBlock2
+ mov r0, sp
+ adds r1, r6, 0
+ bl StringCopy
+ mov r0, sp
+ bl StripExtCtrlCodes
+ ldr r0, _080AE0F4 @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AE0CE
+ mov r0, sp
+ ldrb r2, [r0, 0x5]
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1, 0x5]
+ mov r0, sp
+ strb r2, [r0, 0x7]
+_080AE0CE:
+ ldr r5, _080AE0F8 @ =gUnknown_02038695
+ ldrb r0, [r5]
+ lsls r0, 6
+ ldr r4, _080AE0FC @ =gUnknown_0203857D
+ adds r0, r4
+ mov r1, sp
+ movs r2, 0x8
+ bl memcpy
+ ldrb r0, [r6, 0x8]
+ cmp r0, 0
+ bne _080AE100
+ ldrb r0, [r5]
+ lsls r0, 6
+ adds r0, r4, r0
+ movs r1, 0xD8
+ b _080AE108
+ .align 2, 0
+_080AE0F0: .4byte gSaveBlock2
+_080AE0F4: .4byte gUnknown_0203869A
+_080AE0F8: .4byte gUnknown_02038695
+_080AE0FC: .4byte gUnknown_0203857D
+_080AE100:
+ ldrb r0, [r5]
+ lsls r0, 6
+ adds r0, r4, r0
+ movs r1, 0xD9
+_080AE108:
+ strb r1, [r0, 0x8]
+ ldr r5, _080AE17C @ =gUnknown_02038570
+ ldr r4, _080AE180 @ =gUnknown_02038695
+ ldrb r0, [r4]
+ lsls r0, 6
+ adds r1, r5, 0
+ adds r1, 0x18
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ ldrb r0, [r4]
+ lsls r0, 6
+ adds r0, r5
+ adds r0, 0x2C
+ strb r1, [r0]
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _080AE184 @ =gPlayerParty
+ adds r6, r1, r0
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ ldrb r1, [r4]
+ lsls r1, 6
+ adds r1, r5
+ strh r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ mov r0, sp
+ bl StringGetEnd10
+ ldr r0, _080AE188 @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AE19A
+ mov r0, sp
+ bl StripExtCtrlCodes
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl GetMonData
+ cmp r0, 0x1
+ bne _080AE18C
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1, 0x5]
+ movs r0, 0xFC
+ strb r0, [r1, 0xA]
+ b _080AE19A
+ .align 2, 0
+_080AE17C: .4byte gUnknown_02038570
+_080AE180: .4byte gUnknown_02038695
+_080AE184: .4byte gPlayerParty
+_080AE188: .4byte gUnknown_0203869A
+_080AE18C:
+ mov r0, sp
+ ldrb r2, [r0, 0x5]
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1, 0x5]
+ mov r0, sp
+ strb r2, [r0, 0xA]
+_080AE19A:
+ ldr r5, _080AE2C4 @ =gUnknown_02038695
+ ldrb r0, [r5]
+ lsls r0, 6
+ ldr r1, _080AE2C8 @ =gUnknown_02038572
+ mov r8, r1
+ add r0, r8
+ mov r1, sp
+ movs r2, 0xB
+ bl memcpy
+ movs r0, 0x64
+ adds r4, r7, 0
+ muls r4, r0
+ ldr r0, _080AE2CC @ =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x16
+ bl GetMonData
+ mov r6, r8
+ subs r6, 0x2
+ ldrb r1, [r5]
+ lsls r1, 6
+ adds r1, r6
+ adds r1, 0x26
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x17
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ adds r1, r6
+ adds r1, 0x27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x18
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ adds r1, r6
+ adds r1, 0x28
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x21
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ adds r1, r6
+ adds r1, 0x29
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2F
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ adds r1, r6
+ adds r1, 0x2A
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x30
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ adds r1, r6
+ adds r1, 0x2B
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0xD
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ adds r1, r6
+ strh r0, [r1, 0x1E]
+ adds r0, r4, 0
+ movs r1, 0xE
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ adds r1, r6
+ strh r0, [r1, 0x20]
+ adds r0, r4, 0
+ movs r1, 0xF
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ adds r1, r6
+ strh r0, [r1, 0x22]
+ adds r0, r4, 0
+ movs r1, 0x10
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ adds r1, r6
+ strh r0, [r1, 0x24]
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ mov r2, r8
+ adds r2, 0x36
+ adds r1, r2
+ str r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ ldrb r1, [r5]
+ lsls r1, 6
+ movs r2, 0x3A
+ add r8, r2
+ add r1, r8
+ str r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r2, r0, 16
+ mov r8, r2
+ ldrb r0, [r5]
+ lsls r0, 6
+ adds r1, r0, r6
+ adds r0, r1, 0
+ adds r0, 0x26
+ ldrb r3, [r0]
+ adds r0, 0x1
+ ldrb r4, [r0]
+ adds r0, 0x1
+ ldrb r5, [r0]
+ adds r0, 0x1
+ ldrb r6, [r0]
+ adds r0, 0x1
+ ldrb r7, [r0]
+ cmp r2, 0xFE
+ bne _080AE2D0
+ adds r3, 0x14
+ b _080AE31E
+ .align 2, 0
+_080AE2C4: .4byte gUnknown_02038695
+_080AE2C8: .4byte gUnknown_02038572
+_080AE2CC: .4byte gPlayerParty
+_080AE2D0:
+ cmp r2, 0xFF
+ bne _080AE2E0
+ lsls r0, r4, 16
+ movs r1, 0xA0
+ lsls r1, 13
+ adds r0, r1
+ lsrs r4, r0, 16
+ b _080AE31E
+_080AE2E0:
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r2, r0
+ bne _080AE2F4
+ lsls r0, r5, 16
+ movs r2, 0xA0
+ lsls r2, 13
+ adds r0, r2
+ lsrs r5, r0, 16
+ b _080AE31E
+_080AE2F4:
+ ldr r0, _080AE308 @ =0x00000101
+ cmp r2, r0
+ bne _080AE30C
+ lsls r0, r6, 16
+ movs r1, 0xA0
+ lsls r1, 13
+ adds r0, r1
+ lsrs r6, r0, 16
+ b _080AE31E
+ .align 2, 0
+_080AE308: .4byte 0x00000101
+_080AE30C:
+ movs r0, 0x81
+ lsls r0, 1
+ cmp r8, r0
+ bne _080AE31E
+ lsls r0, r7, 16
+ movs r2, 0xA0
+ lsls r2, 13
+ adds r0, r2
+ lsrs r7, r0, 16
+_080AE31E:
+ cmp r3, 0xFF
+ ble _080AE324
+ movs r3, 0xFF
+_080AE324:
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080AE32E
+ movs r4, 0xFF
+_080AE32E:
+ lsls r0, r5, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080AE338
+ movs r5, 0xFF
+_080AE338:
+ lsls r0, r6, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080AE342
+ movs r6, 0xFF
+_080AE342:
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080AE34C
+ movs r7, 0xFF
+_080AE34C:
+ ldr r2, _080AE390 @ =gUnknown_02038570
+ ldr r1, _080AE394 @ =gUnknown_02038695
+ ldrb r0, [r1]
+ lsls r0, 6
+ adds r0, r2
+ adds r0, 0x26
+ strb r3, [r0]
+ ldrb r0, [r1]
+ lsls r0, 6
+ adds r0, r2
+ adds r0, 0x27
+ strb r4, [r0]
+ ldrb r0, [r1]
+ lsls r0, 6
+ adds r0, r2
+ adds r0, 0x28
+ strb r5, [r0]
+ ldrb r0, [r1]
+ lsls r0, 6
+ adds r0, r2
+ adds r0, 0x29
+ strb r6, [r0]
+ ldrb r0, [r1]
+ lsls r0, 6
+ adds r0, r2
+ adds r0, 0x2A
+ strb r7, [r0]
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE390: .4byte gUnknown_02038570
+_080AE394: .4byte gUnknown_02038695
+ thumb_func_end sub_80AE098
+
+ thumb_func_start sub_80AE398
+sub_80AE398: @ 80AE398
+ push {r4-r7,lr}
+ sub sp, 0x40
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ movs r6, 0
+ bl sub_80AE054
+ movs r5, 0
+ ldr r2, _080AE470 @ =gUnknown_083C9408
+_080AE3AE:
+ ldrb r1, [r2, 0x1C]
+ lsls r0, r1, 30
+ lsrs r0, 30
+ cmp r7, r0
+ bne _080AE3FE
+ cmp r4, 0
+ bne _080AE3C2
+ lsls r0, r1, 29
+ cmp r0, 0
+ blt _080AE3F2
+_080AE3C2:
+ cmp r4, 0x1
+ bne _080AE3CE
+ ldrb r0, [r2, 0x1C]
+ lsls r0, 28
+ cmp r0, 0
+ blt _080AE3F2
+_080AE3CE:
+ cmp r4, 0x2
+ bne _080AE3DA
+ ldrb r0, [r2, 0x1C]
+ lsls r0, 27
+ cmp r0, 0
+ blt _080AE3F2
+_080AE3DA:
+ cmp r4, 0x3
+ bne _080AE3E6
+ ldrb r0, [r2, 0x1C]
+ lsls r0, 26
+ cmp r0, 0
+ blt _080AE3F2
+_080AE3E6:
+ cmp r4, 0x4
+ bne _080AE3FE
+ ldrb r0, [r2, 0x1C]
+ lsls r0, 25
+ cmp r0, 0
+ bge _080AE3FE
+_080AE3F2:
+ adds r0, r6, 0
+ adds r1, r0, 0x1
+ lsls r1, 24
+ lsrs r6, r1, 24
+ add r0, sp
+ strb r5, [r0]
+_080AE3FE:
+ adds r2, 0x40
+ adds r5, 0x1
+ cmp r5, 0x3B
+ ble _080AE3AE
+ mov r0, sp
+ adds r1, r0, r6
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r5, 0
+ ldr r7, _080AE470 @ =gUnknown_083C9408
+_080AE412:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _080AE474 @ =gUnknown_02038570
+ lsls r2, r5, 6
+ adds r2, r1
+ mov r1, sp
+ adds r4, r1, r0
+ ldrb r1, [r4]
+ lsls r1, 6
+ adds r1, r7
+ adds r0, r2, 0
+ movs r2, 0x40
+ bl memcpy
+ ldrb r0, [r4]
+ adds r2, r5, 0x1
+ subs r1, r6, 0x1
+ cmp r0, 0xFF
+ beq _080AE454
+ adds r3, r4, 0
+_080AE448:
+ ldrb r0, [r3, 0x1]
+ strb r0, [r3]
+ adds r3, 0x1
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ bne _080AE448
+_080AE454:
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ adds r5, r2, 0
+ cmp r5, 0x2
+ ble _080AE412
+ ldr r0, _080AE478 @ =gUnknown_02038694
+ ldrb r0, [r0]
+ bl sub_80AE098
+ add sp, 0x40
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE470: .4byte gUnknown_083C9408
+_080AE474: .4byte gUnknown_02038570
+_080AE478: .4byte gUnknown_02038694
+ thumb_func_end sub_80AE398
+
+ thumb_func_start sub_80AE47C
+sub_80AE47C: @ 80AE47C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _080AE48E
+ movs r0, 0x3
+ b _080AE50A
+_080AE48E:
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _080AE49E
+ movs r0, 0x4
+ b _080AE50A
+_080AE49E:
+ ldr r0, _080AE4B0 @ =gUnknown_0203869C
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080AE4F2
+ lsls r0, 2
+ ldr r1, _080AE4B4 @ =_080AE4B8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AE4B0: .4byte gUnknown_0203869C
+_080AE4B4: .4byte _080AE4B8
+ .align 2, 0
+_080AE4B8:
+ .4byte _080AE4CC
+ .4byte _080AE4D2
+ .4byte _080AE4D8
+ .4byte _080AE4DE
+ .4byte _080AE4E4
+_080AE4CC:
+ adds r0, r4, 0
+ movs r1, 0x32
+ b _080AE4E8
+_080AE4D2:
+ adds r0, r4, 0
+ movs r1, 0x33
+ b _080AE4E8
+_080AE4D8:
+ adds r0, r4, 0
+ movs r1, 0x34
+ b _080AE4E8
+_080AE4DE:
+ adds r0, r4, 0
+ movs r1, 0x35
+ b _080AE4E8
+_080AE4E4:
+ adds r0, r4, 0
+ movs r1, 0x36
+_080AE4E8:
+ bl GetMonData
+ lsls r0, 24
+ lsrs r1, r0, 24
+ b _080AE4F6
+_080AE4F2:
+ movs r0, 0
+ b _080AE50A
+_080AE4F6:
+ ldr r0, _080AE510 @ =gUnknown_0203869E
+ adds r2, r1, 0
+ ldrh r1, [r0]
+ movs r0, 0x2
+ cmp r2, r1
+ bhi _080AE50A
+ movs r0, 0
+ cmp r2, r1
+ bcc _080AE50A
+ movs r0, 0x1
+_080AE50A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AE510: .4byte gUnknown_0203869E
+ thumb_func_end sub_80AE47C
+
+ thumb_func_start sub_80AE514
+sub_80AE514: @ 80AE514
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ movs r5, 0
+ ldr r7, _080AE588 @ =gUnknown_083CA308
+ adds r0, r7, 0x1
+ mov r9, r0
+ ldr r6, _080AE58C @ =gUnknown_083CA310
+ adds r3, r6, 0x1
+ mov r8, r3
+_080AE52C:
+ ldr r4, _080AE590 @ =gUnknown_02038696
+ adds r4, r5, r4
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r1, r0, r7
+ ldrb r2, [r1]
+ mov r3, r9
+ adds r1, r0, r3
+ ldrb r3, [r1]
+ adds r0, r6
+ ldrb r0, [r0]
+ adds r0, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ ldrb r0, [r4]
+ lsls r0, 1
+ add r0, r8
+ ldrb r0, [r0]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldr r0, _080AE594 @ =gUnknown_03004210
+ movs r1, 0
+ bl FillWindowRect_DefaultPalette
+ adds r0, r5, 0
+ bl sub_80AE5BC
+ adds r0, r5, 0
+ bl sub_80AE6CC
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _080AE52C
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE588: .4byte gUnknown_083CA308
+_080AE58C: .4byte gUnknown_083CA310
+_080AE590: .4byte gUnknown_02038696
+_080AE594: .4byte gUnknown_03004210
+ thumb_func_end sub_80AE514
+
+ thumb_func_start sub_80AE598
+sub_80AE598: @ 80AE598
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ lsls r4, r2, 24
+ lsrs r4, 24
+ ldr r1, _080AE5B8 @ =gUnknown_083CC59C
+ bl StringCopy
+ strb r4, [r0]
+ adds r0, 0x1
+ adds r1, r5, 0
+ bl StringCopy
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AE5B8: .4byte gUnknown_083CC59C
+ thumb_func_end sub_80AE598
+
+ thumb_func_start sub_80AE5BC
+sub_80AE5BC: @ 80AE5BC
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r0, r1, 24
+ movs r2, 0xA0
+ lsls r2, 20
+ adds r1, r2
+ lsrs r1, 24
+ bl sub_80AE5D4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AE5BC
+
+ thumb_func_start sub_80AE5D4
+sub_80AE5D4: @ 80AE5D4
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _080AE660 @ =gUnknown_020238CC
+ ldr r1, _080AE664 @ =gEmptyString_81E72B0
+ adds r0, r3, 0
+ bl sub_80AE598
+ adds r3, r0, 0
+ movs r0, 0xFC
+ strb r0, [r3]
+ movs r0, 0x6
+ strb r0, [r3, 0x1]
+ movs r0, 0x4
+ strb r0, [r3, 0x2]
+ adds r3, 0x3
+ movs r0, 0xBA
+ strb r0, [r3]
+ adds r3, 0x1
+ ldr r0, _080AE668 @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AE67C
+ ldr r1, _080AE66C @ =gLinkPlayers
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r2, r0, 2
+ adds r0, r2, r1
+ ldrh r6, [r0, 0x1A]
+ cmp r6, 0x1
+ bne _080AE67C
+ adds r1, 0x8
+ adds r1, r2, r1
+ adds r0, r3, 0
+ bl StringCopy
+ ldr r0, _080AE670 @ =gUnknown_03004210
+ ldr r1, _080AE660 @ =gUnknown_020238CC
+ ldr r2, _080AE674 @ =gUnknown_02038696
+ adds r2, r4, r2
+ ldrb r4, [r2]
+ movs r2, 0x16
+ muls r2, r4
+ movs r3, 0x94
+ lsls r3, 2
+ adds r2, r3
+ ldr r5, _080AE678 @ =gUnknown_083CA310
+ lsls r4, 1
+ adds r3, r4, r5
+ ldrb r3, [r3]
+ lsls r3, 27
+ movs r7, 0xFB
+ lsls r7, 24
+ adds r3, r7
+ lsrs r3, 24
+ adds r5, 0x1
+ adds r4, r5
+ ldrb r4, [r4]
+ lsls r4, 3
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ bl sub_8004D04
+ b _080AE6B0
+ .align 2, 0
+_080AE660: .4byte gUnknown_020238CC
+_080AE664: .4byte gEmptyString_81E72B0
+_080AE668: .4byte gUnknown_0203869A
+_080AE66C: .4byte gLinkPlayers
+_080AE670: .4byte gUnknown_03004210
+_080AE674: .4byte gUnknown_02038696
+_080AE678: .4byte gUnknown_083CA310
+_080AE67C:
+ lsls r1, r4, 6
+ ldr r0, _080AE6B8 @ =gUnknown_0203857D
+ adds r1, r0
+ adds r0, r3, 0
+ bl StringCopy
+ ldr r0, _080AE6BC @ =gUnknown_03004210
+ ldr r1, _080AE6C0 @ =gUnknown_020238CC
+ ldr r2, _080AE6C4 @ =gUnknown_02038696
+ adds r2, r4, r2
+ ldrb r4, [r2]
+ movs r2, 0x16
+ muls r2, r4
+ movs r3, 0x94
+ lsls r3, 2
+ adds r2, r3
+ ldr r5, _080AE6C8 @ =gUnknown_083CA310
+ lsls r4, 1
+ adds r3, r4, r5
+ ldrb r3, [r3]
+ adds r5, 0x1
+ adds r4, r5
+ ldrb r4, [r4]
+ str r4, [sp]
+ bl sub_8003460
+_080AE6B0:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE6B8: .4byte gUnknown_0203857D
+_080AE6BC: .4byte gUnknown_03004210
+_080AE6C0: .4byte gUnknown_020238CC
+_080AE6C4: .4byte gUnknown_02038696
+_080AE6C8: .4byte gUnknown_083CA310
+ thumb_func_end sub_80AE5D4
+
+ thumb_func_start sub_80AE6CC
+sub_80AE6CC: @ 80AE6CC
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r0, r1, 24
+ movs r2, 0xA0
+ lsls r2, 20
+ adds r1, r2
+ lsrs r1, 24
+ bl sub_80AE6E4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AE6CC
+
+ thumb_func_start sub_80AE6E4
+sub_80AE6E4: @ 80AE6E4
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r2, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _080AE75C @ =gUnknown_020238CC
+ movs r0, 0xFC
+ strb r0, [r3]
+ movs r0, 0x6
+ strb r0, [r3, 0x1]
+ movs r0, 0x4
+ strb r0, [r3, 0x2]
+ adds r3, 0x3
+ lsls r1, r4, 6
+ ldr r0, _080AE760 @ =gUnknown_02038572
+ adds r1, r0
+ adds r0, r3, 0
+ bl sub_80AE598
+ adds r3, r0, 0
+ movs r0, 0xFF
+ strb r0, [r3]
+ ldr r0, _080AE764 @ =gUnknown_03004210
+ ldr r1, _080AE75C @ =gUnknown_020238CC
+ ldr r2, _080AE768 @ =gUnknown_02038696
+ adds r4, r2
+ ldrb r4, [r4]
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 18
+ movs r3, 0x80
+ lsls r3, 18
+ adds r2, r3
+ lsrs r2, 16
+ ldr r5, _080AE76C @ =gUnknown_083CA308
+ lsls r4, 1
+ adds r3, r4, r5
+ ldrb r3, [r3]
+ lsls r3, 27
+ movs r6, 0xFD
+ lsls r6, 24
+ adds r3, r6
+ lsrs r3, 24
+ adds r5, 0x1
+ adds r4, r5
+ ldrb r4, [r4]
+ lsls r4, 3
+ str r4, [sp]
+ movs r4, 0x1
+ str r4, [sp, 0x4]
+ bl sub_8004D04
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE75C: .4byte gUnknown_020238CC
+_080AE760: .4byte gUnknown_02038572
+_080AE764: .4byte gUnknown_03004210
+_080AE768: .4byte gUnknown_02038696
+_080AE76C: .4byte gUnknown_083CA308
+ thumb_func_end sub_80AE6E4
+
+ thumb_func_start sub_80AE770
+sub_80AE770: @ 80AE770
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r0, r1, 24
+ cmp r0, 0x4
+ bhi _080AE7FC
+ lsls r0, 2
+ ldr r1, _080AE788 @ =_080AE78C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AE788: .4byte _080AE78C
+ .align 2, 0
+_080AE78C:
+ .4byte _080AE7A0
+ .4byte _080AE7B8
+ .4byte _080AE7D0
+ .4byte _080AE7E0
+ .4byte _080AE7FC
+_080AE7A0:
+ ldr r0, _080AE7B4 @ =gUnknown_02038570
+ lsls r2, 6
+ adds r1, r2, r0
+ adds r3, r1, 0
+ adds r3, 0x26
+ ldrb r5, [r3]
+ adds r3, 0x4
+ ldrb r4, [r3]
+ adds r1, 0x27
+ b _080AE80E
+ .align 2, 0
+_080AE7B4: .4byte gUnknown_02038570
+_080AE7B8:
+ ldr r0, _080AE7CC @ =gUnknown_02038570
+ lsls r2, 6
+ adds r1, r2, r0
+ adds r3, r1, 0
+ adds r3, 0x27
+ ldrb r5, [r3]
+ subs r3, 0x1
+ ldrb r4, [r3]
+ adds r1, 0x28
+ b _080AE80E
+ .align 2, 0
+_080AE7CC: .4byte gUnknown_02038570
+_080AE7D0:
+ ldr r1, _080AE7DC @ =gUnknown_02038570
+ lsls r2, 6
+ adds r3, r2, r1
+ adds r0, r3, 0
+ adds r0, 0x28
+ b _080AE7EA
+ .align 2, 0
+_080AE7DC: .4byte gUnknown_02038570
+_080AE7E0:
+ ldr r1, _080AE7F8 @ =gUnknown_02038570
+ lsls r2, 6
+ adds r3, r2, r1
+ adds r0, r3, 0
+ adds r0, 0x29
+_080AE7EA:
+ ldrb r5, [r0]
+ subs r0, 0x1
+ ldrb r4, [r0]
+ adds r0, 0x2
+ ldrb r3, [r0]
+ adds r0, r1, 0
+ b _080AE810
+ .align 2, 0
+_080AE7F8: .4byte gUnknown_02038570
+_080AE7FC:
+ ldr r0, _080AE828 @ =gUnknown_02038570
+ lsls r2, 6
+ adds r1, r2, r0
+ adds r3, r1, 0
+ adds r3, 0x2A
+ ldrb r5, [r3]
+ subs r3, 0x1
+ ldrb r4, [r3]
+ adds r1, 0x26
+_080AE80E:
+ ldrb r3, [r1]
+_080AE810:
+ adds r1, r2, r0
+ adds r1, 0x2B
+ adds r0, r4, r3
+ ldrb r1, [r1]
+ adds r0, r1
+ asrs r0, 1
+ adds r0, r5, r0
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AE828: .4byte gUnknown_02038570
+ thumb_func_end sub_80AE770
+
+ thumb_func_start sub_80AE82C
+sub_80AE82C: @ 80AE82C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r6, _080AE854 @ =gUnknown_02038670
+_080AE836:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80AE770
+ lsls r1, r4, 1
+ adds r1, r6
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080AE836
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AE854: .4byte gUnknown_02038670
+ thumb_func_end sub_80AE82C
+
+ thumb_func_start sub_80AE858
+sub_80AE858: @ 80AE858
+ push {r4,r5,lr}
+ ldr r0, _080AE8A0 @ =gUnknown_083CA4BC
+ bl LoadCompressedObjectPic
+ ldr r0, _080AE8A4 @ =gContest2Pal
+ movs r1, 0x88
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r0, _080AE8A8 @ =gSpriteTemplate_83CA4A4
+ movs r1, 0x70
+ movs r2, 0x24
+ movs r3, 0x1E
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _080AE8AC @ =gSprites
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r5, r2, r4
+ ldrb r3, [r5, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ movs r3, 0x10
+ orrs r1, r3
+ strb r1, [r5, 0x5]
+ adds r4, 0x1C
+ adds r2, r4
+ ldr r1, _080AE8B0 @ =SpriteCallbackDummy
+ str r1, [r2]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AE8A0: .4byte gUnknown_083CA4BC
+_080AE8A4: .4byte gContest2Pal
+_080AE8A8: .4byte gSpriteTemplate_83CA4A4
+_080AE8AC: .4byte gSprites
+_080AE8B0: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80AE858
+
+ thumb_func_start sub_80AE8B4
+sub_80AE8B4: @ 80AE8B4
+ push {lr}
+ ldr r0, _080AE8F8 @ =gUnknown_083CA4C4
+ bl LoadCompressedObjectPic
+ ldr r0, _080AE8FC @ =gUnknown_083CA4CC
+ bl LoadCompressedObjectPalette
+ ldr r0, _080AE900 @ =gUnknown_083CA4D4
+ movs r1, 0x60
+ movs r2, 0xA
+ movs r3, 0x1D
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080AE904 @ =gSprites
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ movs r1, 0x3E
+ adds r1, r2
+ mov r12, r1
+ ldrb r1, [r1]
+ movs r3, 0x4
+ orrs r1, r3
+ mov r3, r12
+ strb r1, [r3]
+ ldrh r1, [r2, 0x4]
+ lsls r1, 22
+ lsrs r1, 22
+ strh r1, [r2, 0x2E]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AE8F8: .4byte gUnknown_083CA4C4
+_080AE8FC: .4byte gUnknown_083CA4CC
+_080AE900: .4byte gUnknown_083CA4D4
+_080AE904: .4byte gSprites
+ thumb_func_end sub_80AE8B4
+
+ thumb_func_start unref_sub_80AE908
+unref_sub_80AE908: @ 80AE908
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ ldr r0, _080AE9D4 @ =gUnknown_02038570
+ mov r9, r0
+ ldr r1, _080AE9D8 @ =gUnknown_02038695
+ mov r8, r1
+ ldrb r0, [r1]
+ lsls r0, 6
+ add r0, r9
+ ldrh r5, [r0]
+ lsls r6, r5, 3
+ ldr r0, _080AE9DC @ =gMonFrontPicTable
+ adds r0, r6, r0
+ ldr r2, _080AE9E0 @ =gMonFrontPicCoords
+ mov r10, r2
+ lsls r2, r5, 2
+ add r2, r10
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _080AE9E4 @ =gUnknown_081FAF4C
+ ldr r4, [r4, 0x4]
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ bl DecompressPicFromTable_2
+ ldr r0, _080AE9E8 @ =gMonPaletteTable
+ adds r6, r0
+ ldr r0, [r6]
+ movs r1, 0x88
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r0, 6
+ add r0, r9
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _080AE9EC @ =gUnknown_02024E8C
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r1, 6
+ add r1, r9
+ ldrh r1, [r1]
+ lsls r1, 2
+ add r1, r10
+ ldrb r1, [r1]
+ movs r2, 0x8
+ subs r2, r1
+ lsls r2, 18
+ movs r1, 0xA0
+ lsls r1, 15
+ adds r2, r1
+ asrs r2, 16
+ movs r1, 0x70
+ movs r3, 0x1E
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _080AE9F0 @ =gSprites
+ lsls r3, r4, 4
+ adds r3, r4
+ lsls r3, 2
+ adds r0, r3, r5
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ movs r2, 0x10
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r1, r3, r1
+ ldr r2, _080AE9F4 @ =SpriteCallbackDummy
+ str r2, [r1]
+ adds r5, 0x10
+ adds r3, r5
+ ldr r1, _080AE9F8 @ =gSpriteAffineAnimTable_81E7C18
+ str r1, [r3]
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ adds r0, r4, 0
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AE9D4: .4byte gUnknown_02038570
+_080AE9D8: .4byte gUnknown_02038695
+_080AE9DC: .4byte gMonFrontPicTable
+_080AE9E0: .4byte gMonFrontPicCoords
+_080AE9E4: .4byte gUnknown_081FAF4C
+_080AE9E8: .4byte gMonPaletteTable
+_080AE9EC: .4byte gUnknown_02024E8C
+_080AE9F0: .4byte gSprites
+_080AE9F4: .4byte SpriteCallbackDummy
+_080AE9F8: .4byte gSpriteAffineAnimTable_81E7C18
+ thumb_func_end unref_sub_80AE908
+
+ thumb_func_start sub_80AE9FC
+sub_80AE9FC: @ 80AE9FC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ mov r8, r1
+ adds r6, r2, 0
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80B2778
+ mov r9, r0
+ mov r5, r9
+ lsls r0, r5, 3
+ ldr r1, _080AEACC @ =gMonBackPicTable
+ adds r0, r1
+ ldr r1, _080AEAD0 @ =gMonBackPicCoords
+ lsls r2, r5, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _080AEAD4 @ =gUnknown_081FAF4C
+ ldr r4, [r4]
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ bl sub_800D334
+ adds r0, r5, 0
+ mov r1, r8
+ adds r2, r6, 0
+ bl species_and_otid_get_pal
+ movs r1, 0x90
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ adds r0, r5, 0
+ movs r1, 0
+ bl GetMonSpriteTemplate_803C56C
+ ldr r4, _080AEAD8 @ =gUnknown_02024E8C
+ movs r0, 0x2
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8077E44
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ movs r1, 0x70
+ movs r3, 0x1E
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080AEADC @ =gSprites
+ mov r8, r0
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r6, r0, 2
+ mov r0, r8
+ adds r4, r6, r0
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ movs r1, 0x20
+ orrs r0, r1
+ movs r1, 0xD
+ negs r1, r1
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ movs r0, 0x2
+ bl sub_8079E90
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ mov r0, r8
+ adds r0, 0x1C
+ adds r0, r6, r0
+ ldr r1, _080AEAE0 @ =SpriteCallbackDummy
+ str r1, [r0]
+ ldrb r0, [r4, 0x5]
+ lsrs r0, 4
+ strh r0, [r4, 0x2E]
+ strh r5, [r4, 0x32]
+ adds r0, r5, 0
+ bl sub_80AEB1C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AEAE8
+ mov r0, r8
+ adds r0, 0x10
+ adds r0, r6, r0
+ ldr r1, _080AEAE4 @ =gSpriteAffineAnimTable_81E7C18
+ b _080AEAF0
+ .align 2, 0
+_080AEACC: .4byte gMonBackPicTable
+_080AEAD0: .4byte gMonBackPicCoords
+_080AEAD4: .4byte gUnknown_081FAF4C
+_080AEAD8: .4byte gUnknown_02024E8C
+_080AEADC: .4byte gSprites
+_080AEAE0: .4byte SpriteCallbackDummy
+_080AEAE4: .4byte gSpriteAffineAnimTable_81E7C18
+_080AEAE8:
+ mov r0, r8
+ adds r0, 0x10
+ adds r0, r6, r0
+ ldr r1, _080AEB14 @ =gSpriteAffineAnimTable_81E7BEC
+_080AEAF0:
+ str r1, [r0]
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ ldr r1, _080AEB18 @ =gSprites
+ adds r0, r1
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ adds r0, r7, 0
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AEB14: .4byte gSpriteAffineAnimTable_81E7BEC
+_080AEB18: .4byte gSprites
+ thumb_func_end sub_80AE9FC
+
+ thumb_func_start sub_80AEB1C
+sub_80AEB1C: @ 80AEB1C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xC9
+ beq _080AEB2A
+ movs r0, 0x1
+ b _080AEB2C
+_080AEB2A:
+ movs r0, 0
+_080AEB2C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AEB1C
+
+ thumb_func_start sub_80AEB30
+sub_80AEB30: @ 80AEB30
+ push {lr}
+ ldr r0, _080AEB44 @ =0x0600c000
+ bl sub_80AEB4C
+ ldr r0, _080AEB48 @ =0x0600e000
+ bl sub_80AEB4C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AEB44: .4byte 0x0600c000
+_080AEB48: .4byte 0x0600e000
+ thumb_func_end sub_80AEB30
+
+ thumb_func_start sub_80AEB4C
+sub_80AEB4C: @ 80AEB4C
+ movs r1, 0xA0
+ lsls r1, 3
+ adds r2, r0, r1
+ ldr r1, _080AEB60 @ =0x040000d4
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _080AEB64 @ =0x80000140
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bx lr
+ .align 2, 0
+_080AEB60: .4byte 0x040000d4
+_080AEB64: .4byte 0x80000140
+ thumb_func_end sub_80AEB4C
+
+ thumb_func_start sub_80AEB68
+sub_80AEB68: @ 80AEB68
+ push {lr}
+ lsls r0, 16
+ lsls r1, 24
+ lsrs r3, r1, 24
+ ldr r2, _080AEB90 @ =gContestEffects
+ ldr r1, _080AEB94 @ =gContestMoves
+ lsrs r0, 13
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bhi _080AEBD0
+ lsls r0, 2
+ ldr r1, _080AEB98 @ =_080AEB9C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AEB90: .4byte gContestEffects
+_080AEB94: .4byte gContestMoves
+_080AEB98: .4byte _080AEB9C
+ .align 2, 0
+_080AEB9C:
+ .4byte _080AEBC0
+ .4byte _080AEBC0
+ .4byte _080AEBC8
+ .4byte _080AEBC8
+ .4byte _080AEBD0
+ .4byte _080AEBD0
+ .4byte _080AEBD0
+ .4byte _080AEBD0
+ .4byte _080AEBC0
+_080AEBC0:
+ ldr r0, _080AEBC4 @ =0x00009082
+ b _080AEBD2
+ .align 2, 0
+_080AEBC4: .4byte 0x00009082
+_080AEBC8:
+ ldr r0, _080AEBCC @ =0x00009088
+ b _080AEBD2
+ .align 2, 0
+_080AEBCC: .4byte 0x00009088
+_080AEBD0:
+ ldr r0, _080AEBE8 @ =0x00009086
+_080AEBD2:
+ lsls r1, r3, 12
+ movs r2, 0x90
+ lsls r2, 8
+ adds r1, r2
+ lsls r0, 16
+ asrs r0, 16
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AEBE8: .4byte 0x00009086
+ thumb_func_end sub_80AEB68
+
+ thumb_func_start sub_80AEBEC
+sub_80AEBEC: @ 80AEBEC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _080AEC74 @ =gUnknown_03004210
+ movs r1, 0x10
+ str r1, [sp]
+ movs r1, 0x22
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xB
+ movs r3, 0x1F
+ bl FillWindowRect_DefaultPalette
+ ldr r1, _080AEC78 @ =gContestMoves
+ lsls r0, r4, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 29
+ ldr r1, _080AEC7C @ =0x00004040
+ cmp r0, 0
+ beq _080AEC34
+ adds r1, 0x5
+ cmp r0, 0x1
+ beq _080AEC34
+ adds r1, 0x5
+ cmp r0, 0x2
+ beq _080AEC34
+ adds r1, 0x40
+ cmp r0, 0x3
+ bne _080AEC34
+ subs r1, 0x20
+_080AEC34:
+ ldr r0, _080AEC74 @ =gUnknown_03004210
+ mov r8, r0
+ ldr r6, _080AEC78 @ =gContestMoves
+ lsls r5, r4, 3
+ ldr r7, _080AEC80 @ =gContestEffects
+ ldr r0, _080AEC84 @ =gUnknown_083CADD4
+ mov r9, r0
+ ldr r4, _080AEC88 @ =0x0600c816
+ ldr r3, _080AEC8C @ =0x0600c7d6
+ movs r2, 0x4
+_080AEC48:
+ strh r1, [r3]
+ adds r0, r1, 0
+ adds r0, 0x10
+ strh r0, [r4]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r4, 0x2
+ adds r3, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080AEC48
+ adds r0, r5, r6
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r1, r0, r7
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0xFF
+ bne _080AEC90
+ movs r0, 0
+ b _080AEC9C
+ .align 2, 0
+_080AEC74: .4byte gUnknown_03004210
+_080AEC78: .4byte gContestMoves
+_080AEC7C: .4byte 0x00004040
+_080AEC80: .4byte gContestEffects
+_080AEC84: .4byte gUnknown_083CADD4
+_080AEC88: .4byte 0x0600c816
+_080AEC8C: .4byte 0x0600c7d6
+_080AEC90:
+ ldrb r0, [r1, 0x1]
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+_080AEC9C:
+ cmp r0, 0x8
+ bls _080AECA2
+ movs r0, 0x8
+_080AECA2:
+ movs r2, 0
+ ldr r1, _080AECB8 @ =0x00005012
+ adds r4, r1, 0
+ adds r1, 0x23
+ adds r3, r1, 0
+ ldr r1, _080AECBC @ =0x0600c7ea
+_080AECAE:
+ cmp r2, r0
+ bge _080AECC0
+ strh r4, [r1]
+ b _080AECC2
+ .align 2, 0
+_080AECB8: .4byte 0x00005012
+_080AECBC: .4byte 0x0600c7ea
+_080AECC0:
+ strh r3, [r1]
+_080AECC2:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _080AECAE
+ adds r0, r5, r6
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r1, r0, r7
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0xFF
+ bne _080AECDC
+ movs r0, 0
+ b _080AECE8
+_080AECDC:
+ ldrb r0, [r1, 0x2]
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+_080AECE8:
+ cmp r0, 0x8
+ bls _080AECEE
+ movs r0, 0x8
+_080AECEE:
+ movs r2, 0
+ ldr r1, _080AED04 @ =0x00005014
+ adds r4, r1, 0
+ adds r1, 0x22
+ adds r3, r1, 0
+ ldr r1, _080AED08 @ =0x0600c82a
+_080AECFA:
+ cmp r2, r0
+ bge _080AED0C
+ strh r4, [r1]
+ b _080AED0E
+ .align 2, 0
+_080AED04: .4byte 0x00005014
+_080AED08: .4byte 0x0600c82a
+_080AED0C:
+ strh r3, [r1]
+_080AED0E:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _080AECFA
+ adds r0, r5, r6
+ ldrb r0, [r0]
+ lsls r0, 2
+ add r0, r9
+ ldr r1, [r0]
+ movs r2, 0xD9
+ lsls r2, 2
+ movs r0, 0x23
+ str r0, [sp]
+ mov r0, r8
+ movs r3, 0xB
+ bl sub_8003460
+ ldr r1, _080AED50 @ =gUnknown_083CC5A2
+ ldr r2, _080AED54 @ =0x00000362
+ movs r0, 0x1F
+ str r0, [sp]
+ mov r0, r8
+ movs r3, 0x10
+ bl sub_8003460
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AED50: .4byte gUnknown_083CC5A2
+_080AED54: .4byte 0x00000362
+ thumb_func_end sub_80AEBEC
+
+ thumb_func_start sub_80AED58
+sub_80AED58: @ 80AED58
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _080AED78 @ =gUnknown_03004210
+ movs r1, 0x1C
+ str r1, [sp]
+ movs r1, 0x28
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xB
+ movs r3, 0x23
+ bl FillWindowRect_DefaultPalette
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AED78: .4byte gUnknown_03004210
+ thumb_func_end sub_80AED58
+
+ thumb_func_start sub_80AED7C
+sub_80AED7C: @ 80AED7C
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r0, _080AEDD8 @ =gUnknown_02038696
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, 0x2
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ bl sub_80AF59C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AEDEC
+ cmp r6, 0
+ beq _080AEDEC
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80AEB68
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r3, r5, 6
+ ldr r1, _080AEDDC @ =0x0600c028
+ adds r1, r3, r1
+ strh r0, [r1]
+ ldr r1, _080AEDE0 @ =0x0600c02a
+ adds r1, r3, r1
+ adds r2, r0, 0x1
+ strh r2, [r1]
+ ldr r1, _080AEDE4 @ =0x0600c068
+ adds r2, r3, r1
+ adds r1, r0, 0
+ adds r1, 0x10
+ strh r1, [r2]
+ ldr r1, _080AEDE8 @ =0x0600c06a
+ adds r3, r1
+ adds r0, 0x11
+ strh r0, [r3]
+ b _080AEE08
+ .align 2, 0
+_080AEDD8: .4byte gUnknown_02038696
+_080AEDDC: .4byte 0x0600c028
+_080AEDE0: .4byte 0x0600c02a
+_080AEDE4: .4byte 0x0600c068
+_080AEDE8: .4byte 0x0600c06a
+_080AEDEC:
+ lsls r1, r5, 6
+ ldr r0, _080AEE10 @ =0x0600c028
+ adds r0, r1, r0
+ movs r2, 0
+ strh r2, [r0]
+ ldr r0, _080AEE14 @ =0x0600c02a
+ adds r0, r1, r0
+ strh r2, [r0]
+ ldr r3, _080AEE18 @ =0x0600c068
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldr r0, _080AEE1C @ =0x0600c06a
+ adds r1, r0
+ strh r2, [r1]
+_080AEE08:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AEE10: .4byte 0x0600c028
+_080AEE14: .4byte 0x0600c02a
+_080AEE18: .4byte 0x0600c068
+_080AEE1C: .4byte 0x0600c06a
+ thumb_func_end sub_80AED7C
+
+ thumb_func_start unref_sub_80AEE20
+unref_sub_80AEE20: @ 80AEE20
+ push {r4,lr}
+ movs r4, 0
+_080AEE24:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r1, _080AEE48 @ =0x02019260
+ adds r0, r1
+ ldrh r0, [r0, 0x6]
+ adds r1, r4, 0
+ bl sub_80AED7C
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080AEE24
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AEE48: .4byte 0x02019260
+ thumb_func_end unref_sub_80AEE20
+
+ thumb_func_start sub_80AEE4C
+sub_80AEE4C: @ 80AEE4C
+ ldr r0, _080AEE50 @ =0x00002034
+ bx lr
+ .align 2, 0
+_080AEE50: .4byte 0x00002034
+ thumb_func_end sub_80AEE4C
+
+ thumb_func_start sub_80AEE54
+sub_80AEE54: @ 80AEE54
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ lsls r5, r7, 3
+ subs r0, r5, r7
+ lsls r0, 2
+ ldr r1, _080AEE84 @ =0x02019260
+ adds r0, r1
+ ldrb r0, [r0, 0x10]
+ movs r2, 0x30
+ ands r2, r0
+ mov r10, r1
+ cmp r2, 0
+ bne _080AEE88
+ movs r0, 0
+ b _080AEF3C
+ .align 2, 0
+_080AEE84: .4byte 0x02019260
+_080AEE88:
+ ldr r0, _080AEEB0 @ =gUnknown_02038696
+ adds r0, r7, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r2, 0x10
+ bne _080AEEF0
+ adds r0, r7, 0
+ bl sub_80AEE4C
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ movs r4, 0
+ adds r6, r5, 0
+ b _080AEEC4
+ .align 2, 0
+_080AEEB0: .4byte gUnknown_02038696
+_080AEEB4:
+ mov r1, r9
+ adds r0, r1, r4
+ lsls r0, 6
+ ldr r1, _080AEEE8 @ =0x0600c026
+ adds r0, r1
+ mov r1, r8
+ strh r1, [r0]
+ adds r4, 0x1
+_080AEEC4:
+ subs r0, r6, r7
+ lsls r0, 2
+ ldr r1, _080AEEEC @ =0x02019260
+ adds r5, r0, r1
+ movs r0, 0xD
+ ldrsb r0, [r5, r0]
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, r4
+ bgt _080AEEB4
+ ldr r0, [sp]
+ cmp r0, 0
+ beq _080AEF3A
+ movs r0, 0x5B
+ b _080AEF2C
+ .align 2, 0
+_080AEEE8: .4byte 0x0600c026
+_080AEEEC: .4byte 0x02019260
+_080AEEF0:
+ movs r1, 0
+ mov r8, r1
+ movs r4, 0x3
+ adds r6, r5, 0
+ b _080AEF0A
+_080AEEFA:
+ mov r1, r9
+ adds r0, r1, r4
+ lsls r0, 6
+ ldr r1, _080AEF4C @ =0x0600bfe6
+ adds r0, r1
+ mov r1, r8
+ strh r1, [r0]
+ subs r4, 0x1
+_080AEF0A:
+ subs r0, r6, r7
+ lsls r0, 2
+ mov r1, r10
+ adds r5, r0, r1
+ movs r0, 0xD
+ ldrsb r0, [r5, r0]
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, r4
+ blt _080AEEFA
+ ldr r0, [sp]
+ cmp r0, 0
+ beq _080AEF3A
+ movs r0, 0x26
+_080AEF2C:
+ bl PlaySE
+ ldrb r1, [r5, 0x10]
+ movs r0, 0x31
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r5, 0x10]
+_080AEF3A:
+ movs r0, 0x1
+_080AEF3C:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AEF4C: .4byte 0x0600bfe6
+ thumb_func_end sub_80AEE54
+
+ thumb_func_start sub_80AEF50
+sub_80AEF50: @ 80AEF50
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r5, 0
+_080AEF5A:
+ ldr r0, _080AEF80 @ =gUnknown_02038696
+ adds r0, r5, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_80AEE4C
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r4, 0
+ lsls r7, r5, 3
+ adds r2, r5, 0x1
+ b _080AEF92
+ .align 2, 0
+_080AEF80: .4byte gUnknown_02038696
+_080AEF84:
+ mov r1, r8
+ adds r0, r1, r4
+ lsls r0, 6
+ ldr r3, _080AEFE0 @ =0x0600c026
+ adds r0, r3
+ strh r6, [r0]
+ adds r4, 0x1
+_080AEF92:
+ subs r0, r7, r5
+ lsls r0, 2
+ ldr r1, _080AEFE4 @ =0x02019260
+ adds r0, r1
+ ldrb r0, [r0, 0xD]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0xA
+ str r2, [sp]
+ bl __divsi3
+ lsls r0, 24
+ asrs r0, 24
+ ldr r2, [sp]
+ cmp r4, r0
+ blt _080AEF84
+ movs r6, 0
+ cmp r4, 0x2
+ bgt _080AEFCE
+ lsls r0, r4, 6
+ ldr r1, _080AEFE0 @ =0x0600c026
+ adds r0, r1
+ mov r3, r8
+ lsls r1, r3, 6
+ adds r0, r1
+_080AEFC4:
+ strh r6, [r0]
+ adds r0, 0x40
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _080AEFC4
+_080AEFCE:
+ adds r5, r2, 0
+ cmp r5, 0x3
+ ble _080AEF5A
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AEFE0: .4byte 0x0600c026
+_080AEFE4: .4byte 0x02019260
+ thumb_func_end sub_80AEF50
+
+ thumb_func_start sub_80AEFE8
+sub_80AEFE8: @ 80AEFE8
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ cmp r1, 0x4
+ bhi _080AF02A
+ lsls r0, r1, 2
+ ldr r1, _080AF000 @ =_080AF004
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080AF000: .4byte _080AF004
+ .align 2, 0
+_080AF004:
+ .4byte _080AF018
+ .4byte _080AF01C
+ .4byte _080AF020
+ .4byte _080AF024
+ .4byte _080AF028
+_080AF018:
+ movs r0, 0x80
+ b _080AF02A
+_080AF01C:
+ movs r0, 0x84
+ b _080AF02A
+_080AF020:
+ movs r0, 0x86
+ b _080AF02A
+_080AF024:
+ movs r0, 0x88
+ b _080AF02A
+_080AF028:
+ movs r0, 0x82
+_080AF02A:
+ movs r1, 0x90
+ lsls r1, 8
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AEFE8
+
+ thumb_func_start sub_80AF038
+sub_80AF038: @ 80AF038
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r5, 0x1
+ movs r4, 0
+ ldr r0, _080AF074 @ =gUnknown_02038696
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, 0x2
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ ldr r1, _080AF078 @ =0x02019260
+ adds r2, r0, r1
+ ldr r0, [r2, 0x10]
+ ldr r1, _080AF07C @ =0x00ff0003
+ ands r0, r1
+ cmp r0, 0
+ bne _080AF06C
+ ldrb r0, [r2, 0xF]
+ cmp r0, 0
+ beq _080AF080
+_080AF06C:
+ adds r0, r3, 0
+ movs r1, 0
+ b _080AF0A6
+ .align 2, 0
+_080AF074: .4byte gUnknown_02038696
+_080AF078: .4byte 0x02019260
+_080AF07C: .4byte 0x00ff0003
+_080AF080:
+ ldrb r1, [r2, 0xC]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080AF090
+ adds r0, r3, 0
+ movs r1, 0x1
+ b _080AF0A6
+_080AF090:
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ bne _080AF0A2
+ ldrb r1, [r2, 0xB]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080AF0B0
+_080AF0A2:
+ adds r0, r3, 0
+ movs r1, 0x2
+_080AF0A6:
+ bl sub_80AEFE8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ b _080AF0B2
+_080AF0B0:
+ movs r5, 0
+_080AF0B2:
+ cmp r5, 0
+ beq _080AF0EC
+ lsls r2, r6, 6
+ ldr r0, _080AF0DC @ =0x0600c028
+ adds r0, r2, r0
+ strh r4, [r0]
+ ldr r0, _080AF0E0 @ =0x0600c02a
+ adds r0, r2, r0
+ adds r1, r4, 0x1
+ strh r1, [r0]
+ ldr r0, _080AF0E4 @ =0x0600c068
+ adds r1, r2, r0
+ adds r0, r4, 0
+ adds r0, 0x10
+ strh r0, [r1]
+ ldr r0, _080AF0E8 @ =0x0600c06a
+ adds r2, r0
+ adds r0, r4, 0
+ adds r0, 0x11
+ strh r0, [r2]
+ b _080AF106
+ .align 2, 0
+_080AF0DC: .4byte 0x0600c028
+_080AF0E0: .4byte 0x0600c02a
+_080AF0E4: .4byte 0x0600c068
+_080AF0E8: .4byte 0x0600c06a
+_080AF0EC:
+ lsls r1, r6, 6
+ ldr r0, _080AF110 @ =0x0600c028
+ adds r0, r1, r0
+ strh r5, [r0]
+ ldr r0, _080AF114 @ =0x0600c02a
+ adds r0, r1, r0
+ strh r5, [r0]
+ ldr r2, _080AF118 @ =0x0600c068
+ adds r0, r1, r2
+ strh r5, [r0]
+ ldr r0, _080AF11C @ =0x0600c06a
+ adds r1, r0
+ strh r5, [r1]
+_080AF106:
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AF110: .4byte 0x0600c028
+_080AF114: .4byte 0x0600c02a
+_080AF118: .4byte 0x0600c068
+_080AF11C: .4byte 0x0600c06a
+ thumb_func_end sub_80AF038
+
+ thumb_func_start sub_80AF120
+sub_80AF120: @ 80AF120
+ push {r4,lr}
+ movs r4, 0
+_080AF124:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80AF038
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080AF124
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF120
+
+ thumb_func_start sub_80AF138
+sub_80AF138: @ 80AF138
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _080AF158 @ =gUnknown_03004210
+ movs r1, 0x11
+ str r1, [sp]
+ movs r1, 0x12
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x1
+ movs r3, 0xF
+ bl FillWindowRect_DefaultPalette
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF158: .4byte gUnknown_03004210
+ thumb_func_end sub_80AF138
+
+ thumb_func_start sub_80AF15C
+sub_80AF15C: @ 80AF15C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ adds r0, r4, 0
+ bl sub_80AF59C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AF174
+ movs r0, 0
+ b _080AF1AA
+_080AF174:
+ ldr r0, _080AF190 @ =gUnknown_02038695
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _080AF198
+ adds r0, r4, 0
+ bl sub_81288F4
+ bl sub_8128944
+ lsls r0, 24
+ ldr r2, _080AF194 @ =gUnknown_02038570
+ lsrs r0, 23
+ lsls r1, r4, 6
+ b _080AF1A2
+ .align 2, 0
+_080AF190: .4byte gUnknown_02038695
+_080AF194: .4byte gUnknown_02038570
+_080AF198:
+ ldr r2, _080AF1B0 @ =gUnknown_02038570
+ ldr r0, _080AF1B4 @ =0x02019204
+ ldrb r0, [r0]
+ lsls r0, 1
+ lsls r1, r5, 6
+_080AF1A2:
+ adds r0, r1
+ adds r2, 0x1E
+ adds r0, r2
+ ldrh r0, [r0]
+_080AF1AA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AF1B0: .4byte gUnknown_02038570
+_080AF1B4: .4byte 0x02019204
+ thumb_func_end sub_80AF15C
+
+ thumb_func_start sub_80AF1B8
+sub_80AF1B8: @ 80AF1B8
+ push {r4,lr}
+ movs r4, 0
+_080AF1BC:
+ adds r0, r4, 0
+ bl sub_80AF15C
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ ldr r2, _080AF1E0 @ =0x02019260
+ adds r1, r2
+ strh r0, [r1, 0x6]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080AF1BC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF1E0: .4byte 0x02019260
+ thumb_func_end sub_80AF1B8
+
+ thumb_func_start sub_80AF1E4
+sub_80AF1E4: @ 80AF1E4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ cmp r1, 0
+ bne _080AF1FC
+ adds r0, r5, 0
+ adds r0, 0xA
+ lsls r0, 24
+ lsrs r3, r0, 24
+ b _080AF1FE
+_080AF1FC:
+ movs r3, 0xE
+_080AF1FE:
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ ldr r1, _080AF21C @ =0x02019260
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x6]
+ cmp r0, 0
+ bne _080AF228
+ ldr r0, _080AF220 @ =gUnknown_020238CC
+ ldr r1, _080AF224 @ =gUnknownText_MissedTurn
+ adds r2, r3, 0
+ bl sub_80AE598
+ b _080AF23A
+ .align 2, 0
+_080AF21C: .4byte 0x02019260
+_080AF220: .4byte gUnknown_020238CC
+_080AF224: .4byte gUnknownText_MissedTurn
+_080AF228:
+ ldr r0, _080AF270 @ =gUnknown_020238CC
+ ldrh r2, [r1, 0x6]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _080AF274 @ =gMoveNames
+ adds r1, r2
+ adds r2, r3, 0
+ bl sub_80AE598
+_080AF23A:
+ adds r0, r5, 0
+ bl sub_80AF2A0
+ ldr r0, _080AF278 @ =gUnknown_03004210
+ ldr r1, _080AF270 @ =gUnknown_020238CC
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 18
+ movs r3, 0xAE
+ lsls r3, 18
+ adds r2, r3
+ lsrs r2, 16
+ ldr r4, _080AF27C @ =gUnknown_083CA318
+ lsls r5, 1
+ adds r3, r5, r4
+ ldrb r3, [r3]
+ adds r4, 0x1
+ adds r5, r4
+ ldrb r4, [r5]
+ str r4, [sp]
+ bl sub_8003460
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF270: .4byte gUnknown_020238CC
+_080AF274: .4byte gMoveNames
+_080AF278: .4byte gUnknown_03004210
+_080AF27C: .4byte gUnknown_083CA318
+ thumb_func_end sub_80AF1E4
+
+ thumb_func_start unref_sub_80AF280
+unref_sub_80AF280: @ 80AF280
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+_080AF288:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80AF1E4
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080AF288
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_80AF280
+
+ thumb_func_start sub_80AF2A0
+sub_80AF2A0: @ 80AF2A0
+ push {r4,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ ldr r4, _080AF2D8 @ =gUnknown_03004210
+ ldr r1, _080AF2DC @ =gUnknown_083CA318
+ lsrs r0, 23
+ adds r2, r0, r1
+ ldrb r2, [r2]
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r3, [r0]
+ adds r0, r2, 0x7
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0
+ bl FillWindowRect_DefaultPalette
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF2D8: .4byte gUnknown_03004210
+_080AF2DC: .4byte gUnknown_083CA318
+ thumb_func_end sub_80AF2A0
+
+ thumb_func_start unref_sub_80AF2E0
+unref_sub_80AF2E0: @ 80AF2E0
+ push {r4,lr}
+ movs r4, 0
+_080AF2E4:
+ adds r0, r4, 0
+ bl sub_80AF2A0
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080AF2E4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_80AF2E0
+
+ thumb_func_start sub_80AF2FC
+sub_80AF2FC: @ 80AF2FC
+ push {r4-r7,lr}
+ sub sp, 0x8
+ movs r4, 0
+ ldr r2, _080AF398 @ =0x02019260
+_080AF304:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x2]
+ ldrh r3, [r0, 0x4]
+ adds r1, r3
+ strh r1, [r0, 0x4]
+ lsls r0, r4, 1
+ add r0, sp
+ strh r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080AF304
+ movs r4, 0
+_080AF326:
+ movs r2, 0x3
+ cmp r2, r4
+ bls _080AF354
+_080AF32C:
+ subs r5, r2, 0x1
+ lsls r0, r5, 1
+ mov r7, sp
+ adds r3, r7, r0
+ lsls r0, r2, 1
+ adds r2, r7, r0
+ ldrh r6, [r3]
+ movs r0, 0
+ ldrsh r1, [r3, r0]
+ movs r7, 0
+ ldrsh r0, [r2, r7]
+ cmp r1, r0
+ bge _080AF34C
+ ldrh r0, [r2]
+ strh r6, [r2]
+ strh r0, [r3]
+_080AF34C:
+ lsls r0, r5, 24
+ lsrs r2, r0, 24
+ cmp r2, r4
+ bhi _080AF32C
+_080AF354:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _080AF326
+ movs r4, 0
+ ldr r0, _080AF398 @ =0x02019260
+ mov r12, r0
+ movs r7, 0x4
+ negs r7, r7
+ movs r6, 0x3
+_080AF36A:
+ movs r2, 0
+ lsls r0, r4, 3
+ adds r5, r4, 0x1
+ subs r0, r4
+ lsls r0, 2
+ mov r1, r12
+ adds r3, r0, r1
+ movs r4, 0x4
+ ldrsh r1, [r3, r4]
+_080AF37C:
+ lsls r0, r2, 1
+ add r0, sp
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ cmp r1, r0
+ bne _080AF39C
+ ands r2, r6
+ ldrb r1, [r3, 0xB]
+ adds r0, r7, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0xB]
+ b _080AF3A6
+ .align 2, 0
+_080AF398: .4byte 0x02019260
+_080AF39C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080AF37C
+_080AF3A6:
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080AF36A
+ movs r0, 0x1
+ bl sub_80B0F28
+ bl sub_80B159C
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF2FC
+
+ thumb_func_start sub_80AF3C0
+sub_80AF3C0: @ 80AF3C0
+ push {lr}
+ ldr r2, _080AF3D0 @ =0x02019260
+ adds r3, r2, 0
+_080AF3C6:
+ ldrh r0, [r2, 0x6]
+ cmp r0, 0
+ bne _080AF3D4
+ movs r1, 0x5
+ b _080AF3F2
+ .align 2, 0
+_080AF3D0: .4byte 0x02019260
+_080AF3D4:
+ movs r1, 0x2
+ ldrsh r0, [r2, r1]
+ movs r1, 0
+ cmp r0, 0
+ ble _080AF3F2
+ movs r1, 0x1
+ cmp r0, 0x1D
+ ble _080AF3F2
+ movs r1, 0x2
+ cmp r0, 0x3B
+ ble _080AF3F2
+ movs r1, 0x4
+ cmp r0, 0x4F
+ bgt _080AF3F2
+ movs r1, 0x3
+_080AF3F2:
+ strb r1, [r2, 0x1A]
+ adds r2, 0x1C
+ adds r0, r3, 0
+ adds r0, 0x54
+ cmp r2, r0
+ ble _080AF3C6
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF3C0
+
+ thumb_func_start sub_80AF404
+sub_80AF404: @ 80AF404
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r0, _080AF42C @ =0x02019260
+ adds r2, r1, r0
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ bne _080AF428
+ ldrb r1, [r2, 0xB]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080AF430
+_080AF428:
+ movs r0, 0
+ b _080AF432
+ .align 2, 0
+_080AF42C: .4byte 0x02019260
+_080AF430:
+ movs r0, 0x1
+_080AF432:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AF404
+
+ thumb_func_start sub_80AF438
+sub_80AF438: @ 80AF438
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r5, 0
+ ldr r0, _080AF594 @ =0x02019260
+ mov r10, r0
+ movs r1, 0
+ mov r12, r1
+ movs r0, 0x7
+ negs r0, r0
+ mov r9, r0
+ movs r1, 0x2
+ negs r1, r1
+ mov r8, r1
+_080AF458:
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ mov r1, r10
+ adds r3, r0, r1
+ movs r0, 0
+ strh r0, [r3, 0x2]
+ strh r0, [r3]
+ mov r0, r12
+ strb r0, [r3, 0x12]
+ ldrb r2, [r3, 0xC]
+ movs r0, 0x6
+ ands r0, r2
+ cmp r0, 0
+ beq _080AF48A
+ lsls r0, r2, 29
+ lsrs r0, 30
+ subs r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 1
+ mov r1, r9
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xC]
+_080AF48A:
+ mov r1, r12
+ strb r1, [r3, 0xE]
+ ldrb r0, [r3, 0x10]
+ mov r1, r8
+ ands r1, r0
+ mov r0, r12
+ strb r0, [r3, 0xF]
+ movs r0, 0x3
+ negs r0, r0
+ ands r1, r0
+ movs r6, 0x5
+ negs r6, r6
+ ands r1, r6
+ movs r7, 0x9
+ negs r7, r7
+ ands r1, r7
+ ldrb r0, [r3, 0xC]
+ mov r4, r8
+ ands r4, r0
+ strb r4, [r3, 0xC]
+ movs r0, 0xFF
+ strb r0, [r3, 0x13]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r3, 0x14]
+ subs r0, 0x30
+ ands r1, r0
+ strb r1, [r3, 0x10]
+ ldrb r2, [r3, 0x15]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ lsls r1, 2
+ adds r0, r6, 0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r8
+ ands r0, r1
+ strb r0, [r3, 0x15]
+ ldrb r0, [r3, 0x11]
+ movs r2, 0x4
+ negs r2, r2
+ ands r2, r0
+ movs r0, 0x21
+ negs r0, r0
+ ands r2, r0
+ strb r2, [r3, 0x11]
+ movs r0, 0x4
+ ands r0, r2
+ cmp r0, 0
+ beq _080AF500
+ adds r0, r4, 0
+ mov r1, r9
+ ands r0, r1
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3, 0xC]
+ adds r0, r2, 0
+ ands r0, r6
+ strb r0, [r3, 0x11]
+_080AF500:
+ ldrb r2, [r3, 0x11]
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080AF518
+ ldrb r0, [r3, 0xB]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r3, 0xB]
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r3, 0x11]
+_080AF518:
+ ldrb r0, [r3, 0x11]
+ movs r1, 0x11
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r3, 0x11]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _080AF458
+ movs r5, 0
+ mov r6, r10
+ mov r9, r5
+ adds r7, r6, 0
+ subs r7, 0x5C
+ movs r0, 0x18
+ negs r0, r0
+ adds r0, r6
+ mov r8, r0
+_080AF53E:
+ lsls r4, r5, 3
+ subs r4, r5
+ lsls r4, 2
+ adds r4, r6
+ ldrh r2, [r4, 0x6]
+ strh r2, [r4, 0x8]
+ lsls r1, r5, 1
+ ldrb r0, [r7, 0x1]
+ lsls r0, 3
+ adds r1, r0
+ adds r0, r6, 0
+ subs r0, 0x40
+ adds r0, r1
+ strh r2, [r0]
+ ldrh r0, [r4, 0x6]
+ bl contest_get_move_excitement
+ ldrb r1, [r7, 0x1]
+ lsls r1, 2
+ adds r1, r5, r1
+ add r1, r8
+ strb r0, [r1]
+ mov r1, r9
+ strh r1, [r4, 0x6]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _080AF53E
+ ldr r2, _080AF598 @ =0x02019328
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF594: .4byte 0x02019260
+_080AF598: .4byte 0x02019328
+ thumb_func_end sub_80AF438
+
+ thumb_func_start sub_80AF59C
+sub_80AF59C: @ 80AF59C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r0, _080AF5C4 @ =0x02019260
+ adds r2, r1, r0
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ bne _080AF5C0
+ ldrb r1, [r2, 0xB]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080AF5C8
+_080AF5C0:
+ movs r0, 0x1
+ b _080AF5CA
+ .align 2, 0
+_080AF5C4: .4byte 0x02019260
+_080AF5C8:
+ movs r0, 0
+_080AF5CA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AF59C
+
+ thumb_func_start unref_sub_80AF5D0
+unref_sub_80AF5D0: @ 80AF5D0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ ldr r1, _080AF5E8 @ =gUnknown_02038695
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080AF600
+_080AF5E2:
+ movs r0, 0x1
+ b _080AF626
+ .align 2, 0
+_080AF5E8: .4byte gUnknown_02038695
+_080AF5EC:
+ ldrb r0, [r4, 0x6]
+ movs r1, 0x1
+ b _080AF5F6
+_080AF5F2:
+ ldrb r0, [r4, 0x6]
+ movs r1, 0x2
+_080AF5F6:
+ orrs r0, r1
+ strb r0, [r4, 0x6]
+ b _080AF5E2
+_080AF5FC:
+ strb r3, [r2]
+ b _080AF5E2
+_080AF600:
+ movs r0, 0
+ ldr r4, _080AF62C @ =0x02019204
+ adds r5, r4, 0x2
+_080AF606:
+ cmp r3, 0x3
+ beq _080AF5EC
+ cmp r3, 0x4
+ beq _080AF5F2
+ adds r2, r0, r5
+ ldrb r1, [r2]
+ cmp r1, r3
+ beq _080AF5E2
+ cmp r1, 0xFF
+ beq _080AF5FC
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080AF606
+ movs r0, 0
+_080AF626:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AF62C: .4byte 0x02019204
+ thumb_func_end unref_sub_80AF5D0
+
+ thumb_func_start sub_80AF630
+sub_80AF630: @ 80AF630
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80AF688
+ ldr r1, _080AF65C @ =gUnknown_02038688
+ lsls r4, 1
+ adds r1, r4, r1
+ strh r0, [r1]
+ ldr r2, _080AF660 @ =gUnknown_02038678
+ adds r2, r4, r2
+ ldr r1, _080AF664 @ =gUnknown_02038670
+ adds r4, r1
+ ldrh r4, [r4]
+ adds r0, r4
+ strh r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF65C: .4byte gUnknown_02038688
+_080AF660: .4byte gUnknown_02038678
+_080AF664: .4byte gUnknown_02038670
+ thumb_func_end sub_80AF630
+
+ thumb_func_start sub_80AF668
+sub_80AF668: @ 80AF668
+ push {r4,lr}
+ movs r4, 0
+_080AF66C:
+ adds r0, r4, 0
+ bl sub_80AF630
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080AF66C
+ bl sub_80AF6A0
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF668
+
+ thumb_func_start sub_80AF688
+sub_80AF688: @ 80AF688
+ lsls r0, 24
+ ldr r1, _080AF69C @ =gUnknown_02038680
+ lsrs r0, 23
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ lsls r0, 17
+ asrs r0, 16
+ bx lr
+ .align 2, 0
+_080AF69C: .4byte gUnknown_02038680
+ thumb_func_end sub_80AF688
+
+ thumb_func_start sub_80AF6A0
+sub_80AF6A0: @ 80AF6A0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x70
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ movs r0, 0
+ mov r9, r0
+ mov r1, sp
+ adds r1, 0x8
+ str r1, [sp, 0x64]
+ mov r3, sp
+ adds r3, 0xC
+ str r3, [sp, 0x68]
+ mov r6, sp
+ adds r6, 0x14
+ str r6, [sp, 0x6C]
+ mov r4, sp
+_080AF6CE:
+ bl Random
+ strh r0, [r4]
+ movs r2, 0
+ cmp r2, r9
+ bge _080AF70C
+ mov r1, sp
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _080AF6F0
+ subs r4, 0x2
+ movs r7, 0x1
+ negs r7, r7
+ add r9, r7
+ b _080AF70C
+_080AF6F0:
+ adds r2, 0x1
+ cmp r2, r9
+ bge _080AF70C
+ lsls r0, r2, 1
+ mov r3, sp
+ adds r1, r3, r0
+ ldrh r0, [r4]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _080AF6F0
+ subs r4, 0x2
+ movs r6, 0x1
+ negs r6, r6
+ add r9, r6
+_080AF70C:
+ adds r4, 0x2
+ movs r7, 0x1
+ add r9, r7
+ mov r0, r9
+ cmp r0, 0x3
+ ble _080AF6CE
+ movs r1, 0
+ mov r9, r1
+ mov r4, sp
+ ldr r6, _080AF81C @ =gUnknown_02038678
+ ldr r2, [sp, 0x64]
+ ldr r5, _080AF820 @ =gUnknown_02038670
+ ldr r3, [sp, 0x68]
+_080AF726:
+ mov r7, r9
+ lsls r1, r7, 4
+ movs r7, 0
+ ldrsh r0, [r6, r7]
+ str r0, [r2]
+ movs r7, 0
+ ldrsh r0, [r5, r7]
+ str r0, [r3]
+ ldrh r0, [r4]
+ str r0, [r2, 0x8]
+ ldr r0, [sp, 0x6C]
+ adds r1, r0, r1
+ mov r7, r9
+ str r7, [r1]
+ adds r4, 0x2
+ adds r6, 0x2
+ adds r2, 0x10
+ adds r5, 0x2
+ adds r3, 0x10
+ movs r0, 0x1
+ add r9, r0
+ mov r1, r9
+ cmp r1, 0x3
+ ble _080AF726
+ movs r3, 0
+ mov r9, r3
+_080AF75A:
+ movs r4, 0x3
+ cmp r4, r9
+ ble _080AF7E4
+ add r7, sp, 0x48
+ ldr r6, [sp, 0x68]
+ str r6, [sp, 0x58]
+ ldr r0, [sp, 0x64]
+ adds r0, 0x8
+ str r0, [sp, 0x5C]
+ ldr r1, [sp, 0x6C]
+ str r1, [sp, 0x60]
+_080AF770:
+ subs r3, r4, 0x1
+ mov r10, r3
+ mov r0, r10
+ adds r1, r4, 0
+ ldr r2, [sp, 0x64]
+ bl sub_80AF828
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AF7DE
+ mov r6, r10
+ lsls r2, r6, 4
+ ldr r0, [sp, 0x64]
+ adds r3, r0, r2
+ ldr r0, [r3]
+ str r0, [sp, 0x48]
+ ldr r1, [sp, 0x58]
+ adds r6, r1, r2
+ ldr r0, [r6]
+ str r0, [r7, 0x4]
+ ldr r0, [sp, 0x5C]
+ adds r0, r2
+ mov r8, r0
+ ldr r0, [r0]
+ str r0, [r7, 0x8]
+ ldr r1, [sp, 0x60]
+ adds r2, r1, r2
+ ldr r0, [r2]
+ str r0, [r7, 0xC]
+ lsls r1, r4, 4
+ ldr r0, [sp, 0x64]
+ adds r5, r0, r1
+ ldr r0, [r5]
+ str r0, [r3]
+ ldr r3, [sp, 0x58]
+ adds r4, r3, r1
+ ldr r0, [r4]
+ str r0, [r6]
+ ldr r6, [sp, 0x5C]
+ adds r3, r6, r1
+ ldr r0, [r3]
+ mov r6, r8
+ str r0, [r6]
+ ldr r0, [sp, 0x60]
+ adds r1, r0, r1
+ ldr r0, [r1]
+ str r0, [r2]
+ ldr r0, [sp, 0x48]
+ str r0, [r5]
+ ldr r0, [r7, 0x4]
+ str r0, [r4]
+ ldr r0, [r7, 0x8]
+ str r0, [r3]
+ ldr r0, [r7, 0xC]
+ str r0, [r1]
+_080AF7DE:
+ mov r4, r10
+ cmp r4, r9
+ bgt _080AF770
+_080AF7E4:
+ movs r1, 0x1
+ add r9, r1
+ mov r3, r9
+ cmp r3, 0x2
+ ble _080AF75A
+ movs r6, 0
+ mov r9, r6
+ ldr r2, _080AF824 @ =gUnknown_02038690
+ ldr r1, [sp, 0x6C]
+_080AF7F6:
+ ldr r0, [r1]
+ adds r0, r2
+ mov r7, r9
+ strb r7, [r0]
+ adds r1, 0x10
+ movs r0, 0x1
+ add r9, r0
+ mov r3, r9
+ cmp r3, 0x3
+ ble _080AF7F6
+ add sp, 0x70
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF81C: .4byte gUnknown_02038678
+_080AF820: .4byte gUnknown_02038670
+_080AF824: .4byte gUnknown_02038690
+ thumb_func_end sub_80AF6A0
+
+ thumb_func_start sub_80AF828
+sub_80AF828: @ 80AF828
+ push {lr}
+ lsls r0, 4
+ adds r0, r2
+ lsls r1, 4
+ adds r3, r1, r2
+ ldr r2, [r0]
+ ldr r1, [r3]
+ cmp r2, r1
+ blt _080AF858
+ cmp r2, r1
+ bgt _080AF84A
+ ldr r2, [r0, 0x4]
+ ldr r1, [r3, 0x4]
+ cmp r2, r1
+ blt _080AF858
+ cmp r2, r1
+ ble _080AF84E
+_080AF84A:
+ movs r2, 0
+ b _080AF85A
+_080AF84E:
+ ldr r1, [r0, 0x8]
+ ldr r0, [r3, 0x8]
+ movs r2, 0
+ cmp r1, r0
+ bge _080AF85A
+_080AF858:
+ movs r2, 0x1
+_080AF85A:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AF828
+
+ thumb_func_start sub_80AF860
+sub_80AF860: @ 80AF860
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080AF88C @ =gUnknown_030042A0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080AF890 @ =gUnknown_03004280
+ strh r1, [r0]
+ bl sub_80AF138
+ ldr r0, _080AF894 @ =gMenuWindow
+ ldr r1, _080AF898 @ =gUnknownText_LinkStandbyAndWinner
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x1
+ bl sub_8003460
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AF88C: .4byte gUnknown_030042A0
+_080AF890: .4byte gUnknown_03004280
+_080AF894: .4byte gMenuWindow
+_080AF898: .4byte gUnknownText_LinkStandbyAndWinner
+ thumb_func_end sub_80AF860
+
+ thumb_func_start unref_sub_80AF89C
+unref_sub_80AF89C: @ 80AF89C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ lsls r2, r3, 2
+ ldr r0, _080AF940 @ =0x02019338
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldr r0, _080AF944 @ =sub_80AF94C
+ movs r1, 0x14
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ adds r7, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ bl sub_80AFB74
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 16
+ asrs r6, 16
+ adds r4, r6
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ bl sub_80AFB74
+ adds r4, r0, 0
+ subs r4, r5
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r9
+ bl sub_80AFB40
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _080AF948 @ =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r2
+ strh r5, [r1, 0x8]
+ lsls r4, 24
+ asrs r4, 24
+ strh r4, [r1, 0xA]
+ add r0, r8
+ strh r0, [r1, 0xC]
+ mov r0, r9
+ strh r0, [r1, 0xE]
+ cmp r6, 0
+ bge _080AF932
+ mov r0, r9
+ bl nullsub_19
+_080AF932:
+ adds r0, r7, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AF940: .4byte 0x02019338
+_080AF944: .4byte sub_80AF94C
+_080AF948: .4byte gTasks
+ thumb_func_end unref_sub_80AF89C
+
+ thumb_func_start sub_80AF94C
+sub_80AF94C: @ 80AF94C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080AF988 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrb r5, [r2, 0xE]
+ ldrh r3, [r2, 0xA]
+ movs r0, 0xA
+ ldrsh r1, [r2, r0]
+ cmp r1, 0
+ bne _080AF990
+ adds r0, r5, 0
+ bl nullsub_19
+ adds r0, r4, 0
+ bl DestroyTask
+ lsls r1, r5, 2
+ ldr r0, _080AF98C @ =0x02019338
+ adds r1, r0
+ ldrb r2, [r1, 0x2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x2]
+ b _080AFA56
+ .align 2, 0
+_080AF988: .4byte gTasks
+_080AF98C: .4byte 0x02019338
+_080AF990:
+ ldrh r0, [r2, 0x1C]
+ adds r0, 0x1
+ strh r0, [r2, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _080AFA56
+ movs r0, 0
+ strh r0, [r2, 0x1C]
+ cmp r1, 0
+ bge _080AF9BC
+ ldrh r0, [r2, 0x8]
+ subs r1, r0, 0x1
+ strh r1, [r2, 0x8]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r3, 0x1
+ strh r0, [r2, 0xA]
+ movs r0, 0x16
+ bl PlaySE
+ b _080AF9D0
+_080AF9BC:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ subs r0, r3, 0x1
+ strh r0, [r2, 0xA]
+ movs r0, 0x15
+ bl PlaySE
+_080AF9D0:
+ ldr r3, _080AFA00 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r2, r0, 3
+ adds r0, r2, r3
+ ldrh r1, [r0, 0xC]
+ ldr r0, _080AFA04 @ =0x0000ffff
+ cmp r1, r0
+ beq _080AFA38
+ adds r0, r3, r2
+ adds r0, 0xC
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 5
+ adds r1, 0x93
+ adds r1, r6, r1
+ lsls r1, 1
+ ldr r2, _080AFA08 @ =0x0600c000
+ adds r1, r2
+ movs r2, 0x2
+ bl RequestSpriteCopy
+ b _080AFA56
+ .align 2, 0
+_080AFA00: .4byte gTasks
+_080AFA04: .4byte 0x0000ffff
+_080AFA08: .4byte 0x0600c000
+_080AFA0C:
+ adds r0, r2, r3
+ lsls r1, 1
+ adds r1, 0xE
+ adds r0, r1
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 5
+ adds r1, 0x93
+ adds r1, r6, r1
+ lsls r1, 1
+ ldr r7, _080AFA34 @ =0x0600c000
+ adds r1, r7
+ movs r2, 0x2
+ bl RequestSpriteCopy
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080AFA56
+ .align 2, 0
+_080AFA34: .4byte 0x0600c000
+_080AFA38:
+ movs r1, 0
+ adds r3, 0x8
+_080AFA3C:
+ adds r0, r1, 0x4
+ lsls r0, 1
+ adds r0, r2
+ adds r4, r0, r3
+ movs r7, 0
+ ldrsh r0, [r4, r7]
+ cmp r0, 0
+ blt _080AFA0C
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bls _080AFA3C
+_080AFA56:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AF94C
+
+ thumb_func_start sub_80AFA5C
+sub_80AFA5C: @ 80AFA5C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r3, 0
+ ldr r0, _080AFAAC @ =0x0600c000
+ mov r12, r0
+ mov r4, sp
+ movs r6, 0
+ ldr r2, _080AFAB0 @ =0x040000d4
+ ldr r5, _080AFAB4 @ =0x81000008
+_080AFA6E:
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 5
+ adds r0, r1, 0
+ adds r0, 0x56
+ lsls r0, 1
+ add r0, r12
+ strh r6, [r4]
+ mov r7, sp
+ str r7, [r2]
+ str r0, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r1, 0x76
+ lsls r1, 1
+ add r1, r12
+ strh r6, [r4]
+ str r7, [r2]
+ str r1, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080AFA6E
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AFAAC: .4byte 0x0600c000
+_080AFAB0: .4byte 0x040000d4
+_080AFAB4: .4byte 0x81000008
+ thumb_func_end sub_80AFA5C
+
+ thumb_func_start unref_sub_80AFAB8
+unref_sub_80AFAB8: @ 80AFAB8
+ push {r4-r6,lr}
+ sub sp, 0x14
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80AFB74
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _080AFAF4 @ =0x000050a2
+ cmp r4, 0
+ beq _080AFAE0
+ ldr r2, _080AFAF8 @ =0x000060a2
+ cmp r4, 0x1
+ beq _080AFAE0
+ ldr r2, _080AFAFC @ =0x000080a2
+ cmp r4, 0x2
+ bne _080AFAE0
+ ldr r2, _080AFB00 @ =0x000070a2
+_080AFAE0:
+ movs r1, 0
+ lsls r3, r4, 2
+ movs r6, 0
+_080AFAE6:
+ cmp r1, r5
+ bcs _080AFB04
+ lsls r0, r1, 1
+ add r0, sp
+ strh r2, [r0]
+ b _080AFB0A
+ .align 2, 0
+_080AFAF4: .4byte 0x000050a2
+_080AFAF8: .4byte 0x000060a2
+_080AFAFC: .4byte 0x000080a2
+_080AFB00: .4byte 0x000070a2
+_080AFB04:
+ lsls r0, r1, 1
+ add r0, sp
+ strh r6, [r0]
+_080AFB0A:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x8
+ bls _080AFAE6
+ adds r0, r3, r4
+ lsls r0, 6
+ ldr r1, _080AFB34 @ =0x0600c128
+ adds r0, r1
+ ldr r1, _080AFB38 @ =0x040000d4
+ mov r2, sp
+ str r2, [r1]
+ str r0, [r1, 0x4]
+ ldr r0, _080AFB3C @ =0x80000009
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AFB34: .4byte 0x0600c128
+_080AFB38: .4byte 0x040000d4
+_080AFB3C: .4byte 0x80000009
+ thumb_func_end unref_sub_80AFAB8
+
+ thumb_func_start sub_80AFB40
+sub_80AFB40: @ 80AFB40
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080AFB64 @ =0x00005011
+ cmp r0, 0
+ beq _080AFB5A
+ ldr r1, _080AFB68 @ =0x00006011
+ cmp r0, 0x1
+ beq _080AFB5A
+ ldr r1, _080AFB6C @ =0x00008011
+ cmp r0, 0x2
+ bne _080AFB5A
+ ldr r1, _080AFB70 @ =0x00007011
+_080AFB5A:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AFB64: .4byte 0x00005011
+_080AFB68: .4byte 0x00006011
+_080AFB6C: .4byte 0x00008011
+_080AFB70: .4byte 0x00007011
+ thumb_func_end sub_80AFB40
+
+ thumb_func_start sub_80AFB74
+sub_80AFB74: @ 80AFB74
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 24
+ lsrs r1, r0, 24
+ asrs r2, r0, 24
+ cmp r2, 0x10
+ ble _080AFB8E
+ movs r1, 0x10
+ b _080AFB98
+_080AFB8E:
+ movs r0, 0x10
+ negs r0, r0
+ cmp r2, r0
+ bge _080AFB98
+ movs r1, 0xF0
+_080AFB98:
+ lsls r0, r1, 24
+ asrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AFB74
+
+ thumb_func_start sub_80AFBA0
+sub_80AFBA0: @ 80AFBA0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r2, r7, 2
+ ldr r0, _080AFC30 @ =0x02019338
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldr r0, _080AFC34 @ =sub_80AFC74
+ movs r1, 0x14
+ bl CreateTask
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r5, 16
+ asrs r5, 16
+ adds r0, r5, 0
+ bl sub_80AFB74
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r0, 16
+ adds r5, r0
+ lsls r5, 16
+ asrs r5, 16
+ adds r0, r5, 0
+ bl sub_80AFB74
+ lsls r4, 24
+ asrs r4, 24
+ subs r0, r4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r7, 0
+ bl sub_80AFB40
+ ldr r2, _080AFC38 @ =gTasks
+ lsls r3, r6, 2
+ adds r0, r3, r6
+ lsls r0, 3
+ adds r1, r0, r2
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _080AFC14
+ negs r0, r4
+_080AFC14:
+ strh r0, [r1, 0x8]
+ lsls r0, r5, 24
+ asrs r0, 24
+ strh r0, [r1, 0xA]
+ cmp r4, 0
+ bgt _080AFC28
+ cmp r4, 0
+ bne _080AFC3C
+ cmp r0, 0
+ ble _080AFC3C
+_080AFC28:
+ movs r0, 0x1
+ strh r0, [r1, 0xC]
+ b _080AFC4A
+ .align 2, 0
+_080AFC30: .4byte 0x02019338
+_080AFC34: .4byte sub_80AFC74
+_080AFC38: .4byte gTasks
+_080AFC3C:
+ ldr r2, _080AFC6C @ =gTasks
+ lsls r3, r6, 2
+ adds r0, r3, r6
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080AFC70 @ =0x0000ffff
+ strh r1, [r0, 0xC]
+_080AFC4A:
+ adds r0, r3, r6
+ lsls r0, 3
+ adds r0, r2
+ strh r7, [r0, 0xE]
+ mov r1, r8
+ lsls r0, r1, 16
+ cmp r0, 0
+ bge _080AFC60
+ adds r0, r7, 0
+ bl nullsub_19
+_080AFC60:
+ adds r0, r6, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AFC6C: .4byte gTasks
+_080AFC70: .4byte 0x0000ffff
+ thumb_func_end sub_80AFBA0
+
+ thumb_func_start sub_80AFC74
+sub_80AFC74: @ 80AFC74
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _080AFCD4 @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrb r7, [r4, 0xE]
+ ldrh r3, [r4, 0x8]
+ ldrh r1, [r4, 0xA]
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xE
+ bgt _080AFCA6
+ b _080AFE1C
+_080AFCA6:
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r2, [r4, 0xA]
+ movs r5, 0xA
+ ldrsh r0, [r4, r5]
+ cmp r0, 0
+ bne _080AFCDC
+ adds r0, r7, 0
+ bl nullsub_19
+ mov r0, r8
+ bl DestroyTask
+ lsls r1, r7, 2
+ ldr r0, _080AFCD8 @ =0x02019338
+ adds r1, r0
+ ldrb r2, [r1, 0x2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x2]
+ b _080AFE1C
+ .align 2, 0
+_080AFCD4: .4byte gTasks
+_080AFCD8: .4byte 0x02019338
+_080AFCDC:
+ cmp r3, 0
+ bne _080AFD28
+ lsls r0, r1, 16
+ mov r9, r0
+ cmp r0, 0
+ bge _080AFCFA
+ adds r0, r7, 0
+ bl sub_80AFB40
+ adds r0, 0x2
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ b _080AFD08
+_080AFCFA:
+ adds r0, r7, 0
+ bl sub_80AFB40
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+_080AFD08:
+ strh r0, [r4, 0xA]
+ ldr r1, _080AFD24 @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r2, r1, 0x1
+ strh r2, [r0, 0x8]
+ lsls r1, 24
+ lsrs r5, r1, 24
+ b _080AFD94
+ .align 2, 0
+_080AFD24: .4byte gTasks
+_080AFD28:
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _080AFD62
+ lsls r0, r1, 16
+ mov r9, r0
+ cmp r0, 0
+ bge _080AFD50
+ ldrh r0, [r4, 0x8]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x8]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r2, 0x1
+ strh r0, [r4, 0xA]
+ adds r0, r7, 0
+ bl sub_80AFB40
+ adds r0, 0x2
+ b _080AFD90
+_080AFD50:
+ ldrh r0, [r4, 0x8]
+ subs r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ subs r0, r2, 0x1
+ strh r0, [r4, 0xA]
+ b _080AFD94
+_080AFD62:
+ lsls r0, r1, 16
+ mov r9, r0
+ cmp r0, 0
+ bge _080AFD7C
+ ldrh r0, [r4, 0x8]
+ subs r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ adds r0, r2, 0x1
+ strh r0, [r4, 0xA]
+ b _080AFD94
+_080AFD7C:
+ ldrh r0, [r4, 0x8]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x8]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ subs r0, r2, 0x1
+ strh r0, [r4, 0xA]
+ adds r0, r7, 0
+ bl sub_80AFB40
+_080AFD90:
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080AFD94:
+ mov r10, r5
+ cmp r5, 0x7
+ bls _080AFDA2
+ adds r0, r5, 0
+ adds r0, 0x18
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080AFDA2:
+ mov r0, sp
+ strh r6, [r0]
+ ldr r0, _080AFDE8 @ =gUnknown_02038696
+ adds r0, r7, r0
+ ldrb r0, [r0]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 5
+ adds r1, 0x56
+ adds r1, r5, r1
+ lsls r1, 1
+ ldr r0, _080AFDEC @ =0x0600c000
+ adds r1, r0
+ ldr r2, _080AFDF0 @ =0x01000001
+ mov r0, sp
+ bl CpuSet
+ mov r2, r9
+ cmp r2, 0
+ ble _080AFDFC
+ movs r0, 0x60
+ bl PlaySE
+ ldr r4, _080AFDF4 @ =gMPlay_SE1
+ adds r0, r4, 0
+ bl m4aMPlayImmInit
+ ldr r1, _080AFDF8 @ =0x0000ffff
+ mov r3, r10
+ lsls r2, r3, 24
+ asrs r2, 16
+ adds r0, r4, 0
+ bl m4aMPlayPitchControl
+ b _080AFE02
+ .align 2, 0
+_080AFDE8: .4byte gUnknown_02038696
+_080AFDEC: .4byte 0x0600c000
+_080AFDF0: .4byte 0x01000001
+_080AFDF4: .4byte gMPlay_SE1
+_080AFDF8: .4byte 0x0000ffff
+_080AFDFC:
+ movs r0, 0x16
+ bl PlaySE
+_080AFE02:
+ cmp r5, 0
+ bne _080AFE1C
+ cmp r6, 0
+ bne _080AFE1C
+ ldr r0, _080AFE2C @ =gTasks
+ mov r5, r8
+ lsls r1, r5, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ negs r0, r0
+ strh r0, [r1, 0xC]
+_080AFE1C:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AFE2C: .4byte gTasks
+ thumb_func_end sub_80AFC74
+
+ thumb_func_start sub_80AFE30
+sub_80AFE30: @ 80AFE30
+ push {r4,r5,lr}
+ ldr r0, _080AFE64 @ =gUnknown_083CA350
+ bl LoadSpriteSheet
+ movs r4, 0
+ ldr r5, _080AFE68 @ =gUnknown_083CA338
+_080AFE3C:
+ ldr r0, _080AFE6C @ =gUnknown_02038696
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ adds r0, r5
+ ldrb r2, [r0]
+ ldr r0, _080AFE70 @ =gSpriteTemplate_83CA3AC
+ movs r1, 0xB4
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r1, r4, 2
+ ldr r2, _080AFE74 @ =0x02019338
+ adds r1, r2
+ strb r0, [r1]
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080AFE3C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AFE64: .4byte gUnknown_083CA350
+_080AFE68: .4byte gUnknown_083CA338
+_080AFE6C: .4byte gUnknown_02038696
+_080AFE70: .4byte gSpriteTemplate_83CA3AC
+_080AFE74: .4byte 0x02019338
+ thumb_func_end sub_80AFE30
+
+ thumb_func_start sub_80AFE78
+sub_80AFE78: @ 80AFE78
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r2, r6, 2
+ ldr r3, _080AFEB0 @ =0x02019338
+ adds r2, r3
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldrb r7, [r2]
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ subs r3, 0xD8
+ adds r0, r3
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 17
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x38
+ ble _080AFEB4
+ movs r5, 0x38
+ b _080AFEBA
+ .align 2, 0
+_080AFEB0: .4byte 0x02019338
+_080AFEB4:
+ cmp r0, 0
+ bge _080AFEBA
+ movs r5, 0
+_080AFEBA:
+ ldr r2, _080AFEEC @ =gSprites
+ lsls r3, r7, 4
+ adds r0, r3, r7
+ lsls r0, 2
+ adds r4, r0, r2
+ movs r0, 0x3E
+ adds r0, r4
+ mov r12, r0
+ ldrb r1, [r0]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ strh r6, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ lsls r0, r5, 16
+ asrs r0, 16
+ movs r5, 0x24
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ ble _080AFEF0
+ movs r0, 0x1
+ b _080AFEF2
+ .align 2, 0
+_080AFEEC: .4byte gSprites
+_080AFEF0:
+ ldr r0, _080AFF08 @ =0x0000ffff
+_080AFEF2:
+ strh r0, [r4, 0x32]
+ adds r0, r3, r7
+ lsls r0, 2
+ adds r1, r2, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080AFF0C @ =sub_80AFF60
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AFF08: .4byte 0x0000ffff
+_080AFF0C: .4byte sub_80AFF60
+ thumb_func_end sub_80AFE78
+
+ thumb_func_start sub_80AFF10
+sub_80AFF10: @ 80AFF10
+ push {r4,lr}
+ movs r4, 0
+_080AFF14:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80AFE78
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080AFF14
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AFF10
+
+ thumb_func_start sub_80AFF28
+sub_80AFF28: @ 80AFF28
+ push {r4,lr}
+ movs r3, 0
+ ldr r2, _080AFF54 @ =0x02019338
+ ldrb r1, [r2, 0x2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080AFF4C
+ movs r4, 0x1
+_080AFF3A:
+ adds r2, 0x4
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _080AFF4C
+ ldrb r1, [r2, 0x2]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080AFF3A
+_080AFF4C:
+ cmp r3, 0x4
+ beq _080AFF58
+ movs r0, 0
+ b _080AFF5A
+ .align 2, 0
+_080AFF54: .4byte 0x02019338
+_080AFF58:
+ movs r0, 0x1
+_080AFF5A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AFF28
+
+ thumb_func_start sub_80AFF60
+sub_80AFF60: @ 80AFF60
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x24]
+ movs r0, 0x24
+ ldrsh r1, [r3, r0]
+ movs r4, 0x30
+ ldrsh r0, [r3, r4]
+ cmp r1, r0
+ bne _080AFF94
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r1, 2
+ ldr r0, _080AFF8C @ =0x02019338
+ adds r1, r0
+ ldrb r2, [r1, 0x2]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x2]
+ ldr r0, _080AFF90 @ =SpriteCallbackDummy
+ str r0, [r3, 0x1C]
+ b _080AFF9A
+ .align 2, 0
+_080AFF8C: .4byte 0x02019338
+_080AFF90: .4byte SpriteCallbackDummy
+_080AFF94:
+ ldrh r0, [r3, 0x32]
+ adds r0, r2, r0
+ strh r0, [r3, 0x24]
+_080AFF9A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AFF60
+
+ thumb_func_start sub_80AFFA0
+sub_80AFFA0: @ 80AFFA0
+ push {r4-r6,lr}
+ movs r2, 0
+ ldr r6, _080AFFD0 @ =gSprites
+ ldr r5, _080AFFD4 @ =gUnknown_083CA338
+ ldr r3, _080AFFD8 @ =0x02019338
+ ldr r4, _080AFFDC @ =gUnknown_02038696
+_080AFFAC:
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ adds r0, r5
+ ldrb r0, [r0]
+ strh r0, [r1, 0x22]
+ adds r3, 0x4
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080AFFAC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AFFD0: .4byte gSprites
+_080AFFD4: .4byte gUnknown_083CA338
+_080AFFD8: .4byte 0x02019338
+_080AFFDC: .4byte gUnknown_02038696
+ thumb_func_end sub_80AFFA0
+
+ thumb_func_start sub_80AFFE0
+sub_80AFFE0: @ 80AFFE0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ ldr r6, _080B0008 @ =gUnknown_02038696
+ ldr r4, _080B000C @ =gSprites
+ ldr r2, _080B0010 @ =0x02019338
+_080AFFEE:
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _080B0024
+ cmp r5, 0
+ bne _080B0014
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r0, 0xB4
+ b _080B0022
+ .align 2, 0
+_080B0008: .4byte gUnknown_02038696
+_080B000C: .4byte gSprites
+_080B0010: .4byte 0x02019338
+_080B0014:
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r0, 0x80
+ lsls r0, 1
+_080B0022:
+ strh r0, [r1, 0x20]
+_080B0024:
+ adds r2, 0x4
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _080AFFEE
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AFFE0
+
+ thumb_func_start sub_80B0034
+sub_80B0034: @ 80B0034
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _080B00A8 @ =gUnknown_083CA3E4
+ bl LoadSpritePalette
+ movs r5, 0
+ ldr r0, _080B00AC @ =gUnknown_083CA33C
+ mov r8, r0
+ ldr r7, _080B00B0 @ =gSprites
+ movs r6, 0
+_080B004A:
+ lsls r0, r5, 3
+ ldr r1, _080B00B4 @ =gUnknown_083CA3C4
+ adds r0, r1
+ bl LoadCompressedObjectPic
+ ldr r0, _080B00B8 @ =gSpriteTemplate_83CA3F4
+ adds r0, r6, r0
+ ldr r1, _080B00BC @ =gUnknown_02038696
+ adds r1, r5, r1
+ ldrb r1, [r1]
+ add r1, r8
+ ldrb r2, [r1]
+ movs r1, 0xCC
+ movs r3, 0
+ bl CreateSprite
+ lsls r4, r5, 2
+ ldr r1, _080B00C0 @ =0x02019338
+ adds r4, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, _080B00C4 @ =gUnknown_083CA464
+ bl SetSubspriteTables
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r6, 0x18
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B004A
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B00A8: .4byte gUnknown_083CA3E4
+_080B00AC: .4byte gUnknown_083CA33C
+_080B00B0: .4byte gSprites
+_080B00B4: .4byte gUnknown_083CA3C4
+_080B00B8: .4byte gSpriteTemplate_83CA3F4
+_080B00BC: .4byte gUnknown_02038696
+_080B00C0: .4byte 0x02019338
+_080B00C4: .4byte gUnknown_083CA464
+ thumb_func_end sub_80B0034
+
+ thumb_func_start sub_80B00C8
+sub_80B00C8: @ 80B00C8
+ push {lr}
+ ldr r0, _080B0104 @ =gUnknown_083CA46C
+ bl LoadCompressedObjectPic
+ ldr r0, _080B0108 @ =gUnknown_083CA474
+ bl LoadSpritePalette
+ ldr r0, _080B010C @ =gSpriteTemplate_83CA484
+ movs r1, 0x1E
+ movs r2, 0x2C
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B0110 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r3, 0x4
+ orrs r2, r3
+ strb r2, [r1]
+ ldr r1, _080B0114 @ =0x02019204
+ adds r1, 0x58
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0104: .4byte gUnknown_083CA46C
+_080B0108: .4byte gUnknown_083CA474
+_080B010C: .4byte gSpriteTemplate_83CA484
+_080B0110: .4byte gSprites
+_080B0114: .4byte 0x02019204
+ thumb_func_end sub_80B00C8
+
+ thumb_func_start nullsub_18
+nullsub_18: @ 80B0118
+ bx lr
+ thumb_func_end nullsub_18
+
+ thumb_func_start unref_sub_80B011C
+unref_sub_80B011C: @ 80B011C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _080B0198 @ =gUnknown_083CC3AC
+ bl LoadCompressedObjectPic
+ movs r4, 0
+ ldr r5, _080B019C @ =gUnknown_083CC3B4
+_080B012C:
+ lsls r0, r4, 3
+ adds r0, r5
+ bl LoadCompressedObjectPalette
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080B012C
+ movs r4, 0
+ ldr r5, _080B01A0 @ =gUnknown_083CA330
+ adds r0, r5, 0x1
+ mov r8, r0
+ ldr r7, _080B01A4 @ =gSprites
+ ldr r6, _080B01A8 @ =0x0201920d
+_080B014A:
+ lsls r2, r4, 1
+ adds r0, r2, r4
+ lsls r0, 3
+ ldr r1, _080B01AC @ =gSpriteTemplate_83CC454
+ adds r0, r1
+ adds r1, r2, r5
+ ldrb r1, [r1]
+ add r2, r8
+ ldrb r2, [r2]
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ movs r2, 0x3E
+ adds r2, r1
+ mov r12, r2
+ ldrb r2, [r2]
+ movs r3, 0x4
+ orrs r2, r3
+ mov r3, r12
+ strb r2, [r3]
+ strh r4, [r1, 0x2E]
+ adds r1, r4, r6
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080B014A
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0198: .4byte gUnknown_083CC3AC
+_080B019C: .4byte gUnknown_083CC3B4
+_080B01A0: .4byte gUnknown_083CA330
+_080B01A4: .4byte gSprites
+_080B01A8: .4byte 0x0201920d
+_080B01AC: .4byte gSpriteTemplate_83CC454
+ thumb_func_end unref_sub_80B011C
+
+ thumb_func_start unref_sub_80B01B0
+unref_sub_80B01B0: @ 80B01B0
+ push {r4,r5,lr}
+ movs r2, 0
+ ldr r5, _080B01D4 @ =0x0201920d
+ ldr r4, _080B01D8 @ =gSprites + 0x1C
+ ldr r3, _080B01DC @ =ObjectCB_SwitchPocketRotatingBallInit
+_080B01BA:
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ str r3, [r0]
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080B01BA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B01D4: .4byte 0x0201920d
+_080B01D8: .4byte gSprites + 0x1C
+_080B01DC: .4byte sub_80B0238
+ thumb_func_end unref_sub_80B01B0
+
+ thumb_func_start unref_sub_80B01E0
+unref_sub_80B01E0: @ 80B01E0
+ push {r4,r5,lr}
+ movs r3, 0
+ ldr r2, _080B0224 @ =gSprites
+ ldr r4, _080B0228 @ =0x02019204
+ ldrb r1, [r4, 0x9]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _080B022C @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _080B021A
+ adds r5, r4, 0
+ adds r5, 0x9
+ adds r4, r1, 0
+_080B0202:
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _080B021A
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, r4
+ beq _080B0202
+_080B021A:
+ cmp r3, 0x4
+ beq _080B0230
+ movs r0, 0
+ b _080B0232
+ .align 2, 0
+_080B0224: .4byte gSprites
+_080B0228: .4byte 0x02019204
+_080B022C: .4byte SpriteCallbackDummy
+_080B0230:
+ movs r0, 0x1
+_080B0232:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80B01E0
+
+ thumb_func_start sub_80B0238
+sub_80B0238: @ 80B0238
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080B0268
+ ldr r0, _080B0264 @ =sub_80B02A8
+ b _080B0272
+ .align 2, 0
+_080B0264: .4byte sub_80B02A8
+_080B0268:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r0, _080B027C @ =sub_80B0280
+_080B0272:
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B027C: .4byte sub_80B0280
+ thumb_func_end sub_80B0238
+
+ thumb_func_start sub_80B0280
+sub_80B0280: @ 80B0280
+ push {lr}
+ adds r3, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080B02A0
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080B02A4 @ =sub_80B02A8
+ str r0, [r3, 0x1C]
+_080B02A0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B02A4: .4byte sub_80B02A8
+ thumb_func_end sub_80B0280
+
+ thumb_func_start sub_80B02A8
+sub_80B02A8: @ 80B02A8
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _080B02EC @ =0x02019260
+ adds r0, r1
+ ldrb r1, [r0, 0xB]
+ lsls r1, 30
+ lsrs r1, 30
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldr r0, _080B02F0 @ =sub_80B02F4
+ str r0, [r4, 0x1C]
+ movs r0, 0x18
+ bl PlaySE
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B02EC: .4byte 0x02019260
+_080B02F0: .4byte sub_80B02F4
+ thumb_func_end sub_80B02A8
+
+ thumb_func_start sub_80B02F4
+sub_80B02F4: @ 80B02F4
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080B0318
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x4
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r4, 0x1]
+ ldr r0, _080B0320 @ =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+_080B0318:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0320: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80B02F4
+
+ thumb_func_start sub_80B0324
+sub_80B0324: @ 80B0324
+ push {r4,lr}
+ ldr r0, _080B035C @ =sub_80B0458
+ movs r1, 0x1E
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B0360 @ =0x02019204
+ strb r0, [r1, 0xD]
+ movs r2, 0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r4, _080B0364 @ =gTasks + 0x8
+ movs r3, 0xFF
+_080B0342:
+ lsls r0, r2, 3
+ adds r0, r1
+ adds r0, r4
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080B0342
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B035C: .4byte sub_80B0458
+_080B0360: .4byte 0x02019204
+_080B0364: .4byte gTasks + 0x8
+ thumb_func_end sub_80B0324
+
+ thumb_func_start sub_80B0368
+sub_80B0368: @ 80B0368
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080B03A0 @ =gTasks
+ ldr r5, _080B03A4 @ =0x02019204
+ ldrb r2, [r5, 0xD]
+ lsls r1, r2, 2
+ adds r1, r2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, 0x8
+ adds r1, r3
+ movs r4, 0
+ strh r4, [r1]
+ lsls r0, 2
+ adds r0, 0x1
+ lsls r0, 1
+ ldrb r2, [r5, 0xD]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r0, r1
+ adds r0, r3
+ strh r4, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B03A0: .4byte gTasks
+_080B03A4: .4byte 0x02019204
+ thumb_func_end sub_80B0368
+
+ thumb_func_start sub_80B03A8
+sub_80B03A8: @ 80B03A8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080B03D0 @ =sub_80B03D8
+ movs r1, 0x1F
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B03D4 @ =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
+_080B03D0: .4byte sub_80B03D8
+_080B03D4: .4byte gTasks
+ thumb_func_end sub_80B03A8
+
+ thumb_func_start sub_80B03D8
+sub_80B03D8: @ 80B03D8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r2, _080B044C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x8]
+ adds r4, r0, 0
+ ldr r6, _080B0450 @ =0x02019204
+ ldrb r1, [r6, 0xD]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, r4
+ lsls r0, 3
+ adds r7, r2, 0
+ adds r7, 0x8
+ adds r1, r0, r7
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080B040C
+ cmp r0, 0xFF
+ bne _080B0444
+_080B040C:
+ movs r3, 0
+ movs r0, 0xFF
+ strh r0, [r1]
+ lsls r1, r4, 2
+ adds r1, 0x1
+ lsls r1, 1
+ ldrb r2, [r6, 0xD]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r7
+ strh r3, [r1]
+ adds r0, r6, 0
+ adds r0, 0x14
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ adds r0, 0x5
+ lsls r0, 4
+ adds r0, 0x6
+ ldr r3, _080B0454 @ =0x00004bff
+ movs r1, 0x2
+ movs r2, 0
+ bl BlendPalette
+ adds r0, r5, 0
+ bl DestroyTask
+_080B0444:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B044C: .4byte gTasks
+_080B0450: .4byte 0x02019204
+_080B0454: .4byte 0x00004bff
+ thumb_func_end sub_80B03D8
+
+ thumb_func_start sub_80B0458
+sub_80B0458: @ 80B0458
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ lsls r1, r0, 2
+ adds r1, r0
+ mov r9, r1
+ lsls r7, r1, 3
+ ldr r0, _080B04A8 @ =gTasks + 0x8
+ mov r8, r0
+ movs r1, 0x8
+ negs r1, r1
+ add r1, r8
+ mov r10, r1
+_080B047C:
+ lsls r0, r6, 26
+ lsrs r3, r0, 24
+ lsls r0, r3, 1
+ adds r0, r7
+ mov r4, r8
+ adds r2, r0, r4
+ ldrh r4, [r2]
+ movs r5, 0
+ ldrsh r0, [r2, r5]
+ cmp r0, 0xFF
+ beq _080B04F6
+ adds r0, r3, 0x1
+ lsls r1, r0, 1
+ adds r1, r7
+ add r1, r8
+ movs r5, 0
+ ldrsh r1, [r1, r5]
+ adds r5, r0, 0
+ cmp r1, 0
+ bne _080B04AC
+ adds r0, r4, 0x1
+ b _080B04AE
+ .align 2, 0
+_080B04A8: .4byte gTasks + 0x8
+_080B04AC:
+ subs r0, r4, 0x1
+_080B04AE:
+ strh r0, [r2]
+ lsls r1, r3, 1
+ mov r0, r9
+ lsls r2, r0, 3
+ adds r0, r1, r2
+ mov r3, r10
+ adds r3, 0x8
+ adds r0, r3
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ adds r4, r1, 0
+ cmp r0, 0x10
+ beq _080B04CC
+ cmp r0, 0
+ bne _080B04DA
+_080B04CC:
+ lsls r0, r5, 1
+ adds r0, r2
+ adds r0, r3
+ ldrh r1, [r0]
+ movs r2, 0x1
+ eors r1, r2
+ strh r1, [r0]
+_080B04DA:
+ ldr r0, _080B0510 @ =0x02019204
+ adds r0, 0x14
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ adds r0, 0x5
+ lsls r0, 4
+ adds r0, 0x6
+ adds r1, r4, r7
+ add r1, r8
+ ldrb r2, [r1]
+ movs r1, 0x2
+ ldr r3, _080B0514 @ =0x00004bff
+ bl BlendPalette
+_080B04F6:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bls _080B047C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0510: .4byte 0x02019204
+_080B0514: .4byte 0x00004bff
+ thumb_func_end sub_80B0458
+
+ thumb_func_start sub_80B0518
+sub_80B0518: @ 80B0518
+ push {r4,lr}
+ ldr r0, _080B0540 @ =sub_80B05FC
+ movs r1, 0x1E
+ bl CreateTask
+ ldr r1, _080B0544 @ =0x02019204
+ strb r0, [r1, 0xE]
+ movs r4, 0
+_080B0528:
+ adds r0, r4, 0
+ bl sub_80B0548
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080B0528
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0540: .4byte sub_80B05FC
+_080B0544: .4byte 0x02019204
+ thumb_func_end sub_80B0518
+
+ thumb_func_start sub_80B0548
+sub_80B0548: @ 80B0548
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080B0580 @ =gTasks
+ ldr r4, _080B0584 @ =0x02019204
+ ldrb r2, [r4, 0xE]
+ lsls r1, r2, 2
+ adds r1, r2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, 0x8
+ adds r1, r3
+ movs r5, 0
+ movs r2, 0xFF
+ strh r2, [r1]
+ lsls r0, 2
+ adds r0, 0x1
+ lsls r0, 1
+ ldrb r2, [r4, 0xE]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r0, r1
+ adds r0, r3
+ strh r5, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0580: .4byte gTasks
+_080B0584: .4byte 0x02019204
+ thumb_func_end sub_80B0548
+
+ thumb_func_start sub_80B0588
+sub_80B0588: @ 80B0588
+ push {r4,lr}
+ movs r4, 0
+_080B058C:
+ adds r0, r4, 0
+ bl sub_80B05A4
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080B058C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B0588
+
+ thumb_func_start sub_80B05A4
+sub_80B05A4: @ 80B05A4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80B0548
+ adds r0, r4, 0x5
+ lsls r2, r0, 5
+ ldr r3, _080B05E8 @ =gPlttBufferUnfaded + 0x14
+ adds r6, r2, r3
+ ldr r5, _080B05EC @ =gPlttBufferFaded + 0x14
+ adds r2, r5
+ ldr r1, _080B05F0 @ =0x040000d4
+ str r6, [r1]
+ str r2, [r1, 0x4]
+ ldr r2, _080B05F4 @ =0x80000001
+ str r2, [r1, 0x8]
+ ldr r6, [r1, 0x8]
+ lsls r0, 4
+ adds r4, 0xC
+ adds r0, r4
+ lsls r0, 1
+ subs r3, 0x14
+ adds r3, r0, r3
+ subs r5, 0x14
+ adds r0, r5
+ str r3, [r1]
+ str r0, [r1, 0x4]
+ str r2, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B05E8: .4byte gPlttBufferUnfaded + 0x14
+_080B05EC: .4byte gPlttBufferFaded + 0x14
+_080B05F0: .4byte 0x040000d4
+_080B05F4: .4byte 0x80000001
+ thumb_func_end sub_80B05A4
+
+ thumb_func_start nullsub_19
+nullsub_19: @ 80B05F8
+ bx lr
+ thumb_func_end nullsub_19
+
+ thumb_func_start sub_80B05FC
+sub_80B05FC: @ 80B05FC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r7, 0
+ lsls r1, r0, 2
+ adds r1, r0
+ mov r9, r1
+ lsls r6, r1, 3
+ ldr r0, _080B0664 @ =gTasks + 0x8
+ mov r8, r0
+ ldr r1, _080B0668 @ =0x00004bff
+ mov r10, r1
+_080B061C:
+ lsls r0, r7, 26
+ lsrs r3, r0, 24
+ lsls r0, r3, 1
+ adds r0, r6
+ mov r4, r8
+ adds r2, r0, r4
+ movs r5, 0
+ ldrsh r0, [r2, r5]
+ cmp r0, 0xFF
+ beq _080B06C2
+ adds r0, r3, 0x2
+ lsls r0, 1
+ adds r0, r6
+ adds r1, r0, r4
+ ldrh r0, [r1]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080B06C2
+ strh r4, [r1]
+ adds r0, r3, 0x1
+ lsls r1, r0, 1
+ adds r1, r6
+ add r1, r8
+ movs r4, 0
+ ldrsh r1, [r1, r4]
+ adds r4, r0, 0
+ cmp r1, 0
+ bne _080B066C
+ ldrh r0, [r2]
+ adds r0, 0x1
+ b _080B0670
+ .align 2, 0
+_080B0664: .4byte gTasks + 0x8
+_080B0668: .4byte 0x00004bff
+_080B066C:
+ ldrh r0, [r2]
+ subs r0, 0x1
+_080B0670:
+ strh r0, [r2]
+ lsls r1, r3, 1
+ mov r5, r9
+ lsls r2, r5, 3
+ adds r0, r1, r2
+ ldr r3, _080B06DC @ =gTasks
+ adds r3, 0x8
+ adds r0, r3
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ adds r5, r1, 0
+ cmp r0, 0x10
+ beq _080B068E
+ cmp r0, 0
+ bne _080B069C
+_080B068E:
+ lsls r0, r4, 1
+ adds r0, r2
+ adds r0, r3
+ ldrh r1, [r0]
+ movs r2, 0x1
+ eors r1, r2
+ strh r1, [r0]
+_080B069C:
+ adds r4, r7, 0x5
+ lsls r4, 4
+ adds r0, r4, 0
+ adds r0, 0xA
+ adds r5, r6
+ add r5, r8
+ ldrb r2, [r5]
+ movs r1, 0x1
+ mov r3, r10
+ bl BlendPalette
+ adds r4, 0xC
+ adds r4, r7
+ ldrb r2, [r5]
+ adds r0, r4, 0
+ movs r1, 0x1
+ mov r3, r10
+ bl BlendPalette
+_080B06C2:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x3
+ bls _080B061C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B06DC: .4byte gTasks
+ thumb_func_end sub_80B05FC
+
+ thumb_func_start unref_sub_80B06E0
+unref_sub_80B06E0: @ 80B06E0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ ldr r0, _080B073C @ =sub_80B0748
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ ldr r0, _080B0740 @ =gTasks + 0x8
+ mov r8, r0
+ ldr r1, _080B0744 @ =0x02019338
+ mov r12, r1
+_080B0704:
+ lsls r4, r3, 2
+ lsls r0, r3, 26
+ lsrs r0, 23
+ adds r0, r6
+ add r0, r8
+ adds r2, r7, r3
+ ldrb r1, [r2]
+ strh r1, [r0]
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _080B0726
+ mov r1, r12
+ adds r0, r4, r1
+ ldrb r1, [r0, 0x2]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0, 0x2]
+_080B0726:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080B0704
+ adds r0, r5, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B073C: .4byte sub_80B0748
+_080B0740: .4byte gTasks + 0x8
+_080B0744: .4byte 0x02019338
+ thumb_func_end unref_sub_80B06E0
+
+ thumb_func_start sub_80B0748
+sub_80B0748: @ 80B0748
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ ldr r2, _080B07F4 @ =gTasks
+ movs r1, 0x8
+ adds r1, r2
+ mov r10, r1
+ ldr r3, [sp]
+ lsls r3, 2
+ str r3, [sp, 0x1C]
+ ldr r1, [sp]
+ adds r0, r3, r1
+ lsls r0, 3
+ str r0, [sp, 0xC]
+_080B0774:
+ ldr r0, _080B07F8 @ =gUnknown_02038696
+ ldr r3, [sp, 0x4]
+ adds r0, r3, r0
+ ldrb r4, [r0]
+ lsls r0, r4, 26
+ lsrs r1, r0, 24
+ lsls r0, r1, 1
+ str r0, [sp, 0x8]
+ ldr r3, [sp]
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r6, r0, 3
+ ldr r3, [sp, 0x8]
+ adds r0, r3, r6
+ add r0, r10
+ mov r9, r0
+ ldrb r7, [r0]
+ cmp r7, 0
+ bne _080B079C
+ b _080B0910
+_080B079C:
+ adds r3, r1, 0x1
+ lsls r0, r3, 1
+ adds r0, r6
+ add r0, r10
+ ldrb r0, [r0]
+ mov r8, r0
+ adds r2, r1, 0x2
+ lsls r0, r2, 1
+ adds r0, r6
+ add r0, r10
+ ldrb r5, [r0]
+ adds r1, 0x3
+ lsls r0, r1, 1
+ adds r0, r6
+ add r0, r10
+ ldrb r6, [r0]
+ str r3, [sp, 0x10]
+ str r2, [sp, 0x14]
+ str r1, [sp, 0x18]
+ cmp r7, 0x1
+ bne _080B0818
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x1
+ beq _080B07D2
+ b _080B08EA
+_080B07D2:
+ movs r6, 0
+ adds r0, r4, 0x5
+ lsls r0, 4
+ adds r0, 0x1
+ movs r1, 0x3
+ adds r2, r5, 0
+ ldr r3, _080B07FC @ =0x00007fff
+ bl BlendPalette
+ cmp r5, 0
+ bne _080B0800
+ mov r0, r8
+ cmp r0, 0x4
+ bne _080B0800
+ mov r1, r9
+ strh r6, [r1]
+ b _080B08EA
+ .align 2, 0
+_080B07F4: .4byte gTasks
+_080B07F8: .4byte gUnknown_02038696
+_080B07FC: .4byte 0x00007fff
+_080B0800:
+ adds r0, r5, 0x2
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xD
+ bls _080B08EA
+ movs r5, 0
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ b _080B08EA
+_080B0818:
+ cmp r7, 0x2
+ beq _080B0820
+ cmp r7, 0x4
+ bne _080B0896
+_080B0820:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bne _080B08EA
+ movs r6, 0
+ adds r0, r4, 0x5
+ lsls r0, 4
+ adds r0, 0x1
+ ldr r2, _080B0854 @ =gUnknown_083CC5A4
+ lsls r1, r4, 1
+ adds r1, r2
+ ldrh r3, [r1]
+ movs r1, 0x3
+ adds r2, r5, 0
+ bl BlendPalette
+ cmp r5, 0
+ bne _080B0858
+ mov r2, r8
+ cmp r2, 0x2
+ bne _080B0858
+ mov r3, r9
+ strh r6, [r3]
+ b _080B08EA
+ .align 2, 0
+_080B0854: .4byte gUnknown_083CC5A4
+_080B0858:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xE
+ bne _080B08EA
+ movs r5, 0
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r7, 0x4
+ bne _080B08EA
+ cmp r0, 0x1
+ bne _080B08EA
+ adds r4, 0x9
+ lsls r4, 4
+ adds r0, r4, 0x2
+ movs r1, 0x1
+ movs r2, 0x4
+ movs r3, 0
+ bl BlendPalette
+ adds r4, 0x5
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0x4
+ movs r3, 0
+ bl BlendPalette
+ b _080B08EA
+_080B0896:
+ cmp r7, 0x3
+ bne _080B08EA
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xC
+ bne _080B08EA
+ movs r6, 0
+ adds r0, r4, 0x5
+ lsls r0, 4
+ adds r4, r0, 0x1
+ adds r0, r4, 0
+ movs r1, 0x3
+ adds r2, r5, 0
+ movs r3, 0
+ bl BlendPalette
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bne _080B08EA
+ ldr r0, _080B0930 @ =gPlttBufferFaded
+ lsls r1, r4, 1
+ adds r0, r1, r0
+ ldrh r2, [r0]
+ ldr r0, _080B0934 @ =gPlttBufferUnfaded
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r1, _080B0938 @ =0x040000d4
+ str r2, [r1]
+ str r0, [r1, 0x4]
+ movs r0, 0x80
+ lsls r0, 24
+ orrs r7, r0
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x8]
+ ldr r2, [sp, 0xC]
+ adds r0, r1, r2
+ add r0, r10
+ strh r6, [r0]
+_080B08EA:
+ ldr r3, [sp, 0x10]
+ lsls r0, r3, 1
+ ldr r1, [sp, 0xC]
+ adds r0, r1
+ add r0, r10
+ mov r2, r8
+ strh r2, [r0]
+ ldr r3, [sp, 0x14]
+ lsls r0, r3, 1
+ adds r0, r1
+ add r0, r10
+ strh r5, [r0]
+ ldr r1, [sp, 0x18]
+ lsls r0, r1, 1
+ ldr r2, [sp, 0xC]
+ adds r0, r2
+ add r0, r10
+ strh r6, [r0]
+ ldr r2, _080B093C @ =gTasks
+_080B0910:
+ ldr r0, [sp, 0x4]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ cmp r0, 0x3
+ bhi _080B0920
+ b _080B0774
+_080B0920:
+ movs r4, 0
+ ldr r3, [sp, 0x1C]
+ ldr r1, [sp]
+ adds r0, r3, r1
+ lsls r1, r0, 3
+ adds r2, 0x8
+ adds r0, r1, r2
+ b _080B0950
+ .align 2, 0
+_080B0930: .4byte gPlttBufferFaded
+_080B0934: .4byte gPlttBufferUnfaded
+_080B0938: .4byte 0x040000d4
+_080B093C: .4byte gTasks
+_080B0940:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bhi _080B0958
+ lsls r0, r4, 3
+ adds r0, r1
+ adds r0, r2
+_080B0950:
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ beq _080B0940
+_080B0958:
+ cmp r4, 0x4
+ bne _080B0980
+ movs r4, 0
+ ldr r3, _080B0990 @ =0x02019338
+ movs r5, 0x3
+ negs r5, r5
+_080B0964:
+ lsls r1, r4, 2
+ adds r1, r3
+ ldrb r2, [r1, 0x2]
+ adds r0, r5, 0
+ ands r0, r2
+ strb r0, [r1, 0x2]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080B0964
+ ldr r0, [sp]
+ bl DestroyTask
+_080B0980:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0990: .4byte 0x02019338
+ thumb_func_end sub_80B0748
+
+ thumb_func_start unref_sub_80B0994
+unref_sub_80B0994: @ 80B0994
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B09A6
+ ldr r0, _080B09AC @ =0x02019204
+ ldrb r1, [r0, 0x6]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x6]
+_080B09A6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B09AC: .4byte 0x02019204
+ thumb_func_end unref_sub_80B0994
+
+ thumb_func_start sub_80B09B0
+sub_80B09B0: @ 80B09B0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ ldr r1, _080B09D4 @ =0x02019260
+ adds r0, r1
+ ldrb r1, [r0, 0x15]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B09D8
+ adds r0, r2, 0
+ bl sub_80B0368
+ b _080B09DE
+ .align 2, 0
+_080B09D4: .4byte 0x02019260
+_080B09D8:
+ adds r0, r2, 0
+ bl sub_80B03A8
+_080B09DE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B09B0
+
+ thumb_func_start sub_80B09E4
+sub_80B09E4: @ 80B09E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ mov r9, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _080B0B2C @ =gUnknown_02038696
+ mov r1, r9
+ adds r7, r1, r0
+ ldrb r0, [r7]
+ lsls r5, r0, 2
+ adds r5, r0
+ lsls r5, 27
+ movs r2, 0x80
+ lsls r2, 22
+ adds r5, r2
+ lsrs r5, 24
+ lsls r4, r1, 3
+ ldr r0, _080B0B30 @ =gUnknown_083CC4B4
+ adds r0, r4, r0
+ bl LoadCompressedObjectPic
+ ldr r0, _080B0B34 @ =gUnknown_083CC4D4
+ adds r4, r0
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ mov r3, r9
+ lsls r4, r3, 1
+ add r4, r9
+ lsls r4, 3
+ ldr r0, _080B0B38 @ =gSpriteTemplate_83CC53C
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB8
+ adds r2, r5, 0
+ movs r3, 0x1D
+ bl CreateSprite
+ mov r8, r0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ adds r0, r4, 0
+ movs r1, 0xF8
+ adds r2, r5, 0
+ movs r3, 0x1D
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r1, _080B0B3C @ =gSprites
+ mov r10, r1
+ lsls r5, r6, 4
+ adds r5, r6
+ lsls r5, 2
+ add r5, r10
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x40
+ ldr r3, _080B0B40 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080B0B44 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldrb r0, [r7]
+ lsls r3, r0, 2
+ adds r3, r0
+ lsls r3, 6
+ ldr r0, _080B0B48 @ =0x0600e026
+ adds r3, r0
+ mov r1, r8
+ lsls r4, r1, 4
+ add r4, r8
+ lsls r4, 2
+ add r4, r10
+ ldrh r0, [r4, 0x4]
+ lsls r0, 22
+ lsrs r0, 17
+ ldr r2, _080B0B4C @ =0x06010000
+ mov r10, r2
+ add r0, r10
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x3
+ movs r2, 0xC0
+ lsls r2, 19
+ bl sub_8040F80
+ ldrb r0, [r7]
+ lsls r3, r0, 2
+ adds r3, r0
+ lsls r3, 6
+ ldr r7, _080B0B50 @ =0x0600e036
+ adds r3, r7
+ ldrh r0, [r5, 0x4]
+ lsls r0, 22
+ lsrs r0, 17
+ add r0, r10
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x3
+ movs r2, 0xC0
+ lsls r2, 19
+ bl sub_8040F80
+ ldrh r0, [r4, 0x4]
+ lsls r0, 22
+ lsrs r0, 17
+ movs r1, 0xA0
+ lsls r1, 3
+ adds r0, r1
+ add r0, r10
+ movs r2, 0
+ str r2, [sp, 0x8]
+ ldr r1, _080B0B54 @ =0x040000d4
+ add r3, sp, 0x8
+ mov r12, r3
+ str r3, [r1]
+ str r0, [r1, 0x4]
+ ldr r3, _080B0B58 @ =0x850000c0
+ str r3, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add r0, sp, 0x4
+ strb r2, [r0]
+ strb r2, [r0]
+ ldrh r0, [r5, 0x4]
+ lsls r0, 22
+ lsrs r0, 17
+ movs r7, 0xA0
+ lsls r7, 3
+ adds r0, r7
+ add r0, r10
+ str r2, [sp, 0x8]
+ mov r2, r12
+ str r2, [r1]
+ str r0, [r1, 0x4]
+ str r3, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ strh r6, [r4, 0x2E]
+ mov r3, r8
+ strh r3, [r5, 0x2E]
+ mov r7, r9
+ strh r7, [r4, 0x30]
+ mov r0, r9
+ strh r0, [r5, 0x30]
+ mov r0, r8
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B0B2C: .4byte gUnknown_02038696
+_080B0B30: .4byte gUnknown_083CC4B4
+_080B0B34: .4byte gUnknown_083CC4D4
+_080B0B38: .4byte gSpriteTemplate_83CC53C
+_080B0B3C: .4byte gSprites
+_080B0B40: .4byte 0x000003ff
+_080B0B44: .4byte 0xfffffc00
+_080B0B48: .4byte 0x0600e026
+_080B0B4C: .4byte 0x06010000
+_080B0B50: .4byte 0x0600e036
+_080B0B54: .4byte 0x040000d4
+_080B0B58: .4byte 0x850000c0
+ thumb_func_end sub_80B09E4
+
+ thumb_func_start sub_80B0B5C
+sub_80B0B5C: @ 80B0B5C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080B0B94 @ =gSprites
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ adds r5, r1
+ ldrh r0, [r5, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r4, r1
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ adds r0, r5, 0
+ bl DestroySpriteAndFreeResources
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0B94: .4byte gSprites
+ thumb_func_end sub_80B0B5C
+
+ thumb_func_start sub_80B0B98
+sub_80B0B98: @ 80B0B98
+ ldr r1, _080B0BAC @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080B0BB0 @ =0x00000907
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080B0BAC: .4byte REG_BLDCNT
+_080B0BB0: .4byte 0x00000907
+ thumb_func_end sub_80B0B98
+
+ thumb_func_start sub_80B0BB4
+sub_80B0BB4: @ 80B0BB4
+ ldr r0, _080B0BC0 @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080B0BC0: .4byte REG_BLDCNT
+ thumb_func_end sub_80B0BB4
+
+ thumb_func_start sub_80B0BC4
+sub_80B0BC4: @ 80B0BC4
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ adds r4, r0, 0
+ mov r9, r1
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ bl sub_80B0B98
+ ldr r1, _080B0C38 @ =gSprites
+ mov r8, r1
+ lsls r6, r4, 4
+ adds r6, r4
+ lsls r6, 2
+ adds r0, r6, r1
+ movs r1, 0x30
+ ldrsh r2, [r0, r1]
+ lsls r2, 2
+ ldr r1, _080B0C3C @ =0x02019338
+ adds r2, r1
+ ldrb r1, [r2, 0x2]
+ movs r3, 0x2
+ orrs r1, r3
+ strb r1, [r2, 0x2]
+ ldrh r5, [r0, 0x2E]
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ mov r1, r8
+ adds r0, r4, r1
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r0, 0x1C
+ add r8, r0
+ add r6, r8
+ ldr r0, _080B0C40 @ =sub_80B0C5C
+ str r0, [r6]
+ add r4, r8
+ ldr r0, _080B0C44 @ =SpriteCallbackDummy
+ str r0, [r4]
+ mov r1, r9
+ cmp r1, 0
+ bne _080B0C48
+ movs r0, 0x65
+ bl PlaySE
+ b _080B0C4E
+ .align 2, 0
+_080B0C38: .4byte gSprites
+_080B0C3C: .4byte 0x02019338
+_080B0C40: .4byte sub_80B0C5C
+_080B0C44: .4byte SpriteCallbackDummy
+_080B0C48:
+ movs r0, 0x2
+ bl PlaySE
+_080B0C4E:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B0BC4
+
+ thumb_func_start sub_80B0C5C
+sub_80B0C5C: @ 80B0C5C
+ push {lr}
+ mov r12, r0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080B0CA4
+ mov r0, r12
+ ldrh r1, [r0, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080B0CA8 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _080B0CA4
+ mov r3, r12
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r3]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, _080B0CAC @ =sub_80B0CB0
+ mov r1, r12
+ str r0, [r1, 0x1C]
+_080B0CA4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0CA8: .4byte gSprites
+_080B0CAC: .4byte sub_80B0CB0
+ thumb_func_end sub_80B0C5C
+
+ thumb_func_start sub_80B0CB0
+sub_80B0CB0: @ 80B0CB0
+ push {lr}
+ movs r1, 0x30
+ ldrsh r2, [r0, r1]
+ lsls r2, 2
+ ldr r1, _080B0CD8 @ =0x02019338
+ adds r2, r1
+ ldrb r3, [r2, 0x2]
+ movs r1, 0x3
+ negs r1, r1
+ ands r1, r3
+ strb r1, [r2, 0x2]
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80B0B5C
+ bl sub_80B0BB4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0CD8: .4byte 0x02019338
+ thumb_func_end sub_80B0CB0
+
+ thumb_func_start sub_80B0CDC
+sub_80B0CDC: @ 80B0CDC
+ lsls r0, 24
+ lsrs r0, 22
+ ldr r1, _080B0CF0 @ =0x02019338
+ adds r0, r1
+ ldrb r2, [r0, 0x2]
+ movs r1, 0x3
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x2]
+ bx lr
+ .align 2, 0
+_080B0CF0: .4byte 0x02019338
+ thumb_func_end sub_80B0CDC
+
+ thumb_func_start unref_sub_80B0CF4
+unref_sub_80B0CF4: @ 80B0CF4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ ldr r0, _080B0D5C @ =0x02000000
+ movs r1, 0xC0
+ lsls r1, 9
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r2, 0x1
+ eors r1, r2
+ strb r1, [r0]
+ cmp r1, 0
+ bne _080B0D6C
+ movs r4, 0
+ ldr r6, _080B0D60 @ =gUnknown_083CA308
+ adds r3, r6, 0x1
+ mov r8, r3
+ ldr r5, _080B0D64 @ =gUnknown_083CA310
+ adds r7, r5, 0x1
+_080B0D1C:
+ lsls r1, r4, 1
+ adds r0, r1, r6
+ ldrb r2, [r0]
+ mov r3, r8
+ adds r0, r1, r3
+ ldrb r3, [r0]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ adds r0, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ adds r1, r7
+ ldrb r0, [r1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldr r0, _080B0D68 @ =gUnknown_03004210
+ movs r1, 0
+ bl FillWindowRect_DefaultPalette
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080B0D1C
+ bl sub_80AE514
+ bl sub_80AEB30
+ b _080B0D70
+ .align 2, 0
+_080B0D5C: .4byte 0x02000000
+_080B0D60: .4byte gUnknown_083CA308
+_080B0D64: .4byte gUnknown_083CA310
+_080B0D68: .4byte gUnknown_03004210
+_080B0D6C:
+ bl sub_80B0D7C
+_080B0D70:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_80B0CF4
+
+ thumb_func_start sub_80B0D7C
+sub_80B0D7C: @ 80B0D7C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ movs r5, 0
+ ldr r0, _080B0ED0 @ =0x02000000
+ movs r1, 0xC0
+ lsls r1, 9
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080B0D98
+ b _080B0EC2
+_080B0D98:
+ movs r4, 0
+ ldr r7, _080B0ED4 @ =gUnknown_083CA308
+ adds r3, r7, 0x1
+ mov r9, r3
+ ldr r6, _080B0ED8 @ =gUnknown_083CA310
+ adds r0, r6, 0x1
+ mov r8, r0
+_080B0DA6:
+ lsls r1, r4, 1
+ adds r0, r1, r7
+ ldrb r2, [r0]
+ mov r3, r9
+ adds r0, r1, r3
+ ldrb r3, [r0]
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ adds r0, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ add r1, r8
+ ldrb r0, [r1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldr r0, _080B0EDC @ =gUnknown_03004210
+ movs r1, 0
+ bl FillWindowRect_DefaultPalette
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080B0DA6
+ movs r4, 0
+ ldr r6, _080B0ED8 @ =gUnknown_083CA310
+ adds r7, r6, 0x1
+_080B0DE2:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r1, _080B0EE0 @ =0x02019260
+ adds r0, r1
+ ldrh r2, [r0, 0x4]
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _080B0E08
+ negs r0, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ add r1, sp, 0x8
+ movs r0, 0xAE
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080B0E08:
+ mov r0, sp
+ adds r0, r5
+ adds r0, 0x8
+ lsls r1, r2, 16
+ asrs r1, 16
+ movs r2, 0
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080B0EE4 @ =gUnknown_02038696
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ movs r1, 0x16
+ adds r2, r0, 0
+ muls r2, r1
+ movs r3, 0x94
+ lsls r3, 2
+ adds r2, r3
+ lsls r0, 1
+ adds r1, r0, r6
+ ldrb r3, [r1]
+ adds r0, r7
+ ldrb r0, [r0]
+ str r0, [sp]
+ ldr r0, _080B0EDC @ =gUnknown_03004210
+ add r1, sp, 0x8
+ bl sub_8003460
+ movs r5, 0
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080B0DE2
+ movs r4, 0
+ ldr r6, _080B0ED4 @ =gUnknown_083CA308
+ adds r7, r6, 0x1
+_080B0E52:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r1, _080B0EE0 @ =0x02019260
+ adds r0, r1
+ ldrh r2, [r0, 0x2]
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _080B0E78
+ negs r0, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ add r1, sp, 0x8
+ movs r0, 0xAE
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080B0E78:
+ mov r0, sp
+ adds r0, r5
+ adds r0, 0x8
+ lsls r1, r2, 16
+ asrs r1, 16
+ movs r2, 0
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080B0EE4 @ =gUnknown_02038696
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r2, r1, 2
+ adds r2, r1
+ lsls r2, 18
+ movs r3, 0x80
+ lsls r3, 18
+ adds r2, r3
+ lsrs r2, 16
+ lsls r1, 1
+ adds r0, r1, r6
+ ldrb r3, [r0]
+ adds r1, r7
+ ldrb r0, [r1]
+ str r0, [sp]
+ ldr r0, _080B0EDC @ =gUnknown_03004210
+ add r1, sp, 0x8
+ bl sub_8003460
+ movs r5, 0
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080B0E52
+ bl sub_80AEB30
+_080B0EC2:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B0ED0: .4byte 0x02000000
+_080B0ED4: .4byte gUnknown_083CA308
+_080B0ED8: .4byte gUnknown_083CA310
+_080B0EDC: .4byte gUnknown_03004210
+_080B0EE0: .4byte 0x02019260
+_080B0EE4: .4byte gUnknown_02038696
+ thumb_func_end sub_80B0D7C
+
+ thumb_func_start unref_sub_80B0EE8
+unref_sub_80B0EE8: @ 80B0EE8
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ movs r4, 0
+ subs r0, r1, 0x1
+ cmp r4, r0
+ bge _080B0F20
+ adds r6, r0, 0
+_080B0EF6:
+ adds r3, r0, 0
+ adds r5, r4, 0x1
+ cmp r0, r4
+ ble _080B0F18
+ lsls r0, 2
+ subs r0, 0x4
+ adds r0, r7
+_080B0F04:
+ ldr r1, [r0]
+ ldr r2, [r0, 0x4]
+ cmp r1, r2
+ ble _080B0F10
+ str r1, [r0, 0x4]
+ str r2, [r0]
+_080B0F10:
+ subs r0, 0x4
+ subs r3, 0x1
+ cmp r3, r4
+ bgt _080B0F04
+_080B0F18:
+ adds r4, r5, 0
+ adds r0, r6, 0
+ cmp r4, r0
+ blt _080B0EF6
+_080B0F20:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_80B0EE8
+
+ thumb_func_start sub_80B0F28
+sub_80B0F28: @ 80B0F28
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ add r4, sp, 0x4
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ movs r5, 0
+ add r4, sp, 0x4
+ adds r6, r4, 0
+ movs r7, 0
+_080B0F4E:
+ bl Random
+ adds r1, r0, 0
+ mov r0, sp
+ adds r0, r7
+ adds r0, 0x4
+ strh r1, [r0]
+ movs r2, 0
+ cmp r2, r5
+ bge _080B0F86
+ lsls r0, r1, 16
+ lsrs r0, 16
+ mov r1, sp
+ ldrh r1, [r1, 0x4]
+ cmp r0, r1
+ beq _080B0F80
+_080B0F6E:
+ adds r2, 0x1
+ cmp r2, r5
+ bge _080B0F86
+ lsls r0, r2, 1
+ adds r0, r4, r0
+ ldrh r1, [r6]
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _080B0F6E
+_080B0F80:
+ subs r6, 0x2
+ subs r7, 0x2
+ subs r5, 0x1
+_080B0F86:
+ adds r6, 0x2
+ adds r7, 0x2
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B0F4E
+ mov r2, r8
+ cmp r2, 0
+ bne _080B1050
+ movs r5, 0
+ ldr r3, _080B1008 @ =gUnknown_02038696
+ mov r8, r3
+_080B0F9C:
+ mov r6, r8
+ strb r5, [r6]
+ movs r4, 0
+ cmp r4, r5
+ bge _080B1018
+ ldr r7, _080B100C @ =gUnknown_02038670
+ mov r9, r7
+ lsls r0, r5, 1
+ adds r1, r0, 0
+ add r1, r9
+ mov r12, r1
+ mov r2, sp
+ adds r2, 0x4
+ str r2, [sp, 0xC]
+ add r0, sp
+ adds r0, 0x4
+ str r0, [sp, 0x10]
+ ldr r3, _080B1008 @ =gUnknown_02038696
+ adds r6, r3, 0
+ mov r10, r6
+_080B0FC4:
+ ldrb r0, [r3]
+ lsls r2, r0, 1
+ mov r7, r9
+ adds r0, r2, r7
+ movs r6, 0
+ ldrsh r1, [r0, r6]
+ mov r7, r12
+ movs r6, 0
+ ldrsh r0, [r7, r6]
+ cmp r1, r0
+ blt _080B0FEC
+ cmp r1, r0
+ bne _080B1010
+ ldr r7, [sp, 0xC]
+ adds r0, r7, r2
+ ldrh r0, [r0]
+ ldr r1, [sp, 0x10]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bcs _080B1010
+_080B0FEC:
+ adds r2, r5, 0
+ cmp r5, r4
+ ble _080B1004
+ subs r0, r5, 0x1
+ mov r6, r10
+ adds r1, r0, r6
+_080B0FF8:
+ ldrb r0, [r1]
+ strb r0, [r1, 0x1]
+ subs r1, 0x1
+ subs r2, 0x1
+ cmp r2, r4
+ bgt _080B0FF8
+_080B1004:
+ strb r5, [r3]
+ b _080B1018
+ .align 2, 0
+_080B1008: .4byte gUnknown_02038696
+_080B100C: .4byte gUnknown_02038670
+_080B1010:
+ adds r3, 0x1
+ adds r4, 0x1
+ cmp r4, r5
+ blt _080B0FC4
+_080B1018:
+ cmp r4, r5
+ bne _080B1020
+ mov r7, r8
+ strb r5, [r7]
+_080B1020:
+ movs r0, 0x1
+ add r8, r0
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B0F9C
+ ldr r4, _080B104C @ =gUnknown_02038696
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x4
+ bl memcpy
+ movs r5, 0
+_080B1038:
+ mov r1, sp
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ adds r0, r4
+ strb r5, [r0]
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B1038
+ b _080B10FC
+ .align 2, 0
+_080B104C: .4byte gUnknown_02038696
+_080B1050:
+ mov r0, sp
+ movs r1, 0xFF
+ movs r2, 0x4
+ bl memset
+ movs r5, 0
+ ldr r3, _080B1070 @ =gUnknown_02038696
+ movs r6, 0
+_080B1060:
+ ldr r0, _080B1074 @ =0x02019260
+ adds r0, r6, r0
+ ldrb r0, [r0, 0xB]
+ lsls r0, 30
+ lsrs r2, r0, 30
+ mov r7, sp
+ adds r1, r7, r2
+ b _080B1082
+ .align 2, 0
+_080B1070: .4byte gUnknown_02038696
+_080B1074: .4byte 0x02019260
+_080B1078:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ mov r0, sp
+ adds r1, r0, r2
+_080B1082:
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _080B1078
+ strb r5, [r1]
+ strb r2, [r3]
+ adds r3, 0x1
+ adds r6, 0x1C
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B1060
+ movs r5, 0
+_080B1098:
+ movs r4, 0x3
+ adds r1, r5, 0x1
+ mov r10, r1
+ cmp r4, r5
+ ble _080B10F6
+ mov r9, r4
+ ldr r2, _080B110C @ =gUnknown_02038696
+ mov r8, r2
+ add r3, sp, 0x4
+ mov r12, r3
+_080B10AC:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r6, _080B1110 @ =0x02019244
+ adds r1, r0, r6
+ ldrb r2, [r1, 0xB]
+ ldr r7, _080B1114 @ =0x02019260
+ adds r0, r7
+ ldrb r3, [r0, 0xB]
+ mov r1, r9
+ ands r1, r2
+ mov r0, r9
+ ands r0, r3
+ subs r3, r4, 0x1
+ cmp r1, r0
+ bne _080B10F0
+ mov r0, r8
+ adds r7, r3, r0
+ adds r2, r4, r0
+ ldrb r6, [r7]
+ ldrb r1, [r2]
+ cmp r6, r1
+ bcs _080B10F0
+ lsls r0, r3, 1
+ add r0, r12
+ lsls r1, r4, 1
+ add r1, r12
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bcs _080B10F0
+ ldrb r0, [r2]
+ strb r6, [r2]
+ strb r0, [r7]
+_080B10F0:
+ adds r4, r3, 0
+ cmp r4, r5
+ bgt _080B10AC
+_080B10F6:
+ mov r5, r10
+ cmp r5, 0x2
+ ble _080B1098
+_080B10FC:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B110C: .4byte gUnknown_02038696
+_080B1110: .4byte 0x02019244
+_080B1114: .4byte 0x02019260
+ thumb_func_end sub_80B0F28
+
+ thumb_func_start sub_80B1118
+sub_80B1118: @ 80B1118
+ push {r4,r5,lr}
+ movs r4, 0
+ movs r5, 0xA0
+_080B111E:
+ ldr r0, _080B1144 @ =0x02018004
+ adds r0, r5, r0
+ ldr r1, _080B1148 @ =gUnknown_02038696
+ adds r1, r4, r1
+ ldrb r1, [r1]
+ adds r1, 0x5
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ adds r5, 0x20
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080B111E
+ bl sub_80AE514
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1144: .4byte 0x02018004
+_080B1148: .4byte gUnknown_02038696
+ thumb_func_end sub_80B1118
+
+ thumb_func_start sub_80B114C
+sub_80B114C: @ 80B114C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r7, r6, 3
+ subs r0, r7, r6
+ lsls r0, 2
+ ldr r4, _080B11B8 @ =0x02019260
+ adds r5, r0, r4
+ movs r0, 0
+ strh r0, [r5, 0x2]
+ strh r0, [r5]
+ adds r0, r6, 0
+ bl sub_80AF404
+ lsls r0, 24
+ mov r8, r4
+ cmp r0, 0
+ bne _080B1176
+ b _080B13DC
+_080B1176:
+ ldrh r0, [r5, 0x6]
+ ldr r1, _080B11BC @ =gContestMoves
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0]
+ mov r12, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 29
+ strb r0, [r5, 0xA]
+ ldrh r0, [r5, 0x6]
+ ldrh r1, [r5, 0x8]
+ cmp r0, r1
+ bne _080B11C0
+ cmp r0, 0
+ beq _080B11C0
+ ldrb r0, [r5, 0x15]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r5, 0x15]
+ ldrb r2, [r5, 0xB]
+ lsls r1, r2, 25
+ lsrs r1, 29
+ adds r1, 0x1
+ movs r0, 0x7
+ ands r1, r0
+ lsls r1, 4
+ movs r0, 0x71
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0xB]
+ b _080B11D8
+ .align 2, 0
+_080B11B8: .4byte 0x02019260
+_080B11BC: .4byte gContestMoves
+_080B11C0:
+ lsls r4, r6, 3
+ subs r1, r4, r6
+ lsls r1, 2
+ ldr r3, _080B1264 @ =0x02019260
+ adds r1, r3
+ ldrb r2, [r1, 0xB]
+ movs r0, 0x71
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0xB]
+ adds r7, r4, 0
+ mov r8, r3
+_080B11D8:
+ subs r0, r7, r6
+ lsls r0, 2
+ add r0, r8
+ ldr r2, _080B1268 @ =gContestEffects
+ mov r1, r12
+ lsls r3, r1, 2
+ adds r2, r3, r2
+ ldrb r1, [r2, 0x1]
+ strh r1, [r0]
+ strh r1, [r0, 0x2]
+ mov r0, r8
+ adds r0, 0x70
+ ldrb r1, [r2, 0x2]
+ strh r1, [r0, 0x4]
+ strh r1, [r0, 0x6]
+ strb r6, [r0, 0x11]
+ movs r2, 0
+ adds r4, r3, 0
+ movs r1, 0
+ mov r5, r8
+ adds r5, 0x7D
+ mov r3, r8
+_080B1204:
+ strb r1, [r3, 0xE]
+ adds r0, r5, r2
+ strb r1, [r0]
+ adds r3, 0x1C
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080B1204
+ subs r0, r7, r6
+ lsls r0, 2
+ ldr r1, _080B1264 @ =0x02019260
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x15]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B123C
+ ldrh r0, [r5, 0x8]
+ ldrh r1, [r5, 0x6]
+ bl AreMovesContestCombo
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B123C
+ ldrb r1, [r5, 0x15]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r5, 0x15]
+_080B123C:
+ ldr r0, _080B126C @ =gContestEffectFuncs
+ adds r0, r4, r0
+ ldr r0, [r0]
+ bl _call_via_r0
+ subs r0, r7, r6
+ lsls r0, 2
+ ldr r1, _080B1264 @ =0x02019260
+ adds r2, r0, r1
+ ldrb r1, [r2, 0x10]
+ movs r0, 0x30
+ ands r0, r1
+ cmp r0, 0x10
+ bne _080B1270
+ ldrh r1, [r2, 0x2]
+ subs r1, 0xA
+ movs r0, 0xD
+ ldrsb r0, [r2, r0]
+ b _080B128A
+ .align 2, 0
+_080B1264: .4byte 0x02019260
+_080B1268: .4byte gContestEffects
+_080B126C: .4byte gContestEffectFuncs
+_080B1270:
+ ldrb r1, [r2, 0x11]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080B1284
+ movs r1, 0xD
+ ldrsb r1, [r2, r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ b _080B1288
+_080B1284:
+ movs r0, 0xD
+ ldrsb r0, [r2, r0]
+_080B1288:
+ ldrh r1, [r2, 0x2]
+_080B128A:
+ adds r0, r1
+ strh r0, [r2, 0x2]
+ subs r0, r7, r6
+ lsls r0, 2
+ ldr r1, _080B12E8 @ =0x02019260
+ adds r4, r0, r1
+ movs r0, 0
+ strb r0, [r4, 0x16]
+ ldrb r1, [r4, 0x15]
+ subs r0, 0x41
+ ands r0, r1
+ strb r0, [r4, 0x15]
+ adds r0, r6, 0
+ bl sub_80B214C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B1322
+ ldrh r0, [r4, 0x8]
+ ldrh r1, [r4, 0x6]
+ bl AreMovesContestCombo
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080B12EC
+ ldrb r1, [r4, 0x15]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B12EC
+ strb r2, [r4, 0x16]
+ movs r0, 0x40
+ orrs r1, r0
+ movs r0, 0x11
+ negs r0, r0
+ ands r1, r0
+ movs r0, 0
+ ldrsh r2, [r4, r0]
+ ldrb r0, [r4, 0x16]
+ muls r0, r2
+ strb r0, [r4, 0x17]
+ movs r0, 0x8
+ orrs r1, r0
+ strb r1, [r4, 0x15]
+ b _080B1322
+ .align 2, 0
+_080B12E8: .4byte 0x02019260
+_080B12EC:
+ ldr r2, _080B1310 @ =gContestMoves
+ subs r0, r7, r6
+ lsls r0, 2
+ ldr r1, _080B1314 @ =0x02019260
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x6]
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ beq _080B1318
+ ldrb r0, [r3, 0x15]
+ movs r1, 0x10
+ orrs r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ b _080B1320
+ .align 2, 0
+_080B1310: .4byte gContestMoves
+_080B1314: .4byte 0x02019260
+_080B1318:
+ ldrb r1, [r3, 0x15]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r1
+_080B1320:
+ strb r0, [r3, 0x15]
+_080B1322:
+ subs r0, r7, r6
+ lsls r0, 2
+ ldr r1, _080B139C @ =0x02019260
+ mov r8, r1
+ adds r4, r0, r1
+ ldrb r1, [r4, 0x15]
+ movs r5, 0x1
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080B1348
+ ldrb r0, [r4, 0xB]
+ lsls r0, 25
+ lsrs r0, 29
+ adds r0, 0x1
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 1
+ strb r1, [r4, 0x18]
+_080B1348:
+ ldrb r1, [r4, 0xC]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080B1362
+ ldrb r0, [r4, 0x15]
+ movs r1, 0x11
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r4, 0x15]
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ strh r0, [r4]
+_080B1362:
+ ldrh r0, [r4, 0x6]
+ bl contest_get_move_excitement
+ mov r2, r8
+ adds r2, 0xC8
+ strb r0, [r2]
+ ldrb r1, [r4, 0x11]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B137A
+ strb r5, [r2]
+_080B137A:
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0
+ ble _080B13A4
+ mov r0, r8
+ subs r0, 0x5C
+ ldrb r0, [r0, 0x13]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ adds r0, r1
+ cmp r0, 0x4
+ ble _080B13A0
+ movs r0, 0x3C
+ b _080B13A6
+ .align 2, 0
+_080B139C: .4byte 0x02019260
+_080B13A0:
+ movs r0, 0xA
+ b _080B13A6
+_080B13A4:
+ movs r0, 0
+_080B13A6:
+ strb r0, [r2, 0x2]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ b _080B13CA
+_080B13BE:
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+_080B13C4:
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _080B13D2
+_080B13CA:
+ cmp r2, r6
+ beq _080B13C4
+ cmp r0, 0
+ bne _080B13BE
+_080B13D2:
+ subs r0, r7, r6
+ lsls r0, 2
+ ldr r1, _080B13E8 @ =0x02019260
+ adds r0, r1
+ strb r2, [r0, 0x1B]
+_080B13DC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B13E8: .4byte 0x02019260
+ thumb_func_end sub_80B114C
+
+ thumb_func_start sub_80B13EC
+sub_80B13EC: @ 80B13EC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 2
+ ldr r0, _080B1400 @ =0x02019260
+ adds r2, r0
+ strb r1, [r2, 0x13]
+ bx lr
+ .align 2, 0
+_080B1400: .4byte 0x02019260
+ thumb_func_end sub_80B13EC
+
+ thumb_func_start sub_80B1404
+sub_80B1404: @ 80B1404
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 2
+ ldr r0, _080B1418 @ =0x02019260
+ adds r2, r0
+ strb r1, [r2, 0x14]
+ bx lr
+ .align 2, 0
+_080B1418: .4byte 0x02019260
+ thumb_func_end sub_80B1404
+
+ thumb_func_start sub_80B141C
+sub_80B141C: @ 80B141C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0x3B
+ bls _080B1436
+ movs r1, 0x35
+ bl sub_80B13EC
+ b _080B1466
+_080B1436:
+ cmp r1, 0x27
+ bls _080B1442
+ movs r1, 0x34
+ bl sub_80B13EC
+ b _080B1466
+_080B1442:
+ cmp r1, 0x1D
+ bls _080B144E
+ movs r1, 0x33
+ bl sub_80B13EC
+ b _080B1466
+_080B144E:
+ cmp r1, 0x13
+ bls _080B145A
+ movs r1, 0x32
+ bl sub_80B13EC
+ b _080B1466
+_080B145A:
+ cmp r2, 0x9
+ bls _080B1466
+ adds r0, r3, 0
+ movs r1, 0x31
+ bl sub_80B13EC
+_080B1466:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B141C
+
+ thumb_func_start sub_80B146C
+sub_80B146C: @ 80B146C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080B14C8 @ =gStringVar1
+ lsls r1, r4, 6
+ ldr r2, _080B14CC @ =gUnknown_02038572
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080B14D0 @ =gStringVar2
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ ldr r4, _080B14D4 @ =0x02019260
+ adds r1, r4
+ ldrh r2, [r1, 0x6]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _080B14D8 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r2, _080B14DC @ =gContestMoves
+ adds r0, r4, 0
+ adds r0, 0x70
+ ldrb r1, [r0, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x6]
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ lsls r1, r0, 29
+ cmp r1, 0
+ bne _080B14E8
+ ldr r0, _080B14E0 @ =gStringVar3
+ ldr r1, _080B14E4 @ =gUnknown_083CC280
+ bl StringCopy
+ b _080B1538
+ .align 2, 0
+_080B14C8: .4byte gStringVar1
+_080B14CC: .4byte gUnknown_02038572
+_080B14D0: .4byte gStringVar2
+_080B14D4: .4byte 0x02019260
+_080B14D8: .4byte gMoveNames
+_080B14DC: .4byte gContestMoves
+_080B14E0: .4byte gStringVar3
+_080B14E4: .4byte gUnknown_083CC280
+_080B14E8:
+ lsrs r0, r1, 29
+ cmp r0, 0x1
+ bne _080B1500
+ ldr r0, _080B14F8 @ =gStringVar3
+ ldr r1, _080B14FC @ =gUnknown_083CC288
+ bl StringCopy
+ b _080B1538
+ .align 2, 0
+_080B14F8: .4byte gStringVar3
+_080B14FC: .4byte gUnknown_083CC288
+_080B1500:
+ lsrs r0, r1, 29
+ cmp r0, 0x2
+ bne _080B1518
+ ldr r0, _080B1510 @ =gStringVar3
+ ldr r1, _080B1514 @ =gUnknown_083CC290
+ bl StringCopy
+ b _080B1538
+ .align 2, 0
+_080B1510: .4byte gStringVar3
+_080B1514: .4byte gUnknown_083CC290
+_080B1518:
+ lsrs r0, r1, 29
+ cmp r0, 0x3
+ bne _080B1530
+ ldr r0, _080B1528 @ =gStringVar3
+ ldr r1, _080B152C @ =gUnknown_083CC299
+ bl StringCopy
+ b _080B1538
+ .align 2, 0
+_080B1528: .4byte gStringVar3
+_080B152C: .4byte gUnknown_083CC299
+_080B1530:
+ ldr r0, _080B1568 @ =gStringVar3
+ ldr r1, _080B156C @ =gUnknown_083CC2A3
+ bl StringCopy
+_080B1538:
+ ldr r4, _080B1570 @ =gStringVar4
+ ldr r1, _080B1574 @ =gUnknown_083CC188
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ bl sub_80AF138
+ ldr r0, _080B1578 @ =gMenuWindow
+ movs r2, 0xC2
+ lsls r2, 2
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8002EB0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1568: .4byte gStringVar3
+_080B156C: .4byte gUnknown_083CC2A3
+_080B1570: .4byte gStringVar4
+_080B1574: .4byte gUnknown_083CC188
+_080B1578: .4byte gMenuWindow
+ thumb_func_end sub_80B146C
+
+ thumb_func_start sub_80B157C
+sub_80B157C: @ 80B157C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r0, _080B1598 @ =0x02019260
+ adds r1, r0
+ ldrb r0, [r1, 0xC]
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r1, 0xC]
+ movs r0, 0
+ strh r0, [r1, 0x6]
+ bx lr
+ .align 2, 0
+_080B1598: .4byte 0x02019260
+ thumb_func_end sub_80B157C
+
+ thumb_func_start sub_80B159C
+sub_80B159C: @ 80B159C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r12, r0
+ movs r4, 0
+ ldr r1, _080B1600 @ =gUnknown_02038696
+ mov r9, r1
+ add r2, sp, 0x4
+ mov r6, r9
+ movs r5, 0
+ adds r3, r2, 0
+_080B15B8:
+ mov r0, sp
+ adds r1, r0, r4
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, r4
+ strb r5, [r0]
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080B15B8
+ movs r4, 0
+ ldr r7, _080B1604 @ =0x02019260
+ adds r5, r2, 0
+ movs r1, 0x1
+ mov r8, r1
+_080B15D6:
+ movs r2, 0
+ adds r1, r7, 0
+_080B15DA:
+ ldrb r0, [r1, 0x19]
+ cmp r0, r4
+ beq _080B1608
+ adds r1, 0x1C
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080B15DA
+_080B15E8:
+ cmp r2, 0x4
+ bne _080B1680
+ movs r2, 0
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _080B1616
+ ldrb r0, [r7, 0x19]
+ cmp r0, 0xFF
+ bne _080B1616
+ mov r12, r2
+ movs r2, 0x1
+ b _080B163A
+ .align 2, 0
+_080B1600: .4byte gUnknown_02038696
+_080B1604: .4byte 0x02019260
+_080B1608:
+ mov r1, sp
+ adds r0, r1, r2
+ strb r4, [r0]
+ adds r0, r5, r2
+ mov r1, r8
+ strb r1, [r0]
+ b _080B15E8
+_080B1616:
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _080B1672
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080B1616
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r7
+ ldrb r0, [r0, 0x19]
+ cmp r0, 0xFF
+ bne _080B1616
+ lsls r0, r2, 24
+ lsrs r0, 24
+ mov r12, r0
+ adds r2, 0x1
+_080B163A:
+ cmp r2, 0x3
+ bgt _080B1672
+ ldr r6, _080B16C8 @ =gUnknown_02038696
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r3, r0, 2
+_080B1646:
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080B166A
+ adds r0, r3, r7
+ ldrb r0, [r0, 0x19]
+ cmp r0, 0xFF
+ bne _080B166A
+ mov r1, r12
+ adds r0, r1, r6
+ adds r1, r2, r6
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B166A
+ lsls r0, r2, 24
+ lsrs r0, 24
+ mov r12, r0
+_080B166A:
+ adds r3, 0x1C
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080B1646
+_080B1672:
+ mov r0, sp
+ add r0, r12
+ strb r4, [r0]
+ mov r1, r12
+ adds r0, r5, r1
+ mov r1, r8
+ strb r1, [r0]
+_080B1680:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080B15D6
+ movs r4, 0
+ ldr r5, _080B16CC @ =0x020192d0
+ adds r3, r5, 0
+ subs r3, 0x60
+ movs r6, 0xFF
+ movs r7, 0x3F
+_080B1692:
+ adds r1, r4, r5
+ mov r0, sp
+ adds r2, r0, r4
+ ldrb r0, [r2]
+ strb r0, [r1]
+ ldrb r0, [r3, 0x9]
+ orrs r0, r6
+ strb r0, [r3, 0x9]
+ ldrb r1, [r3]
+ adds r0, r7, 0
+ ands r0, r1
+ strb r0, [r3]
+ mov r0, r9
+ adds r1, r4, r0
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r3, 0x1C
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080B1692
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B16C8: .4byte gUnknown_02038696
+_080B16CC: .4byte 0x020192d0
+ thumb_func_end sub_80B159C
+
+ thumb_func_start sub_80B16D0
+sub_80B16D0: @ 80B16D0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x54
+ ble _080B1702
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ ldr r0, _080B1708 @ =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+ ldr r2, _080B170C @ =0x02019204
+ ldrb r1, [r2, 0x6]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x6]
+_080B1702:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1708: .4byte SpriteCallbackDummy
+_080B170C: .4byte 0x02019204
+ thumb_func_end sub_80B16D0
+
+ thumb_func_start sub_80B1710
+sub_80B1710: @ 80B1710
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080B172C @ =0x02019204
+ ldrb r5, [r0, 0x12]
+ cmp r1, 0x8
+ bls _080B1720
+ b _080B18C0
+_080B1720:
+ lsls r0, r1, 2
+ ldr r1, _080B1730 @ =_080B1734
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B172C: .4byte 0x02019204
+_080B1730: .4byte _080B1734
+ .align 2, 0
+_080B1734:
+ .4byte _080B1758
+ .4byte _080B1758
+ .4byte _080B1788
+ .4byte _080B17BC
+ .4byte _080B17F0
+ .4byte _080B1824
+ .4byte _080B1858
+ .4byte _080B18C0
+ .4byte _080B188C
+_080B1758:
+ ldr r0, _080B177C @ =gSprites
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x2E]
+ ldr r2, _080B1780 @ =0x000003ff
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _080B1784 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ movs r0, 0x20
+ bl PlaySE
+ b _080B18E4
+ .align 2, 0
+_080B177C: .4byte gSprites
+_080B1780: .4byte 0x000003ff
+_080B1784: .4byte 0xfffffc00
+_080B1788:
+ ldr r0, _080B17B0 @ =gSprites
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r1, 0x2E]
+ adds r2, 0x4
+ ldr r3, _080B17B4 @ =0x000003ff
+ adds r0, r3, 0
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _080B17B8 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ movs r0, 0x1F
+ bl PlaySE
+ b _080B18E4
+ .align 2, 0
+_080B17B0: .4byte gSprites
+_080B17B4: .4byte 0x000003ff
+_080B17B8: .4byte 0xfffffc00
+_080B17BC:
+ ldr r0, _080B17E4 @ =gSprites
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r1, 0x2E]
+ adds r2, 0x8
+ ldr r3, _080B17E8 @ =0x000003ff
+ adds r0, r3, 0
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _080B17EC @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ movs r0, 0x1F
+ bl PlaySE
+ b _080B18E4
+ .align 2, 0
+_080B17E4: .4byte gSprites
+_080B17E8: .4byte 0x000003ff
+_080B17EC: .4byte 0xfffffc00
+_080B17F0:
+ ldr r0, _080B1818 @ =gSprites
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r1, 0x2E]
+ adds r2, 0xC
+ ldr r3, _080B181C @ =0x000003ff
+ adds r0, r3, 0
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _080B1820 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ movs r0, 0x2D
+ bl PlaySE
+ b _080B18E4
+ .align 2, 0
+_080B1818: .4byte gSprites
+_080B181C: .4byte 0x000003ff
+_080B1820: .4byte 0xfffffc00
+_080B1824:
+ ldr r0, _080B184C @ =gSprites
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r1, 0x2E]
+ adds r2, 0xC
+ ldr r3, _080B1850 @ =0x000003ff
+ adds r0, r3, 0
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _080B1854 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ movs r0, 0x2D
+ bl PlaySE
+ b _080B18E4
+ .align 2, 0
+_080B184C: .4byte gSprites
+_080B1850: .4byte 0x000003ff
+_080B1854: .4byte 0xfffffc00
+_080B1858:
+ ldr r0, _080B1880 @ =gSprites
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r1, 0x2E]
+ adds r2, 0x10
+ ldr r3, _080B1884 @ =0x000003ff
+ adds r0, r3, 0
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _080B1888 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ movs r0, 0x2D
+ bl PlaySE
+ b _080B18E4
+ .align 2, 0
+_080B1880: .4byte gSprites
+_080B1884: .4byte 0x000003ff
+_080B1888: .4byte 0xfffffc00
+_080B188C:
+ ldr r0, _080B18B4 @ =gSprites
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r1, 0x2E]
+ adds r2, 0x18
+ ldr r3, _080B18B8 @ =0x000003ff
+ adds r0, r3, 0
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _080B18BC @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ movs r0, 0xC3
+ bl PlaySE
+ b _080B18E4
+ .align 2, 0
+_080B18B4: .4byte gSprites
+_080B18B8: .4byte 0x000003ff
+_080B18BC: .4byte 0xfffffc00
+_080B18C0:
+ ldr r0, _080B1914 @ =gSprites
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r1, 0x2E]
+ adds r2, 0x14
+ ldr r3, _080B1918 @ =0x000003ff
+ adds r0, r3, 0
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _080B191C @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ movs r0, 0x2D
+ bl PlaySE
+_080B18E4:
+ adds r2, r4, 0
+ ldr r4, _080B1914 @ =gSprites
+ adds r2, r5
+ lsls r2, 2
+ adds r1, r2, r4
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ subs r0, 0x5
+ ands r0, r3
+ strb r0, [r1]
+ adds r4, 0x1C
+ adds r2, r4
+ ldr r0, _080B1920 @ =sub_80B16D0
+ str r0, [r2]
+ ldr r2, _080B1924 @ =0x02019204
+ ldrb r0, [r2, 0x6]
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r2, 0x6]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1914: .4byte gSprites
+_080B1918: .4byte 0x000003ff
+_080B191C: .4byte 0xfffffc00
+_080B1920: .4byte sub_80B16D0
+_080B1924: .4byte 0x02019204
+ thumb_func_end sub_80B1710
+
+ thumb_func_start sub_80B1928
+sub_80B1928: @ 80B1928
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r5, 0
+ ldr r6, _080B19BC @ =0x02019204
+ ldr r0, _080B19C0 @ =gSprites
+ mov r10, r0
+ movs r1, 0x58
+ adds r1, r6
+ mov r9, r1
+ ldr r0, _080B19C4 @ =0x06010000
+ mov r8, r0
+ ldr r7, _080B19C8 @ =REG_BG0CNT
+_080B1946:
+ movs r0, 0x13
+ ldrsb r0, [r6, r0]
+ ldr r4, _080B19CC @ =gContestApplauseMeterGfx
+ cmp r5, r0
+ bge _080B1952
+ adds r4, 0x40
+_080B1952:
+ mov r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r10
+ ldrh r1, [r0, 0x4]
+ lsls r1, 22
+ lsrs r1, 22
+ adds r0, r5, 0
+ adds r0, 0x11
+ adds r1, r0
+ lsls r1, 5
+ add r1, r8
+ adds r0, r4, 0
+ adds r2, r7, 0
+ bl CpuSet
+ adds r0, r4, 0
+ adds r0, 0x20
+ mov r1, r9
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r10
+ ldrh r1, [r1, 0x4]
+ lsls r1, 22
+ lsrs r1, 22
+ adds r2, r5, 0
+ adds r2, 0x19
+ adds r1, r2
+ lsls r1, 5
+ add r1, r8
+ adds r2, r7, 0
+ bl CpuSet
+ movs r0, 0x13
+ ldrsb r0, [r6, r0]
+ cmp r0, 0x4
+ ble _080B19A8
+ bl sub_80B1A2C
+_080B19A8:
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _080B1946
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B19BC: .4byte 0x02019204
+_080B19C0: .4byte gSprites
+_080B19C4: .4byte 0x06010000
+_080B19C8: .4byte REG_BG0CNT
+_080B19CC: .4byte gContestApplauseMeterGfx
+ thumb_func_end sub_80B1928
+
+ thumb_func_start unref_sub_80B19D0
+unref_sub_80B19D0: @ 80B19D0
+ push {lr}
+ sub sp, 0x18
+ ldr r1, _080B19F4 @ =gUnknown_083CC2EC
+ add r0, sp, 0x4
+ bl StringCopy
+ ldr r0, _080B19F8 @ =gUnknown_03004210
+ movs r2, 0xAA
+ lsls r2, 2
+ movs r1, 0
+ str r1, [sp]
+ add r1, sp, 0x4
+ movs r3, 0
+ bl sub_8003460
+ add sp, 0x18
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B19F4: .4byte gUnknown_083CC2EC
+_080B19F8: .4byte gUnknown_03004210
+ thumb_func_end unref_sub_80B19D0
+
+ thumb_func_start contest_get_move_excitement
+contest_get_move_excitement: @ 80B19FC
+ lsls r0, 16
+ ldr r3, _080B1A20 @ =gContestExcitementTable
+ ldr r1, _080B1A24 @ =gContestMoves
+ lsrs r0, 13
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ lsls r1, 29
+ lsrs r1, 29
+ ldr r0, _080B1A28 @ =gUnknown_0203869C
+ ldrh r2, [r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ adds r1, r0
+ adds r1, r3
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ bx lr
+ .align 2, 0
+_080B1A20: .4byte gContestExcitementTable
+_080B1A24: .4byte gContestMoves
+_080B1A28: .4byte gUnknown_0203869C
+ thumb_func_end contest_get_move_excitement
+
+ thumb_func_start sub_80B1A2C
+sub_80B1A2C: @ 80B1A2C
+ push {r4,r5,lr}
+ ldr r0, _080B1A60 @ =c3_08130B10
+ movs r1, 0xA
+ bl CreateTask
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _080B1A64 @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ movs r0, 0x1
+ strh r0, [r4, 0xA]
+ ldr r0, _080B1A68 @ =0x0000abe2
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xC]
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B1A60: .4byte c3_08130B10
+_080B1A64: .4byte gTasks
+_080B1A68: .4byte 0x0000abe2
+ thumb_func_end sub_80B1A2C
+
+ thumb_func_start c3_08130B10
+c3_08130B10: @ 80B1A6C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080B1A9C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080B1B06
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080B1AA0
+ ldrh r0, [r2, 0x10]
+ adds r0, 0x1
+ b _080B1AA4
+ .align 2, 0
+_080B1A9C: .4byte gTasks
+_080B1AA0:
+ ldrh r0, [r2, 0x10]
+ subs r0, 0x1
+_080B1AA4:
+ strh r0, [r2, 0x10]
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ lsls r0, 4
+ movs r3, 0x84
+ lsls r3, 1
+ adds r6, r3, 0
+ adds r0, r6
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r2, [r4, 0x10]
+ ldr r3, _080B1B0C @ =0x00007fff
+ movs r1, 0x1
+ bl BlendPalette
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080B1AD6
+ cmp r0, 0x10
+ bne _080B1B06
+_080B1AD6:
+ ldrh r0, [r4, 0xE]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0xE]
+ ldr r0, _080B1B10 @ =0x02019204
+ ldrb r0, [r0, 0x13]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ bgt _080B1B06
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ lsls r0, 4
+ adds r0, r6
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0x1F
+ bl BlendPalette
+ adds r0, r5, 0
+ bl DestroyTask
+_080B1B06:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1B0C: .4byte 0x00007fff
+_080B1B10: .4byte 0x02019204
+ thumb_func_end c3_08130B10
+
+ thumb_func_start sub_80B1B14
+sub_80B1B14: @ 80B1B14
+ push {r4,lr}
+ ldr r0, _080B1B58 @ =sub_80B1B68
+ movs r1, 0xA
+ bl CreateTask
+ ldr r4, _080B1B5C @ =gSprites
+ ldr r3, _080B1B60 @ =0x02019204
+ adds r2, r3, 0
+ adds r2, 0x58
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _080B1B64 @ =0x0000ffba
+ strh r1, [r0, 0x24]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r0, [r3, 0x6]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r3, 0x6]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1B58: .4byte sub_80B1B68
+_080B1B5C: .4byte gSprites
+_080B1B60: .4byte 0x02019204
+_080B1B64: .4byte 0x0000ffba
+ thumb_func_end sub_80B1B14
+
+ thumb_func_start sub_80B1B68
+sub_80B1B68: @ 80B1B68
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ ldr r4, _080B1BD0 @ =0x02019204
+ adds r0, r4, 0
+ adds r0, 0x58
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B1BD4 @ =gSprites
+ adds r2, r0, r1
+ ldr r0, _080B1BD8 @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ movs r5, 0xD0
+ lsls r5, 3
+ adds r0, r5, 0
+ ldrh r5, [r1, 0x1C]
+ adds r0, r5
+ strh r0, [r1, 0x1C]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r5, [r2, 0x24]
+ adds r0, r5
+ strh r0, [r2, 0x24]
+ ldrb r0, [r1, 0x1C]
+ strh r0, [r1, 0x1C]
+ movs r1, 0x24
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ ble _080B1BB2
+ movs r0, 0
+ strh r0, [r2, 0x24]
+_080B1BB2:
+ movs r5, 0x24
+ ldrsh r0, [r2, r5]
+ cmp r0, 0
+ bne _080B1BCA
+ ldrb r1, [r4, 0x6]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x6]
+ adds r0, r3, 0
+ bl DestroyTask
+_080B1BCA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1BD0: .4byte 0x02019204
+_080B1BD4: .4byte gSprites
+_080B1BD8: .4byte gTasks
+ thumb_func_end sub_80B1B68
+
+ thumb_func_start sub_80B1BDC
+sub_80B1BDC: @ 80B1BDC
+ push {r4-r6,lr}
+ ldr r6, _080B1C04 @ =gSprites
+ ldr r4, _080B1C08 @ =0x02019204
+ adds r5, r4, 0
+ adds r5, 0x58
+ ldrb r0, [r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ lsls r0, 29
+ cmp r0, 0
+ bge _080B1C0C
+ ldrb r1, [r4, 0x6]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ b _080B1C28
+ .align 2, 0
+_080B1C04: .4byte gSprites
+_080B1C08: .4byte 0x02019204
+_080B1C0C:
+ ldr r0, _080B1C30 @ =sub_80B1C34
+ movs r1, 0xA
+ bl CreateTask
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ ldrb r0, [r4, 0x6]
+ movs r1, 0x40
+ orrs r0, r1
+_080B1C28:
+ strb r0, [r4, 0x6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1C30: .4byte sub_80B1C34
+ thumb_func_end sub_80B1BDC
+
+ thumb_func_start sub_80B1C34
+sub_80B1C34: @ 80B1C34
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r5, _080B1CAC @ =0x02019204
+ adds r0, r5, 0
+ adds r0, 0x58
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B1CB0 @ =gSprites
+ adds r3, r0, r1
+ ldr r0, _080B1CB4 @ =gTasks
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 3
+ adds r2, r0
+ movs r1, 0xD0
+ lsls r1, 3
+ adds r0, r1, 0
+ ldrh r1, [r2, 0x1C]
+ adds r0, r1
+ strh r0, [r2, 0x1C]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r3, 0x24]
+ subs r1, r0
+ strh r1, [r3, 0x24]
+ ldrb r0, [r2, 0x1C]
+ strh r0, [r2, 0x1C]
+ movs r2, 0x24
+ ldrsh r0, [r3, r2]
+ movs r1, 0x46
+ negs r1, r1
+ cmp r0, r1
+ bge _080B1C82
+ ldr r0, _080B1CB8 @ =0x0000ffba
+ strh r0, [r3, 0x24]
+_080B1C82:
+ movs r2, 0x24
+ ldrsh r0, [r3, r2]
+ cmp r0, r1
+ bne _080B1CA6
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r1, [r5, 0x6]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r5, 0x6]
+ adds r0, r4, 0
+ bl DestroyTask
+_080B1CA6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1CAC: .4byte 0x02019204
+_080B1CB0: .4byte gSprites
+_080B1CB4: .4byte gTasks
+_080B1CB8: .4byte 0x0000ffba
+ thumb_func_end sub_80B1C34
+
+ thumb_func_start sub_80B1CBC
+sub_80B1CBC: @ 80B1CBC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080B1CF0 @ =sub_80B1CFC
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B1CF4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ lsls r4, 24
+ asrs r4, 24
+ strh r4, [r1, 0x8]
+ ldr r2, _080B1CF8 @ =0x02019204
+ ldrb r0, [r2, 0x6]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2, 0x6]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1CF0: .4byte sub_80B1CFC
+_080B1CF4: .4byte gTasks
+_080B1CF8: .4byte 0x02019204
+ thumb_func_end sub_80B1CBC
+
+ thumb_func_start sub_80B1CFC
+sub_80B1CFC: @ 80B1CFC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080B1D20 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080B1D30
+ cmp r0, 0x1
+ bgt _080B1D24
+ cmp r0, 0
+ beq _080B1D2A
+ b _080B1D78
+ .align 2, 0
+_080B1D20: .4byte gTasks
+_080B1D24:
+ cmp r0, 0x2
+ beq _080B1D50
+ b _080B1D78
+_080B1D2A:
+ bl sub_80B1B14
+ b _080B1D44
+_080B1D30:
+ ldr r0, _080B1D4C @ =0x02019204
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080B1D78
+ movs r0, 0x8
+ ldrsb r0, [r4, r0]
+ bl nullsub_18
+_080B1D44:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ b _080B1D78
+ .align 2, 0
+_080B1D4C: .4byte 0x02019204
+_080B1D50:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080B1D78
+ movs r0, 0
+ strh r0, [r4, 0x1E]
+ bl sub_80B1928
+ ldr r2, _080B1D80 @ =0x02019204
+ ldrb r1, [r2, 0x6]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x6]
+ adds r0, r5, 0
+ bl DestroyTask
+_080B1D78:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1D80: .4byte 0x02019204
+ thumb_func_end sub_80B1CFC
+
+ thumb_func_start unref_sub_80B1D84
+unref_sub_80B1D84: @ 80B1D84
+ ldr r3, _080B1DB0 @ =gSprites
+ ldr r2, _080B1DB4 @ =0x02019204
+ adds r2, 0x58
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080B1DB0: .4byte gSprites
+_080B1DB4: .4byte 0x02019204
+ thumb_func_end unref_sub_80B1D84
+
+ thumb_func_start unref_sub_80B1DB8
+unref_sub_80B1DB8: @ 80B1DB8
+ ldr r2, _080B1DD4 @ =gSprites
+ ldr r0, _080B1DD8 @ =0x02019204
+ adds r0, 0x58
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080B1DD4: .4byte gSprites
+_080B1DD8: .4byte 0x02019204
+ thumb_func_end unref_sub_80B1DB8
+
+ thumb_func_start sub_80B1DDC
+sub_80B1DDC: @ 80B1DDC
+ push {lr}
+ ldr r0, _080B1DF4 @ =sub_80B1DFC
+ movs r1, 0xF
+ bl CreateTask
+ ldr r2, _080B1DF8 @ =0x02019204
+ ldrb r0, [r2, 0x6]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x6]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1DF4: .4byte sub_80B1DFC
+_080B1DF8: .4byte 0x02019204
+ thumb_func_end sub_80B1DDC
+
+ thumb_func_start sub_80B1DFC
+sub_80B1DFC: @ 80B1DFC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _080B1E3C @ =gTasks
+ lsls r4, r5, 2
+ adds r0, r4, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ adds r6, r2, 0
+ cmp r0, 0x6
+ ble _080B1E8E
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ movs r1, 0x1E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080B1E50
+ ldr r1, _080B1E40 @ =0x02016800
+ ldr r2, _080B1E44 @ =0x06002000
+ ldr r0, _080B1E48 @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080B1E4C @ =0x84000400
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080B1E66
+ .align 2, 0
+_080B1E3C: .4byte gTasks
+_080B1E40: .4byte 0x02016800
+_080B1E44: .4byte 0x06002000
+_080B1E48: .4byte 0x040000d4
+_080B1E4C: .4byte 0x84000400
+_080B1E50:
+ ldr r1, _080B1E94 @ =0x02015800
+ ldr r2, _080B1E98 @ =0x06002000
+ ldr r0, _080B1E9C @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080B1EA0 @ =0x84000400
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+_080B1E66:
+ adds r0, r4, 0
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r6
+ ldrh r1, [r0, 0x1E]
+ movs r2, 0x1
+ eors r1, r2
+ strh r1, [r0, 0x1E]
+ movs r1, 0x20
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x9
+ bne _080B1E8E
+ ldr r2, _080B1EA4 @ =0x02019204
+ ldrb r1, [r2, 0x6]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x6]
+ adds r0, r5, 0
+ bl DestroyTask
+_080B1E8E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1E94: .4byte 0x02015800
+_080B1E98: .4byte 0x06002000
+_080B1E9C: .4byte 0x040000d4
+_080B1EA0: .4byte 0x84000400
+_080B1EA4: .4byte 0x02019204
+ thumb_func_end sub_80B1DFC
+
+ thumb_func_start sub_80B1EA8
+sub_80B1EA8: @ 80B1EA8
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080B1EE4 @ =sub_80B1F4C
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r4, 24
+ cmp r4, 0
+ ble _080B1F08
+ ldr r7, _080B1EE8 @ =0x0000237e
+ lsls r0, r5, 24
+ adds r4, r0, 0
+ cmp r4, 0
+ ble _080B1EF0
+ movs r5, 0
+ ldr r2, _080B1EEC @ =0x02019204
+ movs r1, 0x13
+ ldrsb r1, [r2, r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ b _080B1F1E
+ .align 2, 0
+_080B1EE4: .4byte sub_80B1F4C
+_080B1EE8: .4byte 0x0000237e
+_080B1EEC: .4byte 0x02019204
+_080B1EF0:
+ ldr r2, _080B1F04 @ =0x02019204
+ movs r1, 0x13
+ ldrsb r1, [r2, r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ b _080B1F1E
+ .align 2, 0
+_080B1F04: .4byte 0x02019204
+_080B1F08:
+ movs r7, 0
+ lsls r0, r5, 24
+ adds r4, r0, 0
+ cmp r4, 0
+ ble _080B1F18
+ movs r5, 0
+ movs r3, 0xC
+ b _080B1F1C
+_080B1F18:
+ movs r5, 0xC
+ movs r3, 0
+_080B1F1C:
+ ldr r2, _080B1F44 @ =0x02019204
+_080B1F1E:
+ ldr r1, _080B1F48 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ strh r7, [r0, 0x8]
+ strh r5, [r0, 0xA]
+ asrs r1, r4, 24
+ strh r1, [r0, 0xC]
+ strh r3, [r0, 0xE]
+ ldrb r1, [r2, 0x7]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x7]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1F44: .4byte 0x02019204
+_080B1F48: .4byte gTasks
+ thumb_func_end sub_80B1EA8
+
+ thumb_func_start sub_80B1F4C
+sub_80B1F4C: @ 80B1F4C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _080B1F7C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x1C]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080B1FC4
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ movs r1, 0xC
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ ble _080B1F80
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ b _080B1F84
+ .align 2, 0
+_080B1F7C: .4byte gTasks
+_080B1F80:
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+_080B1F84:
+ strh r0, [r3, 0xA]
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r2
+ ldrb r2, [r4, 0xA]
+ ldrh r3, [r4, 0x8]
+ movs r0, 0x11
+ movs r1, 0x1
+ bl BlendPalette
+ ldrb r2, [r4, 0xA]
+ ldrh r3, [r4, 0x8]
+ movs r0, 0x1A
+ movs r1, 0x1
+ bl BlendPalette
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080B1FC4
+ adds r0, r5, 0
+ bl DestroyTask
+ ldr r2, _080B1FCC @ =0x02019204
+ ldrb r1, [r2, 0x7]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x7]
+_080B1FC4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B1FCC: .4byte 0x02019204
+ thumb_func_end sub_80B1F4C
+
+ thumb_func_start sub_80B1FD0
+sub_80B1FD0: @ 80B1FD0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r5, 0
+ ldr r0, _080B204C @ =0x02019260
+ ldr r6, _080B2050 @ =gSprites
+ adds r4, r0, 0
+ adds r4, 0xD8
+ adds r7, r0, 0
+_080B1FE8:
+ ldrb r1, [r7, 0x10]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0
+ beq _080B2064
+ mov r0, r8
+ cmp r0, 0
+ beq _080B2064
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_80B208C
+ ldrb r2, [r4, 0x1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r6
+ ldrh r1, [r1, 0x4]
+ lsls r1, 22
+ lsrs r1, 17
+ ldr r2, _080B2054 @ =0x060100a0
+ adds r1, r2
+ ldr r2, _080B2058 @ =REG_BG0HOFS
+ bl CpuSet
+ ldrb r0, [r4, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldr r2, _080B205C @ =gUnknown_083CA33C
+ ldr r0, _080B2060 @ =gUnknown_02038696
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r1, 0x22]
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r3, 0x5
+ negs r3, r3
+ adds r2, r3, 0
+ ands r1, r2
+ b _080B2076
+ .align 2, 0
+_080B204C: .4byte 0x02019260
+_080B2050: .4byte gSprites
+_080B2054: .4byte 0x060100a0
+_080B2058: .4byte REG_BG0HOFS
+_080B205C: .4byte gUnknown_083CA33C
+_080B2060: .4byte gUnknown_02038696
+_080B2064:
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+_080B2076:
+ strb r1, [r0]
+ adds r4, 0x4
+ adds r7, 0x1C
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B1FE8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B1FD0
+
+ thumb_func_start sub_80B208C
+sub_80B208C: @ 80B208C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r0, _080B20B0 @ =0x02019260
+ adds r2, r1, r0
+ ldrb r1, [r2, 0x10]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0x40
+ bne _080B20B8
+ ldrb r0, [r2, 0x19]
+ lsls r0, 6
+ ldr r1, _080B20B4 @ =gContestNextTurnNumbersGfx
+ adds r0, r1
+ b _080B20BA
+ .align 2, 0
+_080B20B0: .4byte 0x02019260
+_080B20B4: .4byte gContestNextTurnNumbersGfx
+_080B20B8:
+ ldr r0, _080B20C0 @ =gContestNextTurnRandomGfx
+_080B20BA:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B20C0: .4byte gContestNextTurnRandomGfx
+ thumb_func_end sub_80B208C
+
+ thumb_func_start unref_sub_80B20C4
+unref_sub_80B20C4: @ 80B20C4
+ push {r4-r7,lr}
+ movs r6, 0
+ ldr r7, _080B2134 @ =0x020192dd
+_080B20CA:
+ adds r0, r6, r7
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B2126
+ lsls r0, r6, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_80AF59C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B2126
+ ldr r0, _080B2138 @ =gUnknown_02038696
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ lsls r4, r0, 2
+ adds r4, r0
+ adds r4, 0x2
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_80AEFE8
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 6
+ ldr r2, _080B213C @ =0x0600c028
+ adds r1, r4, r2
+ strh r0, [r1]
+ ldr r1, _080B2140 @ =0x0600c02a
+ adds r2, r4, r1
+ adds r1, r0, 0x1
+ strh r1, [r2]
+ ldr r1, _080B2144 @ =0x0600c068
+ adds r2, r4, r1
+ adds r1, r0, 0
+ adds r1, 0x10
+ strh r1, [r2]
+ ldr r2, _080B2148 @ =0x0600c06a
+ adds r4, r2
+ adds r0, 0x11
+ strh r0, [r4]
+ movs r0, 0x63
+ bl PlaySE
+_080B2126:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080B20CA
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2134: .4byte 0x020192dd
+_080B2138: .4byte gUnknown_02038696
+_080B213C: .4byte 0x0600c028
+_080B2140: .4byte 0x0600c02a
+_080B2144: .4byte 0x0600c068
+_080B2148: .4byte 0x0600c06a
+ thumb_func_end unref_sub_80B20C4
+
+ thumb_func_start sub_80B214C
+sub_80B214C: @ 80B214C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r0, _080B2178 @ =0x02019260
+ adds r2, r1, r0
+ ldrb r1, [r2, 0x15]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080B2172
+ ldrb r1, [r2, 0xC]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080B217C
+_080B2172:
+ movs r0, 0
+ b _080B217E
+ .align 2, 0
+_080B2178: .4byte 0x02019260
+_080B217C:
+ movs r0, 0x1
+_080B217E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B214C
+
+ thumb_func_start sub_80B2184
+sub_80B2184: @ 80B2184
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r4, _080B2250 @ =REG_BG1CNT
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldr r0, _080B2254 @ =gUnknown_030042C0
+ movs r2, 0xF0
+ strh r2, [r0]
+ ldr r0, _080B2258 @ =gUnknown_030041B4
+ movs r1, 0xA0
+ strh r1, [r0]
+ ldr r0, _080B225C @ =REG_BG1HOFS
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _080B2260 @ =0x0600f000
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _080B2264 @ =0x040000d4
+ mov r2, sp
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r2, _080B2268 @ =0x85000400
+ str r2, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _080B226C @ =gUnknown_08D17C3C
+ bl LZDecompressVram
+ ldrb r1, [r4]
+ movs r2, 0xD
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r1
+ strb r0, [r4]
+ movs r4, 0
+ ldr r6, _080B2270 @ =gSprites
+ adds r7, r2, 0
+ movs r5, 0x4
+ ldr r3, _080B2274 @ =0x02019338
+_080B21EE:
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x5]
+ adds r0, r7, 0
+ ands r0, r2
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+ ldrb r0, [r3, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x5]
+ adds r0, r7, 0
+ ands r0, r2
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+ adds r3, 0x4
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080B21EE
+ ldr r3, _080B2278 @ =REG_BG2CNT
+ ldrb r2, [r3]
+ movs r1, 0x4
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ movs r4, 0x1
+ orrs r0, r4
+ strb r0, [r3]
+ ldr r2, _080B227C @ =REG_BG0CNT
+ ldrb r0, [r2]
+ ands r1, r0
+ orrs r1, r4
+ strb r1, [r2]
+ adds r2, 0x2
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2250: .4byte REG_BG1CNT
+_080B2254: .4byte gUnknown_030042C0
+_080B2258: .4byte gUnknown_030041B4
+_080B225C: .4byte REG_BG1HOFS
+_080B2260: .4byte 0x0600f000
+_080B2264: .4byte 0x040000d4
+_080B2268: .4byte 0x85000400
+_080B226C: .4byte gUnknown_08D17C3C
+_080B2270: .4byte gSprites
+_080B2274: .4byte 0x02019338
+_080B2278: .4byte REG_BG2CNT
+_080B227C: .4byte REG_BG0CNT
+ thumb_func_end sub_80B2184
+
+ thumb_func_start sub_80B2280
+sub_80B2280: @ 80B2280
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r2, _080B2358 @ =0x06008000
+ movs r3, 0x80
+ lsls r3, 6
+ ldr r0, _080B235C @ =gUnknown_030042C0
+ mov r12, r0
+ ldr r0, _080B2360 @ =gUnknown_030041B4
+ mov r8, r0
+ movs r5, 0
+ ldr r1, _080B2364 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ ldr r6, _080B2368 @ =0x85000400
+ movs r7, 0x85
+ lsls r7, 24
+_080B22A4:
+ str r5, [sp]
+ mov r0, sp
+ 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 _080B22A4
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, _080B236C @ =0x0600f000
+ movs r2, 0
+ str r2, [sp]
+ ldr r0, _080B2364 @ =0x040000d4
+ mov r3, sp
+ str r3, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080B2368 @ =0x85000400
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ mov r0, r12
+ strh r2, [r0]
+ mov r3, r8
+ strh r2, [r3]
+ ldr r2, _080B2370 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r1, [r2]
+ movs r3, 0xD
+ negs r3, r3
+ adds r0, r3, 0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r2]
+ movs r4, 0
+ ldr r5, _080B2374 @ =gSprites
+ adds r6, r3, 0
+ ldr r3, _080B2378 @ =0x02019338
+_080B231E:
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x5]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+ ldrb r0, [r3, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x5]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+ adds r3, 0x4
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080B231E
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2358: .4byte 0x06008000
+_080B235C: .4byte gUnknown_030042C0
+_080B2360: .4byte gUnknown_030041B4
+_080B2364: .4byte 0x040000d4
+_080B2368: .4byte 0x85000400
+_080B236C: .4byte 0x0600f000
+_080B2370: .4byte REG_BG1CNT
+_080B2374: .4byte gSprites
+_080B2378: .4byte 0x02019338
+ thumb_func_end sub_80B2280
+
+ thumb_func_start sub_80B237C
+sub_80B237C: @ 80B237C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080B23AC @ =gUnknown_030042C0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _080B23B0 @ =gUnknown_030041B4
+ movs r0, 0xA0
+ strh r0, [r1]
+ movs r0, 0x62
+ movs r1, 0
+ bl PlaySE12WithPanning
+ ldr r1, _080B23B4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080B23B8 @ =sub_80B23BC
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B23AC: .4byte gUnknown_030042C0
+_080B23B0: .4byte gUnknown_030041B4
+_080B23B4: .4byte gTasks
+_080B23B8: .4byte sub_80B23BC
+ thumb_func_end sub_80B237C
+
+ thumb_func_start sub_80B23BC
+sub_80B23BC: @ 80B23BC
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _080B23F4 @ =gUnknown_030041B4
+ ldrh r0, [r1]
+ subs r0, 0x7
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080B23D4
+ movs r0, 0
+ strh r0, [r1]
+_080B23D4:
+ ldrh r2, [r1]
+ cmp r2, 0
+ bne _080B23EE
+ ldr r0, _080B23F8 @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ strh r2, [r1, 0x8]
+ strh r2, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ ldr r0, _080B23FC @ =sub_80B2400
+ str r0, [r1]
+_080B23EE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B23F4: .4byte gUnknown_030041B4
+_080B23F8: .4byte gTasks
+_080B23FC: .4byte sub_80B2400
+ thumb_func_end sub_80B23BC
+
+ thumb_func_start sub_80B2400
+sub_80B2400: @ 80B2400
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080B2424 @ =gTasks
+ lsls r3, r4, 2
+ adds r0, r3, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ cmp r1, 0x1
+ beq _080B247C
+ cmp r1, 0x1
+ bgt _080B2428
+ cmp r1, 0
+ beq _080B2432
+ b _080B24FC
+ .align 2, 0
+_080B2424: .4byte gTasks
+_080B2428:
+ cmp r1, 0x2
+ beq _080B24D6
+ cmp r1, 0x3
+ beq _080B24EC
+ b _080B24FC
+_080B2432:
+ movs r2, 0
+ adds r6, r3, 0
+ ldr r5, _080B2470 @ =0x02019218
+ ldr r3, _080B2474 @ =gUnknown_02038696
+_080B243A:
+ adds r0, r2, r5
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080B243A
+ bl sub_80AFA5C
+ bl sub_80B0588
+ bl sub_80AEF50
+ bl sub_80B1118
+ movs r0, 0x1
+ bl sub_80B1FD0
+ bl sub_80AFFA0
+ ldr r0, _080B2478 @ =gTasks
+ adds r1, r6, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080B24FC
+ .align 2, 0
+_080B2470: .4byte 0x02019218
+_080B2474: .4byte gUnknown_02038696
+_080B2478: .4byte gTasks
+_080B247C:
+ ldr r0, _080B24C0 @ =gUnknown_0203869A
+ ldrb r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080B24D0
+ ldr r2, _080B24C4 @ =0x02019204
+ ldrb r0, [r2, 0x7]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x7]
+ bl sub_80AE074
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B249E
+ bl sub_80AF438
+_080B249E:
+ ldr r4, _080B24C8 @ =sub_80C8C80
+ adds r0, r4, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B24CC @ =sub_80AD8DC
+ adds r1, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ bl sub_80AF860
+ movs r0, 0x2
+ strh r0, [r5, 0x8]
+ b _080B24FC
+ .align 2, 0
+_080B24C0: .4byte gUnknown_0203869A
+_080B24C4: .4byte 0x02019204
+_080B24C8: .4byte sub_80C8C80
+_080B24CC: .4byte sub_80AD8DC
+_080B24D0:
+ bl sub_80AF438
+ b _080B24E2
+_080B24D6:
+ ldr r0, _080B24E8 @ =0x02019204
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080B24FC
+_080B24E2:
+ movs r0, 0x3
+ strh r0, [r5, 0x8]
+ b _080B24FC
+ .align 2, 0
+_080B24E8: .4byte 0x02019204
+_080B24EC:
+ bl sub_80AF120
+ bl sub_80AEB30
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ ldr r0, _080B2504 @ =sub_80B253C
+ str r0, [r5]
+_080B24FC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2504: .4byte sub_80B253C
+ thumb_func_end sub_80B2400
+
+ thumb_func_start sub_80B2508
+sub_80B2508: @ 80B2508
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080B2530 @ =gUnknown_030041B4
+ ldrh r0, [r1]
+ adds r0, 0x7
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA0
+ ble _080B252C
+ ldr r0, _080B2534 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080B2538 @ =sub_80ADCDC
+ str r0, [r1]
+_080B252C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2530: .4byte gUnknown_030041B4
+_080B2534: .4byte gTasks
+_080B2538: .4byte sub_80ADCDC
+ thumb_func_end sub_80B2508
+
+ thumb_func_start sub_80B253C
+sub_80B253C: @ 80B253C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B255C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x9
+ bgt _080B2560
+ adds r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ b _080B259C
+ .align 2, 0
+_080B255C: .4byte gTasks
+_080B2560:
+ ldrh r3, [r1, 0xA]
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ bne _080B257E
+ ldrh r2, [r1, 0x8]
+ movs r4, 0x8
+ ldrsh r0, [r1, r4]
+ cmp r0, 0x10
+ bne _080B257A
+ adds r0, r3, 0x1
+ strh r0, [r1, 0xA]
+ b _080B259C
+_080B257A:
+ adds r0, r2, 0x1
+ b _080B259A
+_080B257E:
+ ldrh r0, [r1, 0x8]
+ movs r3, 0x8
+ ldrsh r2, [r1, r3]
+ cmp r2, 0
+ bne _080B2598
+ strh r2, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ ldr r0, _080B2594 @ =sub_80B25A4
+ str r0, [r1]
+ b _080B259C
+ .align 2, 0
+_080B2594: .4byte sub_80B25A4
+_080B2598:
+ subs r0, 0x1
+_080B259A:
+ strh r0, [r1, 0x8]
+_080B259C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B253C
+
+ thumb_func_start sub_80B25A4
+sub_80B25A4: @ 80B25A4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B25C4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x9
+ bgt _080B25C8
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+ b _080B25D8
+ .align 2, 0
+_080B25C4: .4byte gTasks
+_080B25C8:
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ movs r0, 0x61
+ movs r1, 0
+ bl PlaySE12WithPanning
+ ldr r0, _080B25E0 @ =sub_80B2508
+ str r0, [r4]
+_080B25D8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B25E0: .4byte sub_80B2508
+ thumb_func_end sub_80B25A4
+
+ thumb_func_start sub_80B25E4
+sub_80B25E4: @ 80B25E4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r6, 0
+ ldr r5, _080B26B4 @ =gSprites
+_080B25F6:
+ bl AllocOamMatrix
+ lsls r1, r6, 2
+ ldr r2, _080B26B8 @ =0x02019338
+ mov r8, r2
+ adds r4, r1, r2
+ ldrb r1, [r4]
+ lsls r3, r1, 4
+ adds r3, r1
+ lsls r3, 2
+ adds r3, r5
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1F
+ ands r0, r1
+ lsls r0, 1
+ ldrb r1, [r3, 0x3]
+ movs r7, 0x3F
+ negs r7, r7
+ adds r2, r7, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x3]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r2, [r0, 0x1]
+ movs r3, 0x4
+ negs r3, r3
+ adds r1, r3, 0
+ ands r2, r1
+ movs r1, 0x1
+ orrs r2, r1
+ strb r2, [r0, 0x1]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r9
+ bl StartSpriteAffineAnim
+ mov r7, r9
+ cmp r7, 0x2
+ bne _080B267A
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl AnimateSprite
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r3, 0x5
+ negs r3, r3
+ adds r2, r3, 0
+ ands r1, r2
+ strb r1, [r0]
+_080B267A:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080B25F6
+ ldr r0, _080B26BC @ =sub_80B26C8
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B26C0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ mov r7, r9
+ strh r7, [r1, 0x8]
+ ldr r2, _080B26C4 @ =0xfffffecc
+ add r2, r8
+ ldrb r0, [r2, 0x7]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2, 0x7]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B26B4: .4byte gSprites
+_080B26B8: .4byte 0x02019338
+_080B26BC: .4byte sub_80B26C8
+_080B26C0: .4byte gTasks
+_080B26C4: .4byte 0xfffffecc
+ thumb_func_end sub_80B25E4
+
+ thumb_func_start sub_80B26C8
+sub_80B26C8: @ 80B26C8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _080B2750 @ =gSprites
+ ldr r4, _080B2754 @ =0x02019338
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _080B274A
+ ldr r0, _080B2758 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0x1
+ bne _080B2718
+ adds r5, r2, 0
+ movs r3, 0x4
+ adds r2, r4, 0
+ movs r4, 0x3
+_080B26FE:
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r3
+ strb r0, [r1]
+ adds r2, 0x4
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080B26FE
+_080B2718:
+ movs r4, 0
+_080B271A:
+ lsls r0, r4, 2
+ ldr r5, _080B2754 @ =0x02019338
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B2750 @ =gSprites
+ adds r0, r1
+ bl FreeSpriteOamMatrix
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080B271A
+ ldr r0, _080B275C @ =0xfffffecc
+ adds r2, r5, r0
+ ldrb r1, [r2, 0x7]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x7]
+ adds r0, r6, 0
+ bl DestroyTask
+_080B274A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2750: .4byte gSprites
+_080B2754: .4byte 0x02019338
+_080B2758: .4byte gTasks
+_080B275C: .4byte 0xfffffecc
+ thumb_func_end sub_80B26C8
+
+ thumb_func_start sub_80B2760
+sub_80B2760: @ 80B2760
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0xB1
+ lsls r0, 1
+ cmp r1, r0
+ bls _080B2770
+ movs r1, 0x1
+_080B2770:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B2760
+
+ thumb_func_start sub_80B2778
+sub_80B2778: @ 80B2778
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080B278C @ =0x0000019b
+ cmp r1, r0
+ bls _080B2786
+ movs r1, 0
+_080B2786:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B278C: .4byte 0x0000019b
+ thumb_func_end sub_80B2778
+
+ thumb_func_start sub_80B2790
+sub_80B2790: @ 80B2790
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ ldr r4, _080B27F0 @ =0x02019260
+ adds r0, r4
+ ldrh r0, [r0, 0x6]
+ bl sub_80B2760
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, _080B27F4 @ =gUnknown_02038570
+ lsls r0, r6, 6
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_80B2778
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r4, 0xE8
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x14
+ bl memset
+ bl sub_8075624
+ ldr r1, _080B27F8 @ =gUnknown_02024E84
+ movs r2, 0
+ adds r0, r1, 0x3
+_080B27D0:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _080B27D0
+ cmp r5, 0x90
+ beq _080B2848
+ cmp r5, 0x90
+ bgt _080B2806
+ cmp r5, 0x4C
+ beq _080B2898
+ cmp r5, 0x4C
+ bgt _080B27FC
+ cmp r5, 0xD
+ beq _080B2898
+ b _080B28BE
+ .align 2, 0
+_080B27F0: .4byte 0x02019260
+_080B27F4: .4byte gUnknown_02038570
+_080B27F8: .4byte gUnknown_02024E84
+_080B27FC:
+ cmp r5, 0x82
+ beq _080B2898
+ cmp r5, 0x8F
+ beq _080B2898
+ b _080B28BE
+_080B2806:
+ cmp r5, 0xD8
+ beq _080B2880
+ cmp r5, 0xD8
+ bgt _080B2814
+ cmp r5, 0xAE
+ beq _080B2822
+ b _080B28BE
+_080B2814:
+ cmp r5, 0xDA
+ beq _080B288C
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r5, r0
+ beq _080B2848
+ b _080B28BE
+_080B2822:
+ ldr r0, _080B2840 @ =gBaseStats
+ lsls r1, r7, 3
+ subs r1, r7
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0x7
+ beq _080B2838
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0x7
+ bne _080B28B8
+_080B2838:
+ ldr r1, _080B2844 @ =gUnknown_0202F7C4
+ movs r0, 0
+ b _080B28BC
+ .align 2, 0
+_080B2840: .4byte gBaseStats
+_080B2844: .4byte gUnknown_0202F7C4
+_080B2848:
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ ldr r4, _080B2878 @ =0x02019260
+ adds r0, r4
+ ldrb r5, [r0, 0x1B]
+ ldr r6, _080B287C @ =gUnknown_02038570
+ lsls r5, 6
+ adds r0, r5, r6
+ ldrh r0, [r0]
+ bl sub_80B2778
+ adds r4, 0xE8
+ strh r0, [r4, 0x2]
+ adds r6, 0x38
+ adds r5, r6
+ ldr r0, [r5]
+ str r0, [r4, 0x10]
+ ldrb r0, [r4, 0x4]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x4]
+ b _080B28BE
+ .align 2, 0
+_080B2878: .4byte 0x02019260
+_080B287C: .4byte gUnknown_02038570
+_080B2880:
+ ldr r1, _080B2888 @ =gUnknown_0202F7BE
+ movs r0, 0xFF
+ b _080B28BC
+ .align 2, 0
+_080B2888: .4byte gUnknown_0202F7BE
+_080B288C:
+ ldr r1, _080B2894 @ =gUnknown_0202F7BE
+ movs r0, 0
+ b _080B28BC
+ .align 2, 0
+_080B2894: .4byte gUnknown_0202F7BE
+_080B2898:
+ ldr r0, _080B28B0 @ =0x02019204
+ adds r2, r0, 0
+ adds r2, 0x5A
+ ldrb r1, [r2]
+ cmp r1, 0
+ bne _080B28B8
+ movs r0, 0x2
+ strb r0, [r2]
+ ldr r0, _080B28B4 @ =gUnknown_0202F7C4
+ strb r1, [r0]
+ b _080B28BE
+ .align 2, 0
+_080B28B0: .4byte 0x02019204
+_080B28B4: .4byte gUnknown_0202F7C4
+_080B28B8:
+ ldr r1, _080B28C8 @ =gUnknown_0202F7C4
+ movs r0, 0x1
+_080B28BC:
+ strb r0, [r1]
+_080B28BE:
+ bl sub_80B2968
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B28C8: .4byte gUnknown_0202F7C4
+ thumb_func_end sub_80B2790
+
+ thumb_func_start unref_sub_80B28CC
+unref_sub_80B28CC: @ 80B28CC
+ push {r4,lr}
+ ldr r4, _080B28EC @ =0x02019348
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x14
+ bl memset
+ subs r4, 0xEA
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080B28E6
+ subs r0, 0x1
+ strb r0, [r4]
+_080B28E6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B28EC: .4byte 0x02019348
+ thumb_func_end unref_sub_80B28CC
+
+ thumb_func_start sub_80B28F0
+sub_80B28F0: @ 80B28F0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r6, _080B2924 @ =0x02019348
+ strb r4, [r6, 0x5]
+ ldr r5, _080B2928 @ =gUnknown_02038570
+ lsls r4, 6
+ adds r0, r4, r5
+ ldrh r0, [r0]
+ bl sub_80B2778
+ strh r0, [r6]
+ adds r0, r5, 0
+ adds r0, 0x38
+ adds r0, r4, r0
+ ldr r0, [r0]
+ str r0, [r6, 0x8]
+ adds r5, 0x3C
+ adds r4, r5
+ ldr r0, [r4]
+ str r0, [r6, 0xC]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2924: .4byte 0x02019348
+_080B2928: .4byte gUnknown_02038570
+ thumb_func_end sub_80B28F0
+
+ thumb_func_start sub_80B292C
+sub_80B292C: @ 80B292C
+ push {lr}
+ ldr r0, _080B2958 @ =SpriteCallbackDummy
+ bl object_new_hidden_with_callback
+ ldr r1, _080B295C @ =gUnknown_02024BE0
+ strb r0, [r1, 0x3]
+ ldr r0, _080B2960 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080B2964 @ =gSprites
+ adds r0, r1
+ bl InitSpriteAffineAnim
+ bl sub_80B2968
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2958: .4byte SpriteCallbackDummy
+_080B295C: .4byte gUnknown_02024BE0
+_080B2960: .4byte gUnknown_02024C08
+_080B2964: .4byte gSprites
+ thumb_func_end sub_80B292C
+
+ thumb_func_start sub_80B2968
+sub_80B2968: @ 80B2968
+ push {r4,lr}
+ ldr r0, _080B29AC @ =gUnknown_02024BE0
+ ldrb r0, [r0, 0x3]
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080B29B0 @ =gSprites
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0x3
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ movs r0, 0x3
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ adds r4, 0x3E
+ ldrb r0, [r4]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B29AC: .4byte gUnknown_02024BE0
+_080B29B0: .4byte gSprites
+ thumb_func_end sub_80B2968
+
+ thumb_func_start sub_80B29B4
+sub_80B29B4: @ 80B29B4
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _080B29D4 @ =gBattleMoves
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0x20
+ bhi _080B2A6C
+ lsls r0, 2
+ ldr r1, _080B29D8 @ =_080B29DC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B29D4: .4byte gBattleMoves
+_080B29D8: .4byte _080B29DC
+ .align 2, 0
+_080B29DC:
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A60
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A60
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+ .4byte _080B2A6C
+_080B2A60:
+ ldr r1, _080B2A68 @ =gUnknown_02024C08
+ movs r0, 0x2
+ b _080B2A70
+ .align 2, 0
+_080B2A68: .4byte gUnknown_02024C08
+_080B2A6C:
+ ldr r1, _080B2A78 @ =gUnknown_02024C08
+ movs r0, 0x3
+_080B2A70:
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2A78: .4byte gUnknown_02024C08
+ thumb_func_end sub_80B29B4
+
+ thumb_func_start sub_80B2A7C
+sub_80B2A7C: @ 80B2A7C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ ldr r1, _080B2AC8 @ =gUnknown_02038690
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080B2AB6
+_080B2AA8:
+ adds r6, 0x1
+ cmp r6, 0x2
+ bgt _080B2AB6
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080B2AA8
+_080B2AB6:
+ mov r0, r9
+ cmp r0, 0xFF
+ bne _080B2AD0
+ ldr r0, _080B2ACC @ =gUnknown_02038695
+ ldrb r0, [r0]
+ cmp r6, r0
+ beq _080B2AD0
+ movs r0, 0
+ b _080B2C38
+ .align 2, 0
+_080B2AC8: .4byte gUnknown_02038690
+_080B2ACC: .4byte gUnknown_02038695
+_080B2AD0:
+ ldr r0, _080B2AE4 @ =gUnknown_0203869C
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080B2B16
+ lsls r0, 2
+ ldr r1, _080B2AE8 @ =_080B2AEC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B2AE4: .4byte gUnknown_0203869C
+_080B2AE8: .4byte _080B2AEC
+ .align 2, 0
+_080B2AEC:
+ .4byte _080B2B16
+ .4byte _080B2B00
+ .4byte _080B2B04
+ .4byte _080B2B08
+ .4byte _080B2B0E
+_080B2B00:
+ adds r0, r7, 0x3
+ b _080B2B12
+_080B2B04:
+ adds r0, r7, 0x6
+ b _080B2B12
+_080B2B08:
+ adds r0, r7, 0
+ adds r0, 0x9
+ b _080B2B12
+_080B2B0E:
+ adds r0, r7, 0
+ adds r0, 0xC
+_080B2B12:
+ lsls r0, 24
+ lsrs r7, r0, 24
+_080B2B16:
+ mov r1, r9
+ cmp r1, 0xFE
+ beq _080B2BC4
+ mov r0, r9
+ movs r1, 0x1
+ bl sub_80B2C4C
+ adds r4, r0, 0
+ lsls r4, 24
+ ldr r2, _080B2B98 @ =gSaveBlock1
+ lsrs r4, 19
+ ldr r0, _080B2B9C @ =0x00002dfc
+ adds r1, r2, r0
+ adds r1, r4, r1
+ ldr r5, _080B2BA0 @ =gUnknown_02038570
+ lsls r6, 6
+ adds r0, r5, 0
+ adds r0, 0x38
+ adds r0, r6, r0
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r1, r4, r2
+ mov r8, r1
+ adds r0, r6, r5
+ ldrh r1, [r0]
+ ldr r0, _080B2BA4 @ =0x00002e04
+ add r0, r8
+ strh r1, [r0]
+ movs r0, 0xB8
+ lsls r0, 6
+ adds r1, r2, r0
+ adds r1, r4, r1
+ adds r0, r5, 0
+ adds r0, 0x3C
+ adds r0, r6, r0
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r1, _080B2BA8 @ =0x00002e07
+ adds r0, r2, r1
+ adds r0, r4, r0
+ adds r1, r5, 0x2
+ adds r1, r6, r1
+ str r2, [sp]
+ bl StringCopy
+ ldr r2, [sp]
+ ldr r0, _080B2BAC @ =0x00002e12
+ adds r2, r0
+ adds r4, r2
+ adds r5, 0xD
+ adds r6, r5
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl StringCopy
+ mov r1, r9
+ cmp r1, 0xFF
+ beq _080B2BB8
+ ldr r0, _080B2BB0 @ =gUnknown_0203869C
+ ldrh r1, [r0]
+ ldr r0, _080B2BB4 @ =0x00002e06
+ add r0, r8
+ strb r1, [r0]
+ b _080B2C36
+ .align 2, 0
+_080B2B98: .4byte gSaveBlock1
+_080B2B9C: .4byte 0x00002dfc
+_080B2BA0: .4byte gUnknown_02038570
+_080B2BA4: .4byte 0x00002e04
+_080B2BA8: .4byte 0x00002e07
+_080B2BAC: .4byte 0x00002e12
+_080B2BB0: .4byte gUnknown_0203869C
+_080B2BB4: .4byte 0x00002e06
+_080B2BB8:
+ ldr r0, _080B2BC0 @ =0x00002e06
+ add r0, r8
+ strb r7, [r0]
+ b _080B2C36
+ .align 2, 0
+_080B2BC0: .4byte 0x00002e06
+_080B2BC4:
+ ldr r5, _080B2C14 @ =0x02015de0
+ ldr r2, _080B2C18 @ =gUnknown_02038570
+ lsls r4, r6, 6
+ adds r0, r2, 0
+ adds r0, 0x38
+ adds r0, r4, r0
+ ldr r0, [r0]
+ str r0, [r5]
+ adds r0, r2, 0
+ adds r0, 0x3C
+ adds r0, r4, r0
+ ldr r0, [r0]
+ str r0, [r5, 0x4]
+ adds r0, r4, r2
+ ldrh r0, [r0]
+ strh r0, [r5, 0x8]
+ adds r0, r5, 0
+ adds r0, 0xB
+ adds r1, r2, 0x2
+ adds r1, r4, r1
+ str r2, [sp]
+ bl StringCopy
+ ldr r0, _080B2C1C @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ ldr r2, [sp]
+ cmp r0, 0
+ beq _080B2C24
+ adds r0, r5, 0
+ adds r0, 0x16
+ lsls r1, r6, 3
+ subs r1, r6
+ lsls r1, 2
+ ldr r2, _080B2C20 @ =gLinkPlayers + 0x8
+ adds r1, r2
+ bl StringCopy
+ b _080B2C32
+ .align 2, 0
+_080B2C14: .4byte 0x02015de0
+_080B2C18: .4byte gUnknown_02038570
+_080B2C1C: .4byte gUnknown_0203869A
+_080B2C20: .4byte gLinkPlayers + 0x8
+_080B2C24:
+ adds r0, r5, 0
+ adds r0, 0x16
+ adds r1, r2, 0
+ adds r1, 0xD
+ adds r1, r4, r1
+ bl StringCopy
+_080B2C32:
+ ldr r0, _080B2C48 @ =0x02015de0
+ strb r7, [r0, 0xA]
+_080B2C36:
+ movs r0, 0x1
+_080B2C38:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080B2C48: .4byte 0x02015de0
+ thumb_func_end sub_80B2A7C
+
+ thumb_func_start sub_80B2C4C
+sub_80B2C4C: @ 80B2C4C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r0, 0x2
+ beq _080B2C6E
+ cmp r0, 0x2
+ ble _080B2C66
+ cmp r0, 0x3
+ beq _080B2CA0
+ b _080B2CD4
+_080B2C66:
+ cmp r2, 0
+ blt _080B2CD4
+ adds r0, r2, 0
+ b _080B2D16
+_080B2C6E:
+ cmp r1, 0
+ beq _080B2C98
+ movs r2, 0x4
+ ldr r0, _080B2C9C @ =gSaveBlock1 + 0x2DFC
+ adds r4, r0, 0
+ adds r4, 0x60
+ adds r3, r0, 0
+ adds r3, 0x80
+_080B2C7E:
+ adds r1, r3, 0
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5,r6}
+ stm r1!, {r5,r6}
+ subs r4, 0x20
+ subs r3, 0x20
+ subs r2, 0x1
+ cmp r2, 0x2
+ bgt _080B2C7E
+_080B2C98:
+ movs r0, 0x2
+ b _080B2D16
+ .align 2, 0
+_080B2C9C: .4byte gSaveBlock1 + 0x2DFC
+_080B2CA0:
+ cmp r1, 0
+ beq _080B2CCA
+ movs r2, 0x7
+ ldr r0, _080B2CD0 @ =gSaveBlock1 + 0x2DFC
+ adds r4, r0, 0
+ adds r4, 0xC0
+ adds r3, r0, 0
+ adds r3, 0xE0
+_080B2CB0:
+ adds r1, r3, 0
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5,r7}
+ stm r1!, {r5,r7}
+ subs r4, 0x20
+ subs r3, 0x20
+ subs r2, 0x1
+ cmp r2, 0x5
+ bgt _080B2CB0
+_080B2CCA:
+ movs r0, 0x5
+ b _080B2D16
+ .align 2, 0
+_080B2CD0: .4byte gSaveBlock1 + 0x2DFC
+_080B2CD4:
+ ldr r0, _080B2CE8 @ =gUnknown_0203869C
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080B2D14
+ lsls r0, 2
+ ldr r1, _080B2CEC @ =_080B2CF0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B2CE8: .4byte gUnknown_0203869C
+_080B2CEC: .4byte _080B2CF0
+ .align 2, 0
+_080B2CF0:
+ .4byte _080B2D04
+ .4byte _080B2D08
+ .4byte _080B2D0C
+ .4byte _080B2D10
+ .4byte _080B2D14
+_080B2D04:
+ movs r0, 0x8
+ b _080B2D16
+_080B2D08:
+ movs r0, 0x9
+ b _080B2D16
+_080B2D0C:
+ movs r0, 0xA
+ b _080B2D16
+_080B2D10:
+ movs r0, 0xB
+ b _080B2D16
+_080B2D14:
+ movs r0, 0xC
+_080B2D16:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B2C4C
+
+ thumb_func_start sub_80B2D1C
+sub_80B2D1C: @ 80B2D1C
+ push {r4-r7,lr}
+ ldr r0, _080B2D48 @ =gSaveBlock1
+ ldr r4, _080B2D4C @ =gUnknown_083CC5D0
+ ldr r1, _080B2D50 @ =0x00002dfc
+ adds r3, r0, r1
+ movs r2, 0x7
+_080B2D28:
+ adds r1, r3, 0
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5,r6}
+ stm r1!, {r5,r6}
+ adds r4, 0x20
+ adds r3, 0x20
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080B2D28
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B2D48: .4byte gSaveBlock1
+_080B2D4C: .4byte gUnknown_083CC5D0
+_080B2D50: .4byte 0x00002dfc
+ thumb_func_end sub_80B2D1C
+
+ .align 2, 0 @ Don't pad with nop.