summaryrefslogtreecommitdiff
path: root/asm/rom_8011DC0.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/rom_8011DC0.s')
-rw-r--r--asm/rom_8011DC0.s56086
1 files changed, 56086 insertions, 0 deletions
diff --git a/asm/rom_8011DC0.s b/asm/rom_8011DC0.s
new file mode 100644
index 000000000..80bc66f3f
--- /dev/null
+++ b/asm/rom_8011DC0.s
@@ -0,0 +1,56086 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start nullsub_89
+nullsub_89: @ 80124E8
+ bx lr
+ thumb_func_end nullsub_89
+
+ thumb_func_start sub_80124EC
+sub_80124EC: @ 80124EC
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ adds r0, r6, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ lsls r4, 8
+ movs r0, 0x90
+ lsls r0, 6
+ cmp r4, r0
+ beq _08012588
+ cmp r4, r0
+ bgt _08012526
+ movs r0, 0x80
+ lsls r0, 2
+ cmp r4, r0
+ beq _08012538
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r4, r0
+ beq _08012544
+ b _080125A6
+_08012526:
+ movs r0, 0x94
+ lsls r0, 6
+ cmp r4, r0
+ beq _08012554
+ movs r0, 0xD4
+ lsls r0, 6
+ cmp r4, r0
+ beq _08012564
+ b _080125A6
+_08012538:
+ ldr r1, =gUnknown_082EDB60
+ subs r0, r5, 0x1
+ lsls r0, 2
+ b _0801256C
+ .pool
+_08012544:
+ ldr r1, =gUnknown_082EDB60
+ subs r0, r5, 0x1
+ lsls r0, 2
+ adds r1, 0x14
+ b _0801256C
+ .pool
+_08012554:
+ ldr r1, =gUnknown_082EDB60
+ subs r0, r5, 0x1
+ lsls r0, 2
+ adds r1, 0x28
+ b _0801256C
+ .pool
+_08012564:
+ ldr r1, =gUnknown_082EDB60
+ subs r0, r5, 0x1
+ lsls r0, 2
+ adds r1, 0x3C
+_0801256C:
+ adds r0, r1
+ ldr r2, [r0]
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ adds r0, r6, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl sub_80173E0
+ b _080125A6
+ .pool
+_08012588:
+ ldr r1, =gUnknown_082EDB60
+ subs r0, r5, 0x1
+ lsls r0, 2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r2, [r0]
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ adds r0, r6, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl sub_80173E0
+_080125A6:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl CopyWindowToVram
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80124EC
+
+ thumb_func_start sub_80125BC
+sub_80125BC: @ 80125BC
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x28
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r6, =gSaveBlock2Ptr
+ ldr r2, [r6]
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ mov r8, r0
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl sub_80173E0
+ ldr r1, =gText_UnkCtrlCodeF907
+ add r0, sp, 0x8
+ bl StringCopy
+ adds r5, r0, 0
+ ldr r0, [r6]
+ adds r0, 0xA
+ bl sub_8015658
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r5, 0
+ movs r2, 0x2
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x11
+ str r0, [sp]
+ mov r0, r8
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x1
+ add r2, sp, 0x8
+ movs r3, 0
+ bl sub_80173E0
+ add sp, 0x28
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80125BC
+
+ thumb_func_start sub_801262C
+sub_801262C: @ 801262C
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ subs r0, r1, 0x1
+ cmp r0, 0x1B
+ bhi _080126C0
+ lsls r0, 2
+ ldr r1, =_08012648
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08012648:
+ .4byte _080126B8
+ .4byte _080126B8
+ .4byte _080126B8
+ .4byte _080126B8
+ .4byte _080126C0
+ .4byte _080126C0
+ .4byte _080126C0
+ .4byte _080126C0
+ .4byte _080126B8
+ .4byte _080126B8
+ .4byte _080126B8
+ .4byte _080126C0
+ .4byte _080126C0
+ .4byte _080126B8
+ .4byte _080126B8
+ .4byte _080126B8
+ .4byte _080126C0
+ .4byte _080126C0
+ .4byte _080126C0
+ .4byte _080126C0
+ .4byte _080126B8
+ .4byte _080126B8
+ .4byte _080126B8
+ .4byte _080126B8
+ .4byte _080126B8
+ .4byte _080126B8
+ .4byte _080126B8
+ .4byte _080126B8
+_080126B8:
+ ldr r0, =gStringVar4
+ ldr r1, =gText_AwaitingCommunication
+ bl StringExpandPlaceholders
+_080126C0:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801262C
+
+ thumb_func_start sub_80126CC
+sub_80126CC: @ 80126CC
+ push {lr}
+ subs r0, 0x9
+ cmp r0, 0x12
+ bhi _08012734
+ lsls r0, 2
+ ldr r1, =_080126E4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080126E4:
+ .4byte _08012730
+ .4byte _08012730
+ .4byte _08012730
+ .4byte _08012734
+ .4byte _08012734
+ .4byte _08012734
+ .4byte _08012730
+ .4byte _08012730
+ .4byte _08012734
+ .4byte _08012734
+ .4byte _08012734
+ .4byte _08012734
+ .4byte _08012734
+ .4byte _08012734
+ .4byte _08012730
+ .4byte _08012730
+ .4byte _08012730
+ .4byte _08012730
+ .4byte _08012730
+_08012730:
+ movs r0, 0x1
+ b _08012736
+_08012734:
+ movs r0, 0
+_08012736:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80126CC
+
+ thumb_func_start BerryBlenderLinkBecomeLeader
+BerryBlenderLinkBecomeLeader: @ 801273C
+ push {lr}
+ ldr r0, =sub_8012780
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gUnknown_02022C30
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r1, r0
+ str r1, [r2]
+ ldr r0, =gUnknown_03000DA0
+ str r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0xC]
+ strb r0, [r1, 0xD]
+ ldr r1, =gSpecialVar_Result
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end BerryBlenderLinkBecomeLeader
+
+ thumb_func_start sub_8012780
+sub_8012780: @ 8012780
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gUnknown_02022C30
+ ldr r6, [r0]
+ ldrb r0, [r6, 0xC]
+ cmp r0, 0x1E
+ bls _0801279A
+ bl _08012F50
+_0801279A:
+ lsls r0, 2
+ ldr r1, =_080127AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080127AC:
+ .4byte _08012828
+ .4byte _08012F50
+ .4byte _08012F50
+ .4byte _080128A0
+ .4byte _080129C8
+ .4byte _08012A50
+ .4byte _08012A6C
+ .4byte _08012B8C
+ .4byte _08012F50
+ .4byte _08012AFC
+ .4byte _08012B14
+ .4byte _08012BA8
+ .4byte _08012C5C
+ .4byte _08012D5A
+ .4byte _08012D78
+ .4byte _08012D8A
+ .4byte _08012DA8
+ .4byte _08012E62
+ .4byte _08012E78
+ .4byte _08012DF2
+ .4byte _08012E10
+ .4byte _08012ED0
+ .4byte _08012EFC
+ .4byte _08012ED0
+ .4byte _08012EE6
+ .4byte _08012F50
+ .4byte _08012F14
+ .4byte _08012F50
+ .4byte _08012F50
+ .4byte _08012B54
+ .4byte _08012EB6
+_08012828:
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r2, [r0]
+ adds r3, r0, 0
+ cmp r2, 0x14
+ bne _08012848
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _08012848
+ adds r0, r2, 0x1
+ strh r0, [r3]
+_08012848:
+ ldr r2, =gUnknown_02022C2C
+ ldr r1, =gUnknown_082F00C4
+ ldrh r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ strb r0, [r2]
+ ldr r4, =gUnknown_02022C2D
+ ldrh r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ lsrs r0, 8
+ strb r0, [r4]
+ ldrb r0, [r2]
+ movs r1, 0
+ movs r2, 0
+ bl sub_8010F84
+ bl sub_800B488
+ bl OpenLink
+ ldrb r1, [r4]
+ movs r0, 0xF
+ ands r0, r1
+ bl sub_8011C10
+ movs r0, 0x3
+ strb r0, [r6, 0xC]
+ b _08012F50
+ .pool
+_080128A0:
+ movs r0, 0x70
+ bl AllocZeroed
+ str r0, [r6, 0x4]
+ movs r0, 0xA0
+ bl AllocZeroed
+ str r0, [r6]
+ movs r0, 0xA0
+ bl AllocZeroed
+ str r0, [r6, 0x8]
+ ldr r0, [r6, 0x4]
+ movs r1, 0x4
+ bl sub_80175EC
+ ldr r0, [r6]
+ movs r1, 0x5
+ bl sub_8017580
+ ldr r0, [r6]
+ adds r1, r0, 0
+ adds r1, 0x10
+ bl sub_800DF90
+ ldr r1, [r6]
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r1, 0x18]
+ ldr r2, [r6]
+ ldrb r1, [r2, 0x1A]
+ subs r0, 0x4
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x1A]
+ ldr r2, [r6]
+ ldrb r1, [r2, 0x1A]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1A]
+ ldr r0, [r6]
+ strb r3, [r0, 0x1B]
+ ldr r0, [r6, 0x4]
+ movs r1, 0xFF
+ bl sub_8016FC0
+ strb r0, [r6, 0x17]
+ ldr r0, =gUnknown_082F00BC
+ bl AddWindow
+ strb r0, [r6, 0x10]
+ ldr r0, =gUnknown_02022C2D
+ ldrb r0, [r0]
+ movs r1, 0xF
+ ands r1, r0
+ cmp r1, 0x2
+ blt _08012938
+ cmp r1, 0x4
+ ble _08012928
+ cmp r1, 0x5
+ beq _08012930
+ b _08012938
+ .pool
+_08012928:
+ ldr r0, =gUnknown_082F011C
+ b _08012932
+ .pool
+_08012930:
+ ldr r0, =gUnknown_082F0124
+_08012932:
+ bl AddWindow
+ strb r0, [r6, 0xF]
+_08012938:
+ ldr r0, =gUnknown_082F012C
+ bl AddWindow
+ strb r0, [r6, 0x11]
+ ldrb r0, [r6, 0x10]
+ movs r1, 0x22
+ bl FillWindowPixelBuffer
+ ldrb r0, [r6, 0x10]
+ ldr r2, =gUnknown_082EDBC4
+ movs r3, 0x1
+ mov r8, r3
+ str r3, [sp]
+ movs r4, 0x4
+ str r4, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0x8
+ bl sub_80173E0
+ ldrb r0, [r6, 0x10]
+ bl PutWindowTilemap
+ ldrb r0, [r6, 0x10]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldrb r0, [r6, 0xF]
+ movs r1, 0
+ bl NewMenuHelpers_DrawStdWindowFrame
+ ldr r0, =gMultiuseListMenuTemplate
+ adds r2, r0, 0
+ ldr r1, =gUnknown_082F015C
+ ldm r1!, {r3,r5,r7}
+ stm r2!, {r3,r5,r7}
+ ldm r1!, {r3,r5,r7}
+ stm r2!, {r3,r5,r7}
+ ldrb r1, [r6, 0xF]
+ strb r1, [r0, 0x10]
+ movs r1, 0
+ movs r2, 0
+ bl ListMenuInit
+ strb r0, [r6, 0x12]
+ ldrb r0, [r6, 0x11]
+ movs r1, 0
+ bl NewMenuHelpers_DrawStdWindowFrame
+ ldrb r0, [r6, 0x11]
+ bl PutWindowTilemap
+ ldrb r0, [r6, 0x11]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ mov r5, r8
+ strb r5, [r6, 0x13]
+ strb r4, [r6, 0xC]
+ b _08012F50
+ .pool
+_080129C8:
+ ldr r0, =gStringVar1
+ ldr r2, =gUnknown_082F0048
+ ldr r4, =gUnknown_02022C2C
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ ldr r0, =gUnknown_02022C2D
+ ldrb r2, [r0]
+ lsrs r0, r2, 4
+ cmp r0, 0
+ beq _08012A2C
+ ldrb r1, [r6, 0x13]
+ subs r0, 0x1
+ cmp r1, r0
+ ble _08012A18
+ movs r0, 0xF
+ ands r0, r2
+ cmp r0, 0
+ beq _08012A18
+ ldr r0, =gStringVar4
+ ldr r1, =gText_AwaitingLink
+ bl StringExpandPlaceholders
+ b _08012A34
+ .pool
+_08012A18:
+ ldr r0, =gStringVar4
+ ldr r1, =gText_AwaitingCommunication
+ bl StringExpandPlaceholders
+ b _08012A34
+ .pool
+_08012A2C:
+ ldr r0, =gStringVar4
+ ldrb r1, [r4]
+ bl sub_801262C
+_08012A34:
+ ldrb r0, [r6, 0x11]
+ ldr r1, =gUnknown_02022C2D
+ ldrb r1, [r1]
+ ldrb r2, [r6, 0x13]
+ bl sub_80124EC
+ movs r0, 0x5
+ strb r0, [r6, 0xC]
+ b _08012F50
+ .pool
+_08012A50:
+ adds r0, r6, 0
+ adds r0, 0xD
+ ldr r1, =gStringVar4
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ bne _08012A62
+ b _08012F50
+_08012A62:
+ movs r0, 0x6
+ strb r0, [r6, 0xC]
+ b _08012F50
+ .pool
+_08012A6C:
+ adds r0, r6, 0
+ movs r1, 0x7
+ movs r2, 0xA
+ bl sub_801320C
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08012AA8
+ ldrb r0, [r6, 0x13]
+ cmp r0, 0x1
+ bne _08012A90
+ movs r0, 0x17
+ b _08012AA6
+ .pool
+_08012A90:
+ ldr r0, =gUnknown_02022C2D
+ ldrb r1, [r0]
+ movs r0, 0xF0
+ ands r0, r1
+ cmp r0, 0
+ beq _08012AA4
+ movs r0, 0x1E
+ b _08012AA6
+ .pool
+_08012AA4:
+ movs r0, 0x13
+_08012AA6:
+ strb r0, [r6, 0xC]
+_08012AA8:
+ ldr r0, =gUnknown_02022C2D
+ ldrb r2, [r0]
+ lsrs r0, r2, 4
+ cmp r0, 0
+ beq _08012ADE
+ ldrb r1, [r6, 0x13]
+ subs r0, 0x1
+ cmp r1, r0
+ ble _08012ADE
+ movs r4, 0xF
+ adds r0, r4, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08012ADE
+ bl sub_8012240
+ cmp r0, 0
+ beq _08012ADE
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08012ADE
+ strb r4, [r6, 0xC]
+ bl sub_800EF38
+_08012ADE:
+ ldrb r0, [r6, 0xC]
+ cmp r0, 0x6
+ beq _08012AE6
+ b _08012F50
+_08012AE6:
+ bl sub_80105EC
+ cmp r0, 0
+ bne _08012AF0
+ b _08012F50
+_08012AF0:
+ b _08012C56
+ .pool
+_08012AFC:
+ bl sub_80105EC
+ cmp r0, 0
+ beq _08012B06
+ b _08012F50
+_08012B06:
+ movs r0, 0x6
+ strb r0, [r6, 0xC]
+ ldr r0, [r6]
+ bl sub_8013398
+ strb r0, [r6, 0x13]
+ b _08012F50
+_08012B14:
+ movs r3, 0
+ ldr r0, =gUnknown_02022C2C
+ ldrb r1, [r0]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0x2
+ bne _08012B24
+ movs r3, 0x1
+_08012B24:
+ adds r0, r6, 0
+ adds r0, 0xD
+ ldr r2, =gUnknown_082EDDC4
+ lsls r1, r3, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ bne _08012B3C
+ b _08012F50
+_08012B3C:
+ ldr r0, [r6]
+ bl sub_8013398
+ strb r0, [r6, 0x13]
+ ldrb r0, [r6, 0x12]
+ bl sub_81AE70C
+ b _08012E5C
+ .pool
+_08012B54:
+ ldr r0, =gUnknown_02022C2D
+ ldrb r0, [r0]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x2
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r3, r0, 31
+ adds r0, r6, 0
+ adds r0, 0xD
+ ldr r2, =gUnknown_082EDDC4
+ lsls r1, r3, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ bne _08012B7E
+ b _08012F50
+_08012B7E:
+ movs r0, 0x15
+ strb r0, [r6, 0xC]
+ b _08012F50
+ .pool
+_08012B8C:
+ adds r0, r6, 0
+ adds r0, 0xD
+ ldr r1, =gStringVar4
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ bne _08012B9E
+ b _08012F50
+_08012B9E:
+ movs r0, 0xB
+ strb r0, [r6, 0xC]
+ b _08012F50
+ .pool
+_08012BA8:
+ adds r4, r6, 0
+ adds r4, 0xD
+ ldrb r1, [r6, 0x13]
+ lsls r1, 5
+ ldr r0, [r6]
+ adds r0, r1
+ adds r0, 0x2
+ bl sub_8015658
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r2, [r6, 0x13]
+ lsls r2, 5
+ ldr r1, [r6]
+ adds r1, r2
+ adds r1, 0x10
+ bl sub_801064C
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl sub_80170B8
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08012C28
+ cmp r1, r0
+ bgt _08012BEC
+ subs r0, 0x2
+ cmp r1, r0
+ beq _08012C56
+ b _08012F50
+_08012BEC:
+ cmp r1, 0
+ beq _08012BF6
+ cmp r1, 0x1
+ beq _08012C28
+ b _08012F50
+_08012BF6:
+ bl sub_800E0E8
+ movs r0, 0
+ movs r1, 0
+ bl CreateWirelessStatusIndicatorSprite
+ movs r0, 0x5
+ strb r0, [r6, 0x19]
+ ldrb r1, [r6, 0x13]
+ lsls r1, 5
+ ldr r0, [r6]
+ adds r0, r1
+ adds r0, 0x2
+ bl sub_8015658
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldrb r0, [r6, 0x13]
+ lsls r0, 5
+ ldr r2, [r6]
+ adds r2, r0
+ adds r2, 0x10
+ movs r0, 0x5
+ b _08012C4C
+_08012C28:
+ movs r0, 0x6
+ strb r0, [r6, 0x19]
+ ldrb r1, [r6, 0x13]
+ lsls r1, 5
+ ldr r0, [r6]
+ adds r0, r1
+ adds r0, 0x2
+ bl sub_8015658
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldrb r0, [r6, 0x13]
+ lsls r0, 5
+ ldr r2, [r6]
+ adds r2, r0
+ adds r2, 0x10
+ movs r0, 0x6
+_08012C4C:
+ bl sub_8010688
+ movs r0, 0xC
+ strb r0, [r6, 0xC]
+ b _08012F50
+_08012C56:
+ movs r0, 0x9
+ strb r0, [r6, 0xC]
+ b _08012F50
+_08012C5C:
+ ldrb r1, [r6, 0x13]
+ lsls r1, 5
+ ldr r0, [r6]
+ adds r0, r1
+ adds r0, 0x2
+ bl sub_8015658
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r2, [r6, 0x13]
+ lsls r2, 5
+ ldr r1, [r6]
+ adds r1, r2
+ adds r1, 0x10
+ bl sub_8010714
+ cmp r0, 0x1
+ bne _08012D4A
+ ldrb r0, [r6, 0x19]
+ cmp r0, 0x5
+ bne _08012D04
+ ldr r1, [r6]
+ ldrb r0, [r6, 0x13]
+ lsls r0, 5
+ adds r1, r0
+ movs r0, 0
+ strb r0, [r1, 0x1B]
+ ldrb r0, [r6, 0x12]
+ bl sub_81AE70C
+ ldrb r0, [r6, 0x13]
+ adds r0, 0x1
+ strb r0, [r6, 0x13]
+ ldr r1, =gUnknown_02022C2D
+ ldrb r1, [r1]
+ movs r3, 0xF
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r2, r0
+ bne _08012D40
+ movs r0, 0xF0
+ ands r0, r1
+ cmp r0, 0
+ bne _08012CBC
+ cmp r2, 0x4
+ bne _08012CC4
+_08012CBC:
+ strb r3, [r6, 0xC]
+ b _08012CE0
+ .pool
+_08012CC4:
+ ldr r0, =gStringVar1
+ ldrb r2, [r6, 0x13]
+ lsls r2, 5
+ subs r2, 0x20
+ ldr r1, [r6]
+ adds r1, r2
+ bl sub_8018404
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_082EDC9C
+ bl StringExpandPlaceholders
+ movs r0, 0xD
+ strb r0, [r6, 0xC]
+_08012CE0:
+ bl sub_800EF38
+ ldrb r0, [r6, 0x11]
+ ldr r1, =gUnknown_02022C2D
+ ldrb r1, [r1]
+ ldrb r2, [r6, 0x13]
+ bl sub_80124EC
+ b _08012D44
+ .pool
+_08012D04:
+ ldrb r1, [r6, 0x13]
+ lsls r1, 5
+ ldr r0, [r6]
+ adds r0, r1
+ adds r4, r0, 0
+ adds r4, 0x10
+ adds r0, 0x2
+ bl sub_8015658
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8011DC0
+ ldr r1, [r6]
+ ldrb r0, [r6, 0x13]
+ lsls r0, 5
+ adds r1, r0
+ ldrb r2, [r1, 0x1A]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1A]
+ ldr r0, [r6]
+ bl sub_8013398
+ ldrb r0, [r6, 0x12]
+ bl sub_81AE70C
+_08012D40:
+ movs r0, 0x4
+ strb r0, [r6, 0xC]
+_08012D44:
+ movs r0, 0
+ strb r0, [r6, 0x19]
+ b _08012F50
+_08012D4A:
+ cmp r0, 0x2
+ beq _08012D50
+ b _08012F50
+_08012D50:
+ movs r0, 0
+ movs r1, 0
+ bl sub_8011A64
+ b _08012E5C
+_08012D5A:
+ adds r0, r6, 0
+ adds r0, 0xD
+ ldr r1, =gStringVar4
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ bne _08012D6C
+ b _08012F50
+_08012D6C:
+ movs r0, 0xE
+ strb r0, [r6, 0xC]
+ b _08012F50
+ .pool
+_08012D78:
+ ldrb r0, [r6, 0xE]
+ adds r0, 0x1
+ strb r0, [r6, 0xE]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x78
+ bhi _08012D88
+ b _08012F50
+_08012D88:
+ b _08012DCE
+_08012D8A:
+ adds r0, r6, 0
+ adds r0, 0xD
+ ldr r1, =gUnknown_082EDC5C
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ bne _08012D9C
+ b _08012F50
+_08012D9C:
+ movs r0, 0x10
+ strb r0, [r6, 0xC]
+ b _08012F50
+ .pool
+_08012DA8:
+ adds r0, r6, 0
+ adds r0, 0xD
+ movs r1, 0
+ bl sub_80170B8
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _08012DCE
+ cmp r1, 0
+ bgt _08012DC8
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08012DD4
+ b _08012F50
+_08012DC8:
+ cmp r1, 0x1
+ beq _08012DD4
+ b _08012F50
+_08012DCE:
+ movs r0, 0x11
+ strb r0, [r6, 0xC]
+ b _08012F50
+_08012DD4:
+ ldr r0, =gUnknown_02022C2D
+ ldrb r1, [r0]
+ movs r0, 0xF0
+ ands r0, r1
+ cmp r0, 0
+ beq _08012DEC
+ movs r0, 0x1E
+ strb r0, [r6, 0xC]
+ b _08012F50
+ .pool
+_08012DEC:
+ movs r0, 0x13
+ strb r0, [r6, 0xC]
+ b _08012F50
+_08012DF2:
+ adds r0, r6, 0
+ adds r0, 0xD
+ ldr r1, =gUnknown_082EDC78
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ bne _08012E04
+ b _08012F50
+_08012E04:
+ movs r0, 0x14
+ strb r0, [r6, 0xC]
+ b _08012F50
+ .pool
+_08012E10:
+ adds r0, r6, 0
+ adds r0, 0xD
+ movs r1, 0
+ bl sub_80170B8
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _08012EC6
+ cmp r1, 0
+ bgt _08012E30
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08012E36
+ b _08012F50
+_08012E30:
+ cmp r1, 0x1
+ beq _08012E36
+ b _08012F50
+_08012E36:
+ ldr r0, =gUnknown_02022C2D
+ ldrb r2, [r0]
+ movs r0, 0xF0
+ ands r0, r2
+ cmp r0, 0
+ beq _08012E4C
+ movs r0, 0xF
+ strb r0, [r6, 0xC]
+ b _08012F50
+ .pool
+_08012E4C:
+ movs r3, 0xF
+ ldrb r1, [r6, 0x13]
+ adds r0, r3, 0
+ ands r0, r2
+ cmp r1, r0
+ bne _08012E5C
+ strb r3, [r6, 0xC]
+ b _08012F50
+_08012E5C:
+ movs r0, 0x4
+ strb r0, [r6, 0xC]
+ b _08012F50
+_08012E62:
+ adds r0, r6, 0
+ movs r1, 0x7
+ movs r2, 0x1D
+ bl sub_801320C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08012F50
+ movs r0, 0x12
+ strb r0, [r6, 0xC]
+ b _08012F50
+_08012E78:
+ bl sub_800EF1C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _08012EAE
+ movs r0, 0
+ bl sub_800EF58
+ cmp r0, 0
+ beq _08012E94
+ movs r0, 0x1A
+ strb r0, [r6, 0xC]
+ b _08012F50
+_08012E94:
+ ldrh r0, [r6, 0x1A]
+ adds r0, 0x1
+ strh r0, [r6, 0x1A]
+ lsls r0, 16
+ movs r1, 0x96
+ lsls r1, 17
+ cmp r0, r1
+ bls _08012F50
+ movs r0, 0x1D
+ strb r0, [r6, 0xC]
+ movs r0, 0
+ strb r0, [r6, 0xD]
+ b _08012F50
+_08012EAE:
+ movs r0, 0x1D
+ strb r0, [r6, 0xC]
+ strb r1, [r6, 0xD]
+ b _08012F50
+_08012EB6:
+ adds r0, r6, 0
+ adds r0, 0xD
+ ldr r1, =gUnknown_082EDD58
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ beq _08012F50
+_08012EC6:
+ movs r0, 0x17
+ strb r0, [r6, 0xC]
+ b _08012F50
+ .pool
+_08012ED0:
+ bl sub_800E084
+ bl sub_800EDD4
+ adds r0, r6, 0
+ bl sub_8012F64
+ ldrb r0, [r6, 0xC]
+ adds r0, 0x1
+ strb r0, [r6, 0xC]
+ b _08012F50
+_08012EE6:
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0x5
+ strh r0, [r1]
+ b _08012F50
+ .pool
+_08012EFC:
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0x8
+ strh r0, [r1]
+ b _08012F50
+ .pool
+_08012F14:
+ bl sub_8011A80
+ cmp r0, 0
+ beq _08012F22
+ movs r0, 0x1D
+ strb r0, [r6, 0xC]
+ b _08012F50
+_08012F22:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08012F50
+ ldr r0, =gUnknown_02022C2C
+ ldrb r0, [r0]
+ bl sub_80126CC
+ cmp r0, 0
+ beq _08012F3A
+ bl sub_801103C
+_08012F3A:
+ movs r0, 0x1
+ bl sub_8011068
+ bl sub_80149C4
+ adds r0, r6, 0
+ bl sub_8012F64
+ adds r0, r4, 0
+ bl DestroyTask
+_08012F50:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8012780
+
+ thumb_func_start sub_8012F64
+sub_8012F64: @ 8012F64
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x11]
+ bl ClearWindowTilemap
+ ldrb r0, [r4, 0x11]
+ movs r1, 0
+ bl sub_819746C
+ ldrb r0, [r4, 0x12]
+ movs r1, 0
+ movs r2, 0
+ bl sub_81AE6C8
+ ldrb r0, [r4, 0x10]
+ bl ClearWindowTilemap
+ ldrb r0, [r4, 0xF]
+ movs r1, 0
+ bl sub_819746C
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldrb r0, [r4, 0x11]
+ bl RemoveWindow
+ ldrb r0, [r4, 0xF]
+ bl RemoveWindow
+ ldrb r0, [r4, 0x10]
+ bl RemoveWindow
+ ldrb r0, [r4, 0x17]
+ bl DestroyTask
+ ldr r0, [r4, 0x8]
+ bl Free
+ ldr r0, [r4]
+ bl Free
+ ldr r0, [r4, 0x4]
+ bl Free
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8012F64
+
+ thumb_func_start sub_8012FC4
+sub_8012FC4: @ 8012FC4
+ push {lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ subs r0, r1, 0x1
+ cmp r0, 0x1B
+ bhi _08013070
+ lsls r0, 2
+ ldr r1, =_08012FE0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08012FE0:
+ .4byte _08013050
+ .4byte _08013050
+ .4byte _08013068
+ .4byte _08013050
+ .4byte _08013070
+ .4byte _08013070
+ .4byte _08013070
+ .4byte _08013070
+ .4byte _08013068
+ .4byte _08013068
+ .4byte _08013068
+ .4byte _08013070
+ .4byte _08013070
+ .4byte _08013050
+ .4byte _08013068
+ .4byte _08013068
+ .4byte _08013070
+ .4byte _08013070
+ .4byte _08013070
+ .4byte _08013070
+ .4byte _08013058
+ .4byte _08013058
+ .4byte _08013068
+ .4byte _08013068
+ .4byte _08013068
+ .4byte _08013068
+ .4byte _08013068
+ .4byte _08013050
+_08013050:
+ ldr r1, =gUnknown_082EDBE8
+ b _0801305A
+ .pool
+_08013058:
+ ldr r1, =gUnknown_082EDC0C
+_0801305A:
+ adds r0, r2, 0
+ bl StringExpandPlaceholders
+ b _08013070
+ .pool
+_08013068:
+ ldr r1, =gUnknown_082EDC34
+ adds r0, r2, 0
+ bl StringExpandPlaceholders
+_08013070:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8012FC4
+
+ thumb_func_start sub_8013078
+sub_8013078: @ 8013078
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0x44
+ beq _08013098
+ cmp r1, 0x44
+ bgt _0801308E
+ cmp r1, 0x41
+ beq _08013098
+ b _080130AA
+_0801308E:
+ cmp r2, 0x45
+ beq _080130A4
+ cmp r2, 0x48
+ beq _080130A4
+ b _080130AA
+_08013098:
+ ldr r1, =gUnknown_082EE560
+ bl StringExpandPlaceholders
+ b _080130AA
+ .pool
+_080130A4:
+ ldr r1, =gUnknown_082EE57C
+ bl StringExpandPlaceholders
+_080130AA:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8013078
+
+ thumb_func_start sub_80130B4
+sub_80130B4: @ 80130B4
+ push {lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ subs r0, r1, 0x1
+ cmp r0, 0x1B
+ bhi _08013158
+ lsls r0, 2
+ ldr r1, =_080130D0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080130D0:
+ .4byte _08013140
+ .4byte _08013140
+ .4byte _08013150
+ .4byte _08013140
+ .4byte _08013158
+ .4byte _08013158
+ .4byte _08013158
+ .4byte _08013158
+ .4byte _08013150
+ .4byte _08013150
+ .4byte _08013150
+ .4byte _08013158
+ .4byte _08013158
+ .4byte _08013140
+ .4byte _08013150
+ .4byte _08013150
+ .4byte _08013158
+ .4byte _08013158
+ .4byte _08013158
+ .4byte _08013158
+ .4byte _08013140
+ .4byte _08013140
+ .4byte _08013150
+ .4byte _08013150
+ .4byte _08013150
+ .4byte _08013150
+ .4byte _08013150
+ .4byte _08013140
+_08013140:
+ ldr r1, =gUnknown_082EFC3C
+ adds r0, r2, 0
+ bl StringExpandPlaceholders
+ b _08013158
+ .pool
+_08013150:
+ ldr r1, =gUnknown_082EFC54
+ adds r0, r2, 0
+ bl StringExpandPlaceholders
+_08013158:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80130B4
+
+ thumb_func_start sub_8013160
+sub_8013160: @ 8013160
+ push {lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ subs r0, r1, 0x1
+ cmp r0, 0x1B
+ bhi _08013204
+ lsls r0, 2
+ ldr r1, =_0801317C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801317C:
+ .4byte _080131EC
+ .4byte _080131EC
+ .4byte _080131FC
+ .4byte _080131EC
+ .4byte _08013204
+ .4byte _08013204
+ .4byte _08013204
+ .4byte _08013204
+ .4byte _080131FC
+ .4byte _080131FC
+ .4byte _080131FC
+ .4byte _08013204
+ .4byte _08013204
+ .4byte _080131EC
+ .4byte _080131FC
+ .4byte _080131FC
+ .4byte _08013204
+ .4byte _08013204
+ .4byte _08013204
+ .4byte _08013204
+ .4byte _080131EC
+ .4byte _080131EC
+ .4byte _080131FC
+ .4byte _080131FC
+ .4byte _080131FC
+ .4byte _080131FC
+ .4byte _080131FC
+ .4byte _080131EC
+_080131EC:
+ ldr r1, =gUnknown_082EDDF4
+ adds r0, r2, 0
+ bl StringExpandPlaceholders
+ b _08013204
+ .pool
+_080131FC:
+ ldr r1, =gUnknown_082EDE0C
+ adds r0, r2, 0
+ bl StringExpandPlaceholders
+_08013204:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8013160
+
+ thumb_func_start sub_801320C
+sub_801320C: @ 801320C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r5, r2, 0
+ ldr r0, [r4]
+ bl sub_80132D4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08013228
+ cmp r0, 0x2
+ beq _0801325C
+ b _08013270
+_08013228:
+ movs r0, 0x2
+ bl PlaySE
+ ldrb r0, [r4, 0x12]
+ bl sub_81AE70C
+ ldr r0, =gStringVar2
+ ldrb r2, [r4, 0x13]
+ lsls r2, 5
+ ldr r1, [r4]
+ adds r1, r2
+ bl sub_8018404
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_02022C2C
+ ldrb r1, [r1]
+ bl sub_8012FC4
+ strb r6, [r4, 0xC]
+ b _08013270
+ .pool
+_0801325C:
+ movs r0, 0
+ movs r1, 0
+ bl sub_8011A64
+ ldrb r0, [r4, 0x12]
+ bl sub_81AE70C
+ strb r5, [r4, 0xC]
+ movs r0, 0x1
+ b _08013272
+_08013270:
+ movs r0, 0
+_08013272:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801320C
+
+ thumb_func_start sub_8013278
+sub_8013278: @ 8013278
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r0, =gUnknown_02022C30
+ ldr r3, [r0]
+ movs r2, 0
+ ldr r1, [r3]
+ lsls r0, r4, 5
+ adds r1, r0
+ ldrb r0, [r1, 0x1A]
+ lsls r0, 30
+ lsrs r0, 30
+ cmp r0, 0x1
+ beq _080132A8
+ cmp r0, 0x2
+ beq _080132B2
+ b _080132B4
+ .pool
+_080132A8:
+ ldrb r0, [r1, 0x1B]
+ cmp r0, 0
+ beq _080132B4
+ movs r2, 0x2
+ b _080132B4
+_080132B2:
+ movs r2, 0x1
+_080132B4:
+ lsls r0, r4, 5
+ ldr r3, [r3]
+ adds r3, r0
+ str r2, [sp]
+ lsls r0, r4, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0
+ adds r2, r6, 0
+ bl sub_80178A0
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8013278
+
+ thumb_func_start sub_80132D4
+sub_80132D4: @ 80132D4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r0, =gUnknown_02022C30
+ ldr r5, [r0]
+ movs r0, 0
+ mov r8, r0
+ movs r3, 0x1
+_080132E8:
+ ldr r0, [r5]
+ lsls r6, r3, 5
+ adds r2, r0, r6
+ ldrb r0, [r2, 0x1A]
+ lsls r0, 30
+ lsrs r0, 30
+ mov r9, r0
+ cmp r0, 0x1
+ bne _08013348
+ ldr r1, [r5, 0x4]
+ adds r0, r2, 0
+ str r3, [sp]
+ bl sub_80176E4
+ adds r4, r0, 0
+ ldr r3, [sp]
+ cmp r4, 0xFF
+ beq _08013330
+ ldr r1, [r5]
+ ldr r0, [r5, 0x4]
+ lsls r2, r4, 3
+ subs r2, r4
+ lsls r2, 2
+ adds r1, r6
+ adds r0, r2
+ ldm r0!, {r2,r4,r7}
+ stm r1!, {r2,r4,r7}
+ ldm r0!, {r2,r4,r7}
+ stm r1!, {r2,r4,r7}
+ ldr r0, [r5]
+ adds r0, r6
+ mov r1, r9
+ strh r1, [r0, 0x18]
+ b _08013348
+ .pool
+_08013330:
+ ldr r2, [r5]
+ adds r2, r6
+ ldrb r1, [r2, 0x1A]
+ movs r4, 0x4
+ negs r4, r4
+ adds r0, r4, 0
+ ands r1, r0
+ movs r0, 0x2
+ orrs r1, r0
+ strb r1, [r2, 0x1A]
+ movs r7, 0x2
+ mov r8, r7
+_08013348:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x4
+ bls _080132E8
+ movs r6, 0
+ movs r4, 0x3
+_08013356:
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ adds r1, r6
+ movs r2, 0x5
+ bl sub_8017734
+ adds r6, 0x1C
+ subs r4, 0x1
+ ldr r0, [r5]
+ cmp r4, 0
+ bge _08013356
+ mov r1, r8
+ cmp r1, 0x2
+ beq _08013388
+ adds r1, r0, 0
+ movs r4, 0x4
+_08013376:
+ ldrb r0, [r1, 0x1B]
+ cmp r0, 0
+ beq _08013380
+ movs r2, 0x1
+ mov r8, r2
+_08013380:
+ adds r1, 0x20
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08013376
+_08013388:
+ mov r0, r8
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80132D4
+
+ thumb_func_start sub_8013398
+sub_8013398: @ 8013398
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, =gUnknown_02022C30
+ ldr r4, [r0]
+ movs r3, 0
+_080133A8:
+ ldr r0, [r4, 0x8]
+ lsls r2, r3, 5
+ ldr r1, [r4]
+ adds r0, r2
+ adds r1, r2
+ ldm r1!, {r2,r5,r6}
+ stm r0!, {r2,r5,r6}
+ ldm r1!, {r2,r5,r7}
+ stm r0!, {r2,r5,r7}
+ ldm r1!, {r6,r7}
+ stm r0!, {r6,r7}
+ adds r3, 0x1
+ ldr r0, [r4, 0x8]
+ ldr r1, [r4]
+ cmp r3, 0x4
+ ble _080133A8
+ movs r5, 0
+ mov r8, r1
+ mov r9, r0
+ movs r3, 0x4
+_080133D0:
+ mov r1, r9
+ ldrb r0, [r1, 0x1A]
+ lsls r0, 30
+ lsrs r0, 30
+ cmp r0, 0x1
+ bne _080133F2
+ lsls r0, r5, 5
+ add r0, r8
+ ldm r1!, {r2,r6,r7}
+ stm r0!, {r2,r6,r7}
+ ldm r1!, {r2,r6,r7}
+ stm r0!, {r2,r6,r7}
+ ldm r1!, {r2,r6}
+ stm r0!, {r2,r6}
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080133F2:
+ movs r7, 0x20
+ add r9, r7
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080133D0
+ mov r10, r5
+ cmp r5, 0x4
+ bhi _08013454
+ ldr r0, =gUnknown_082F045C
+ mov r9, r0
+ movs r1, 0
+ mov r12, r1
+ movs r2, 0x4
+ negs r2, r2
+ mov r8, r2
+_08013410:
+ ldr r1, [r4]
+ lsls r3, r5, 5
+ adds r1, r3
+ mov r0, r9
+ ldm r0!, {r2,r6,r7}
+ stm r1!, {r2,r6,r7}
+ ldm r0!, {r2,r6,r7}
+ stm r1!, {r2,r6,r7}
+ ldr r0, [r4]
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x18]
+ ldr r1, [r4]
+ adds r1, r3
+ ldrb r2, [r1, 0x1A]
+ mov r0, r8
+ ands r0, r2
+ strb r0, [r1, 0x1A]
+ ldr r1, [r4]
+ adds r1, r3
+ ldrb r2, [r1, 0x1A]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1A]
+ ldr r0, [r4]
+ adds r0, r3
+ mov r6, r12
+ strb r6, [r0, 0x1B]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _08013410
+_08013454:
+ movs r3, 0
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1A]
+ lsls r0, 30
+ lsrs r0, 30
+ cmp r0, 0x1
+ bne _08013474
+ ldrb r0, [r1, 0x1B]
+ cmp r0, 0x40
+ bne _08013474
+ mov r10, r3
+ b _08013494
+ .pool
+_08013474:
+ adds r3, 0x1
+ cmp r3, 0x4
+ bgt _08013494
+ lsls r0, r3, 5
+ adds r2, r1, r0
+ ldrb r0, [r2, 0x1A]
+ lsls r0, 30
+ lsrs r0, 30
+ cmp r0, 0x1
+ bne _08013474
+ ldrb r0, [r2, 0x1B]
+ cmp r0, 0x40
+ bne _08013474
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r10, r0
+_08013494:
+ mov r0, r10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8013398
+
+ thumb_func_start BerryBlenderLinkJoinGroup
+BerryBlenderLinkJoinGroup: @ 80134A4
+ push {lr}
+ ldr r0, =sub_80134E8
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gUnknown_02022C30
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r1, r0
+ str r1, [r2]
+ ldr r0, =gUnknown_03000DA4
+ str r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0x8]
+ strb r0, [r1, 0x9]
+ ldr r1, =gSpecialVar_Result
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end BerryBlenderLinkJoinGroup
+
+ thumb_func_start sub_80134E8
+sub_80134E8: @ 80134E8
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gUnknown_02022C30
+ ldr r6, [r0]
+ ldrb r0, [r6, 0x8]
+ cmp r0, 0x17
+ bls _080134FC
+ b _08013B82
+_080134FC:
+ lsls r0, 2
+ ldr r1, =_08013510
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08013510:
+ .4byte _08013570
+ .4byte _080135E0
+ .4byte _0801360C
+ .4byte _080136D8
+ .4byte _08013B82
+ .4byte _08013788
+ .4byte _080137C4
+ .4byte _08013A10
+ .4byte _08013A2C
+ .4byte _08013A7A
+ .4byte _08013A8C
+ .4byte _08013B14
+ .4byte _08013A8C
+ .4byte _08013AE4
+ .4byte _08013A8C
+ .4byte _08013B24
+ .4byte _08013B82
+ .4byte _08013B82
+ .4byte _08013A8C
+ .4byte _08013B44
+ .4byte _08013A8C
+ .4byte _08013B78
+ .4byte _08013B82
+ .4byte _08013B68
+_08013570:
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r2, [r0]
+ adds r3, r0, 0
+ cmp r2, 0x14
+ bne _08013590
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _08013590
+ adds r0, r2, 0x1
+ strh r0, [r3]
+_08013590:
+ ldr r2, =gUnknown_02022C2C
+ ldr r1, =gUnknown_082F0530
+ ldrh r0, [r3]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldrb r0, [r2]
+ movs r1, 0
+ movs r2, 0
+ bl sub_8010F84
+ bl sub_800B488
+ bl OpenLink
+ bl sub_8011C5C
+ movs r0, 0x70
+ bl AllocZeroed
+ str r0, [r6, 0x4]
+ movs r0, 0x80
+ lsls r0, 2
+ bl AllocZeroed
+ str r0, [r6]
+ movs r0, 0x1
+ strb r0, [r6, 0x8]
+ b _08013B82
+ .pool
+_080135E0:
+ adds r0, r6, 0
+ adds r0, 0x9
+ ldr r2, =gUnknown_082EFB70
+ ldr r1, =gSpecialVar_0x8004
+ ldrh r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ bne _080135FC
+ b _08013B82
+_080135FC:
+ movs r0, 0x2
+ strb r0, [r6, 0x8]
+ b _08013B82
+ .pool
+_0801360C:
+ ldr r0, [r6, 0x4]
+ movs r1, 0x4
+ bl sub_80175EC
+ ldr r0, [r6]
+ movs r1, 0x10
+ bl sub_8017580
+ ldr r0, [r6, 0x4]
+ ldr r1, =gSpecialVar_0x8004
+ ldrh r1, [r1]
+ bl sub_8016FC0
+ movs r4, 0
+ strb r0, [r6, 0x11]
+ ldr r0, =gUnknown_082F00BC
+ bl AddWindow
+ strb r0, [r6, 0xC]
+ ldr r0, =gUnknown_082F0174
+ bl AddWindow
+ strb r0, [r6, 0xB]
+ ldr r0, =gUnknown_082F017C
+ bl AddWindow
+ strb r0, [r6, 0xD]
+ ldrb r0, [r6, 0xC]
+ movs r1, 0x22
+ bl FillWindowPixelBuffer
+ ldrb r0, [r6, 0xC]
+ ldr r2, =gUnknown_082EF7DC
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0x8
+ bl sub_80173E0
+ ldrb r0, [r6, 0xC]
+ bl PutWindowTilemap
+ ldrb r0, [r6, 0xC]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldrb r0, [r6, 0xB]
+ movs r1, 0
+ bl NewMenuHelpers_DrawStdWindowFrame
+ ldr r0, =gMultiuseListMenuTemplate
+ adds r2, r0, 0
+ ldr r1, =gUnknown_082F0204
+ ldm r1!, {r3,r5,r7}
+ stm r2!, {r3,r5,r7}
+ ldm r1!, {r3,r5,r7}
+ stm r2!, {r3,r5,r7}
+ ldrb r1, [r6, 0xB]
+ strb r1, [r0, 0x10]
+ movs r1, 0
+ movs r2, 0
+ bl ListMenuInit
+ strb r0, [r6, 0xE]
+ ldrb r0, [r6, 0xD]
+ movs r1, 0
+ bl NewMenuHelpers_DrawStdWindowFrame
+ ldrb r0, [r6, 0xD]
+ bl PutWindowTilemap
+ ldrb r0, [r6, 0xD]
+ bl sub_80125BC
+ ldrb r0, [r6, 0xD]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ strb r4, [r6, 0xF]
+ movs r0, 0x3
+ strb r0, [r6, 0x8]
+ b _08013B82
+ .pool
+_080136D8:
+ bl sub_8013E44
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080136F2
+ cmp r4, 0x1
+ beq _080136EA
+ b _08013A72
+_080136EA:
+ movs r0, 0x2
+ bl PlaySE
+ b _08013A72
+_080136F2:
+ ldrb r0, [r6, 0xE]
+ bl ListMenuHandleInputGetItemId
+ adds r4, r0, 0
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08013770
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _08013770
+ ldr r0, [r6]
+ lsls r1, r4, 5
+ adds r0, r1
+ ldrb r1, [r0, 0xA]
+ ldrb r0, [r0, 0x1A]
+ lsls r0, 30
+ lsrs r0, 30
+ cmp r0, 0x1
+ bne _08013768
+ lsrs r0, r1, 7
+ cmp r0, 0
+ bne _08013768
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_8013B8C
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _08013744
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_8013BD8
+ movs r0, 0x5
+ b _08013756
+ .pool
+_08013744:
+ ldr r0, =gStringVar4
+ ldr r2, =gUnknown_082EDD50
+ subs r1, 0x1
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ movs r0, 0x12
+_08013756:
+ strb r0, [r6, 0x8]
+ movs r0, 0x6E
+ bl PlaySE
+ b _08013B82
+ .pool
+_08013768:
+ movs r0, 0x7
+ bl PlaySE
+ b _08013B82
+_08013770:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0801377E
+ b _08013B82
+_0801377E:
+ movs r0, 0xA
+ strb r0, [r6, 0x8]
+ b _08013B82
+ .pool
+_08013788:
+ ldr r4, =gStringVar4
+ ldr r0, =gUnknown_02022C2C
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80130B4
+ adds r0, r6, 0
+ adds r0, 0x9
+ adds r1, r4, 0
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ bne _080137A6
+ b _08013B82
+_080137A6:
+ ldr r0, =gStringVar1
+ ldrb r2, [r6, 0xF]
+ lsls r2, 5
+ ldr r1, [r6]
+ adds r1, r2
+ bl sub_8018404
+ b _08013A86
+ .pool
+_080137C4:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801387A
+ ldr r4, =gUnknown_02022C2C
+ ldr r1, [r6]
+ ldrb r0, [r6, 0xF]
+ lsls r0, 5
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ lsls r0, 25
+ lsrs r0, 25
+ strb r0, [r4]
+ movs r0, 0
+ movs r1, 0
+ bl sub_8011A64
+ ldrb r0, [r4]
+ subs r0, 0x1
+ cmp r0, 0x1B
+ bhi _0801387A
+ lsls r0, 2
+ ldr r1, =_08013804
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08013804:
+ .4byte _08013874
+ .4byte _08013874
+ .4byte _08013874
+ .4byte _08013874
+ .4byte _08013874
+ .4byte _0801387A
+ .4byte _0801387A
+ .4byte _0801387A
+ .4byte _08013874
+ .4byte _08013874
+ .4byte _08013874
+ .4byte _0801387A
+ .4byte _08013874
+ .4byte _08013874
+ .4byte _08013874
+ .4byte _08013874
+ .4byte _0801387A
+ .4byte _0801387A
+ .4byte _0801387A
+ .4byte _0801387A
+ .4byte _08013874
+ .4byte _08013874
+ .4byte _08013874
+ .4byte _08013874
+ .4byte _08013874
+ .4byte _08013874
+ .4byte _08013874
+ .4byte _08013874
+_08013874:
+ movs r0, 0x14
+ strb r0, [r6, 0x8]
+ b _08013B82
+_0801387A:
+ bl sub_8011A74
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r0, 0x8
+ bls _0801388A
+ b _080139EC
+_0801388A:
+ lsls r0, 2
+ ldr r1, =_08013898
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08013898:
+ .4byte _080138BC
+ .4byte _080138C2
+ .4byte _080139EC
+ .4byte _080139EC
+ .4byte _080138C8
+ .4byte _080138C2
+ .4byte _08013934
+ .4byte _080139EC
+ .4byte _080138C2
+_080138BC:
+ movs r0, 0xC
+ strb r0, [r6, 0x8]
+ b _080139EC
+_080138C2:
+ movs r0, 0xE
+ strb r0, [r6, 0x8]
+ b _080139EC
+_080138C8:
+ ldr r5, =gStringVar4
+ ldr r4, =gUnknown_02022C2C
+ ldrb r1, [r4]
+ adds r0, r5, 0
+ bl sub_8013160
+ adds r0, r6, 0
+ adds r0, 0x9
+ adds r1, r5, 0
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ bne _080138E6
+ b _080139EC
+_080138E6:
+ ldrb r0, [r4]
+ cmp r0, 0x1C
+ beq _080138F0
+ cmp r0, 0xE
+ bne _08013904
+_080138F0:
+ movs r0, 0xC
+ movs r1, 0
+ bl sub_8011A64
+ b _080139EC
+ .pool
+_08013904:
+ movs r0, 0x7
+ movs r1, 0
+ bl sub_8011A64
+ ldr r0, =gStringVar1
+ ldr r2, =gUnknown_082F0048
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ ldr r1, =gUnknown_082EDE48
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ b _080139EC
+ .pool
+_08013934:
+ ldrb r0, [r6, 0x15]
+ adds r2, r0, 0
+ cmp r2, 0xF0
+ bls _0801395C
+ adds r0, r6, 0
+ adds r0, 0x9
+ ldr r1, =gStringVar4
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ beq _080139EC
+ movs r0, 0xC
+ movs r1, 0
+ bl sub_8011A64
+ movs r0, 0
+ b _080139EA
+ .pool
+_0801395C:
+ ldr r0, =gUnknown_02022C2C
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x1B
+ bhi _080139E8
+ lsls r0, 2
+ ldr r1, =_08013978
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08013978:
+ .4byte _080139EC
+ .4byte _080139EC
+ .4byte _080139E8
+ .4byte _080139EC
+ .4byte _080139E8
+ .4byte _080139E8
+ .4byte _080139E8
+ .4byte _080139E8
+ .4byte _080139E8
+ .4byte _080139E8
+ .4byte _080139E8
+ .4byte _080139E8
+ .4byte _080139E8
+ .4byte _080139EC
+ .4byte _080139E8
+ .4byte _080139E8
+ .4byte _080139E8
+ .4byte _080139E8
+ .4byte _080139E8
+ .4byte _080139E8
+ .4byte _080139E8
+ .4byte _080139E8
+ .4byte _080139E8
+ .4byte _080139E8
+ .4byte _080139E8
+ .4byte _080139E8
+ .4byte _080139E8
+ .4byte _080139EC
+_080139E8:
+ adds r0, r2, 0x1
+_080139EA:
+ strb r0, [r6, 0x15]
+_080139EC:
+ bl sub_8011A74
+ lsls r0, 24
+ cmp r0, 0
+ beq _080139F8
+ b _08013B82
+_080139F8:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08013A06
+ b _08013B82
+_08013A06:
+ movs r0, 0x7
+ strb r0, [r6, 0x8]
+ b _08013B82
+ .pool
+_08013A10:
+ adds r0, r6, 0
+ adds r0, 0x9
+ ldr r1, =gUnknown_082EDE64
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ bne _08013A22
+ b _08013B82
+_08013A22:
+ movs r0, 0x8
+ strb r0, [r6, 0x8]
+ b _08013B82
+ .pool
+_08013A2C:
+ adds r4, r6, 0
+ adds r4, 0x9
+ bl sub_8011A74
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_80170B8
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08013A6A
+ cmp r1, r0
+ bgt _08013A58
+ subs r0, 0x2
+ cmp r1, r0
+ beq _08013A6E
+ b _08013B82
+_08013A58:
+ cmp r1, 0
+ beq _08013A62
+ cmp r1, 0x1
+ beq _08013A6A
+ b _08013B82
+_08013A62:
+ bl sub_80106D4
+ movs r0, 0x9
+ b _08013A70
+_08013A6A:
+ movs r0, 0x5
+ b _08013A70
+_08013A6E:
+ movs r0, 0x6
+_08013A70:
+ strb r0, [r6, 0x8]
+_08013A72:
+ ldrb r0, [r6, 0xE]
+ bl sub_81AE70C
+ b _08013B82
+_08013A7A:
+ bl sub_8011A74
+ lsls r0, 24
+ cmp r0, 0
+ bne _08013A86
+ b _08013B82
+_08013A86:
+ movs r0, 0x6
+ strb r0, [r6, 0x8]
+ b _08013B82
+_08013A8C:
+ ldrb r0, [r6, 0xD]
+ bl ClearWindowTilemap
+ ldrb r0, [r6, 0xD]
+ movs r1, 0
+ bl sub_819746C
+ ldrb r0, [r6, 0xE]
+ movs r1, 0
+ movs r2, 0
+ bl sub_81AE6C8
+ ldrb r0, [r6, 0xC]
+ bl ClearWindowTilemap
+ ldrb r0, [r6, 0xB]
+ movs r1, 0
+ bl sub_819746C
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldrb r0, [r6, 0xD]
+ bl RemoveWindow
+ ldrb r0, [r6, 0xB]
+ bl RemoveWindow
+ ldrb r0, [r6, 0xC]
+ bl RemoveWindow
+ ldrb r0, [r6, 0x11]
+ bl DestroyTask
+ ldr r0, [r6]
+ bl Free
+ ldr r0, [r6, 0x4]
+ bl Free
+ ldrb r0, [r6, 0x8]
+ adds r0, 0x1
+ strb r0, [r6, 0x8]
+ b _08013B82
+_08013AE4:
+ bl sub_800E084
+ adds r5, r6, 0
+ adds r5, 0x9
+ ldr r4, =gUnknown_082EDE9C
+ bl sub_8011A74
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ beq _08013B82
+ ldr r0, =gSpecialVar_Result
+ movs r1, 0x6
+ b _08013B58
+ .pool
+_08013B14:
+ bl sub_800E084
+ ldr r0, =gSpecialVar_Result
+ movs r1, 0x5
+ b _08013B58
+ .pool
+_08013B24:
+ bl sub_800E084
+ adds r5, r6, 0
+ adds r5, 0x9
+ ldr r4, =gUnknown_082EDE9C
+ bl sub_8011A74
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r5, 0
+ b _08013B4A
+ .pool
+_08013B44:
+ adds r0, r6, 0
+ adds r0, 0x9
+ ldr r1, =gStringVar4
+_08013B4A:
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ beq _08013B82
+ ldr r0, =gSpecialVar_Result
+ movs r1, 0x8
+_08013B58:
+ strh r1, [r0]
+ movs r0, 0x17
+ strb r0, [r6, 0x8]
+ b _08013B82
+ .pool
+_08013B68:
+ adds r0, r4, 0
+ bl DestroyTask
+ bl sub_80173D4
+ bl sub_800EDD4
+ b _08013B82
+_08013B78:
+ bl sub_80149C4
+ adds r0, r4, 0
+ bl DestroyTask
+_08013B82:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80134E8
+
+ thumb_func_start sub_8013B8C
+sub_8013B8C: @ 8013B8C
+ push {lr}
+ lsls r1, 5
+ ldr r0, [r0]
+ adds r3, r0, r1
+ ldr r0, =gUnknown_02022C2C
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _08013BCE
+ ldrb r1, [r3, 0x1]
+ movs r0, 0x3C
+ ands r0, r1
+ cmp r0, 0xC
+ beq _08013BCE
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x9]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08013BC4
+ movs r0, 0x1
+ b _08013BD4
+ .pool
+_08013BC4:
+ ldrb r1, [r3]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08013BD2
+_08013BCE:
+ movs r0, 0
+ b _08013BD4
+_08013BD2:
+ movs r0, 0x2
+_08013BD4:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8013B8C
+
+ thumb_func_start sub_8013BD8
+sub_8013BD8: @ 8013BD8
+ push {r4,lr}
+ adds r4, r0, 0
+ strb r1, [r4, 0xF]
+ bl sub_800E0E8
+ movs r0, 0
+ movs r1, 0
+ bl CreateWirelessStatusIndicatorSprite
+ ldrb r0, [r4, 0xE]
+ bl sub_81AE70C
+ ldr r0, =gStringVar1
+ ldrb r2, [r4, 0xF]
+ lsls r2, 5
+ ldr r1, [r4]
+ adds r1, r2
+ bl sub_8018404
+ ldr r1, =gUnknown_082F0530
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8011090
+ ldrb r1, [r4, 0xF]
+ lsls r1, 5
+ ldr r0, [r4]
+ adds r0, r1
+ adds r4, r0, 0
+ adds r4, 0x10
+ adds r0, 0x2
+ bl sub_8015658
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8011FC8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8013BD8
+
+ thumb_func_start sub_8013C40
+sub_8013C40: @ 8013C40
+ push {lr}
+ ldr r0, =sub_8013C7C
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, =gUnknown_02022C30
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r2, =gTasks + 0x8
+ adds r1, r2
+ str r1, [r3]
+ movs r2, 0
+ strb r2, [r1, 0x8]
+ strb r2, [r1, 0x9]
+ ldr r2, =gUnknown_03000DA4
+ str r1, [r2]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8013C40
+
+ thumb_func_start sub_8013C7C
+sub_8013C7C: @ 8013C7C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gUnknown_02022C30
+ ldr r4, [r0]
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0xB
+ bhi _08013D80
+ lsls r0, 2
+ ldr r1, =_08013CA0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08013CA0:
+ .4byte _08013CD0
+ .4byte _08013D80
+ .4byte _08013D04
+ .4byte _08013D28
+ .4byte _08013D80
+ .4byte _08013D80
+ .4byte _08013D80
+ .4byte _08013D80
+ .4byte _08013D80
+ .4byte _08013D80
+ .4byte _08013D58
+ .4byte _08013D76
+_08013CD0:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_8010F84
+ bl sub_800B488
+ bl OpenLink
+ bl sub_8011C5C
+ movs r0, 0x1
+ bl sub_80111B0
+ movs r0, 0x70
+ bl AllocZeroed
+ str r0, [r4, 0x4]
+ movs r0, 0x80
+ lsls r0, 2
+ bl AllocZeroed
+ str r0, [r4]
+ movs r0, 0x2
+ strb r0, [r4, 0x8]
+ b _08013D80
+_08013D04:
+ ldr r0, [r4, 0x4]
+ movs r1, 0x4
+ bl sub_80175EC
+ ldr r0, [r4]
+ movs r1, 0x10
+ bl sub_8017580
+ ldr r0, [r4, 0x4]
+ movs r1, 0xFF
+ bl sub_8016FC0
+ movs r1, 0
+ strb r0, [r4, 0x11]
+ strb r1, [r4, 0xF]
+ movs r0, 0x3
+ strb r0, [r4, 0x8]
+ b _08013D80
+_08013D28:
+ bl sub_8013E44
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08013D3A
+ movs r0, 0x2
+ bl PlaySE
+_08013D3A:
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x26
+ ldrsh r0, [r1, r2]
+ cmp r0, 0xFF
+ bne _08013D80
+ movs r0, 0xA
+ strb r0, [r4, 0x8]
+ b _08013D80
+ .pool
+_08013D58:
+ ldrb r0, [r4, 0x11]
+ bl DestroyTask
+ ldr r0, [r4]
+ bl Free
+ ldr r0, [r4, 0x4]
+ bl Free
+ bl sub_800EDD4
+ ldrb r0, [r4, 0x8]
+ adds r0, 0x1
+ strb r0, [r4, 0x8]
+ b _08013D80
+_08013D76:
+ bl sub_800EDD4
+ adds r0, r5, 0
+ bl DestroyTask
+_08013D80:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8013C7C
+
+ thumb_func_start sub_8013D88
+sub_8013D88: @ 8013D88
+ push {lr}
+ adds r2, r0, 0
+ cmp r1, 0xFF
+ bne _08013D94
+_08013D90:
+ movs r0, 0x1
+ b _08013DB8
+_08013D94:
+ cmp r1, 0x16
+ bhi _08013DB6
+ ldr r0, =gUnknown_082F04D8
+ lsls r1, 2
+ adds r1, r0
+ ldr r1, [r1]
+ b _08013DB0
+ .pool
+_08013DA8:
+ ldrb r0, [r1]
+ cmp r0, r2
+ beq _08013D90
+ adds r1, 0x1
+_08013DB0:
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _08013DA8
+_08013DB6:
+ movs r0, 0
+_08013DB8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8013D88
+
+ thumb_func_start sub_8013DBC
+sub_8013DBC: @ 8013DBC
+ push {lr}
+ ldr r0, [r0]
+ lsls r1, 5
+ adds r1, r0, r1
+ ldrb r2, [r1, 0x1A]
+ lsls r0, r2, 30
+ lsrs r0, 30
+ cmp r0, 0x1
+ bne _08013DEE
+ ldrb r0, [r1, 0xA]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _08013DDA
+ movs r0, 0x3
+ b _08013DF0
+_08013DDA:
+ lsls r0, r2, 29
+ cmp r0, 0
+ bge _08013DE4
+ movs r0, 0x1
+ b _08013DF0
+_08013DE4:
+ ldrb r0, [r1, 0x1B]
+ cmp r0, 0
+ beq _08013DEE
+ movs r0, 0x2
+ b _08013DF0
+_08013DEE:
+ movs r0, 0
+_08013DF0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8013DBC
+
+ thumb_func_start sub_8013DF4
+sub_8013DF4: @ 8013DF4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x8
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r6, r2, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, =gUnknown_02022C30
+ ldr r0, [r0]
+ mov r8, r0
+ bl sub_8013DBC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r4, 5
+ mov r2, r8
+ ldr r3, [r2]
+ adds r3, r1
+ str r0, [sp]
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0x8
+ adds r2, r6, 0
+ bl sub_80177B8
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8013DF4
+
+ thumb_func_start sub_8013E44
+sub_8013E44: @ 8013E44
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r0, =gUnknown_02022C30
+ ldr r6, [r0]
+ movs r7, 0
+ movs r3, 0
+_08013E54:
+ ldr r0, [r6]
+ lsls r5, r3, 5
+ adds r2, r0, r5
+ ldrb r0, [r2, 0x1A]
+ lsls r0, 30
+ mov r8, r5
+ cmp r0, 0
+ beq _08013F20
+ ldr r1, [r6, 0x4]
+ adds r0, r2, 0
+ str r3, [sp]
+ bl sub_80176E4
+ adds r4, r0, 0
+ ldr r3, [sp]
+ cmp r4, 0xFF
+ beq _08013EEE
+ ldr r0, [r6]
+ adds r2, r0, r5
+ ldrb r1, [r2, 0x1A]
+ lsls r0, r1, 30
+ lsrs r0, 30
+ cmp r0, 0x1
+ bne _08013ECC
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r4, r0, 2
+ ldr r1, [r6, 0x4]
+ adds r1, r4
+ adds r0, r2, 0
+ bl sub_8017678
+ ldr r3, [sp]
+ cmp r0, 0
+ beq _08013EB0
+ ldr r1, [r6]
+ ldr r0, [r6, 0x4]
+ adds r1, r5
+ adds r0, r4
+ ldm r0!, {r2,r4,r7}
+ stm r1!, {r2,r4,r7}
+ ldm r0!, {r2,r4,r7}
+ stm r1!, {r2,r4,r7}
+ b _08013EDA
+ .pool
+_08013EB0:
+ ldr r0, [r6]
+ adds r1, r0, r5
+ ldrb r0, [r1, 0x1B]
+ cmp r0, 0
+ beq _08013EE4
+ subs r0, 0x1
+ strb r0, [r1, 0x1B]
+ ldr r0, [r6]
+ adds r0, r5
+ ldrb r0, [r0, 0x1B]
+ cmp r0, 0
+ bne _08013EE4
+ movs r7, 0x2
+ b _08013EE4
+_08013ECC:
+ movs r4, 0x4
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x1A]
+_08013EDA:
+ ldr r0, [r6]
+ adds r0, r5
+ movs r1, 0x40
+ strb r1, [r0, 0x1B]
+ movs r7, 0x1
+_08013EE4:
+ ldr r0, [r6]
+ add r0, r8
+ movs r1, 0
+ strh r1, [r0, 0x18]
+ b _08013F20
+_08013EEE:
+ ldr r0, [r6]
+ adds r1, r0, r5
+ ldrb r0, [r1, 0x1A]
+ lsls r0, 30
+ lsrs r0, 30
+ cmp r0, 0x2
+ beq _08013F20
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ strh r0, [r1, 0x18]
+ ldr r0, [r6]
+ adds r2, r0, r5
+ ldrh r1, [r2, 0x18]
+ ldr r0, =0x0000012b
+ cmp r1, r0
+ bls _08013F20
+ ldrb r0, [r2, 0x1A]
+ movs r7, 0x4
+ negs r7, r7
+ adds r1, r7, 0
+ ands r0, r1
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2, 0x1A]
+ movs r7, 0x2
+_08013F20:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xF
+ bls _08013E54
+ movs r5, 0
+ movs r4, 0x3
+_08013F2E:
+ ldr r0, [r6]
+ ldr r1, [r6, 0x4]
+ adds r1, r5
+ movs r2, 0x10
+ bl sub_8017734
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _08013F44
+ movs r7, 0x1
+_08013F44:
+ adds r5, 0x1C
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08013F2E
+ adds r0, r7, 0
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8013E44
+
+ thumb_func_start sub_8013F60
+sub_8013F60: @ 8013F60
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80773AC
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8013F60
+
+ thumb_func_start sub_8013F78
+sub_8013F78: @ 8013F78
+ push {lr}
+ ldr r0, =sub_8013F60
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8013F78
+
+ thumb_func_start sub_8013F90
+sub_8013F90: @ 8013F90
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, =gUnknown_02022C40
+ mov r8, r0
+ bl GetMultiplayerId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl sub_8018120
+ adds r7, r0, 0
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _08013FFC
+ cmp r0, 0x1
+ bgt _08013FD4
+ cmp r0, 0
+ beq _08013FDE
+ b _080140BC
+ .pool
+_08013FD4:
+ cmp r0, 0x2
+ beq _08014038
+ cmp r0, 0x3
+ beq _08014070
+ b _080140BC
+_08013FDE:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r1, r0
+ movs r0, 0
+ movs r2, 0x64
+ bl SendBlock
+ b _080140BC
+ .pool
+_08013FFC:
+ bl GetBlockReceivedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _080140BC
+ bl GetMultiplayerId
+ adds r1, r0, 0
+ ldr r0, =gEnemyParty
+ movs r2, 0x1
+ eors r1, r2
+ lsls r1, 24
+ lsrs r1, 16
+ ldr r2, =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0x64
+ bl memcpy
+ movs r0, 0x32
+ bl IncrementGameStat
+ bl ResetBlockReceivedFlags
+ b _0801405A
+ .pool
+_08014038:
+ ldr r4, =gBlockSendBuffer
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r0, =0x00002be0
+ adds r1, r0
+ adds r0, r4, 0
+ movs r2, 0xDC
+ bl memcpy
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0xDC
+ bl SendBlock
+ lsls r0, 24
+ cmp r0, 0
+ beq _080140BC
+_0801405A:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080140BC
+ .pool
+_08014070:
+ bl GetBlockReceivedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _080140BC
+ ldr r4, =gUnknown_020321C0
+ bl GetMultiplayerId
+ adds r1, r0, 0
+ movs r0, 0x1
+ eors r1, r0
+ lsls r1, 24
+ lsrs r1, 16
+ ldr r0, =gBlockRecvBuffer
+ adds r1, r0
+ adds r0, r4, 0
+ movs r2, 0xD8
+ bl memcpy
+ bl ResetBlockReceivedFlags
+ ldr r1, =gUnknown_02032298
+ strb r7, [r1]
+ movs r0, 0x6
+ strb r0, [r1, 0x1]
+ ldr r1, =gMain
+ ldr r0, =c2_exit_to_overworld_2_switch
+ str r0, [r1, 0x8]
+ ldr r0, =sub_807AE50
+ bl SetMainCallback2
+ mov r0, r8
+ bl sub_801807C
+ adds r0, r6, 0
+ bl DestroyTask
+_080140BC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8013F90
+
+ thumb_func_start sub_80140E0
+sub_80140E0: @ 80140E0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08014104
+ cmp r0, 0x1
+ beq _0801411C
+ b _0801419E
+ .pool
+_08014104:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _08014114
+ movs r0, 0x2
+ bl sub_800A4D8
+_08014114:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0801419E
+_0801411C:
+ bl GetBlockReceivedStatus
+ adds r4, r0, 0
+ bl sub_800A9D8
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _0801419E
+ movs r4, 0
+ ldr r5, =gLinkPlayers
+ b _08014152
+ .pool
+_08014138:
+ lsls r1, r4, 8
+ ldr r0, =gBlockRecvBuffer
+ adds r3, r1, r0
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gUnknown_02039B58
+ adds r0, r1
+ ldrb r2, [r5]
+ adds r1, r3, 0
+ bl sub_80C3120
+ adds r5, 0x1C
+ adds r4, 0x1
+_08014152:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ blt _08014138
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08014190
+ bl GetMultiplayerId
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 16
+ ldr r1, =gBlockRecvBuffer
+ adds r3, r0, r1
+ adds r0, r3, 0
+ adds r0, 0x60
+ ldrh r0, [r0]
+ bl sub_801B94C
+ b _08014194
+ .pool
+_08014190:
+ bl sub_801B940
+_08014194:
+ bl ResetBlockReceivedFlags
+ adds r0, r6, 0
+ bl DestroyTask
+_0801419E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80140E0
+
+ thumb_func_start sub_80141A4
+sub_80141A4: @ 80141A4
+ push {r4,lr}
+ ldr r0, =gMain
+ movs r1, 0x87
+ lsls r1, 3
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080141C0
+ cmp r0, 0x1
+ beq _080141D4
+ b _080141F2
+ .pool
+_080141C0:
+ ldr r0, =sub_80140E0
+ movs r1, 0x5
+ bl CreateTask
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080141F2
+ .pool
+_080141D4:
+ ldr r0, =sub_80140E0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ bne _080141F2
+ bl GetMultiplayerId
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =c2_exit_to_overworld_2_switch
+ bl sub_80C4E74
+_080141F2:
+ bl RunTasks
+ bl RunTextPrinters
+ bl AnimateSprites
+ bl BuildOamBuffer
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80141A4
+
+ thumb_func_start sub_8014210
+sub_8014210: @ 8014210
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 16
+ bl HealPlayerParty
+ bl copy_player_party_to_sav1
+ bl copy_bags_and_unk_data_from_save_blocks
+ ldr r5, =gLinkPlayers
+ ldr r0, =0x00002211
+ str r0, [r5, 0x14]
+ bl GetMultiplayerId
+ adds r4, r0, 0
+ bl GetMultiplayerId
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ adds r1, r5
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x18]
+ bl GetMultiplayerId
+ adds r4, r0, 0
+ bl GetMultiplayerId
+ movs r2, 0x1
+ eors r4, r2
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ adds r1, r5
+ eors r0, r2
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x18]
+ ldr r1, =gMain
+ ldr r0, =sub_80B360C
+ str r0, [r1, 0x8]
+ ldr r0, =gBattleTypeFlags
+ str r6, [r0]
+ bl PlayBattleBGM
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8014210
+
+ thumb_func_start sub_8014290
+sub_8014290: @ 8014290
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x8
+ adds r3, r0, 0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r0, =0x00004087
+ adds r1, r3, 0
+ bl VarSet
+ ldr r6, =gSaveBlock1Ptr
+ ldr r1, [r6]
+ movs r0, 0x4
+ ldrsb r0, [r1, r0]
+ ldrb r1, [r1, 0x5]
+ lsls r1, 24
+ asrs r1, 24
+ movs r2, 0x1
+ negs r2, r2
+ mov r8, r2
+ lsls r4, 24
+ asrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ str r5, [sp]
+ adds r3, r4, 0
+ bl Overworld_SetWarpDestination
+ ldr r0, [r6]
+ movs r1, 0x4
+ ldrsb r1, [r0, r1]
+ movs r2, 0x5
+ ldrsb r2, [r0, r2]
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0
+ mov r3, r8
+ bl saved_warp2_set_2
+ bl warp_in
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8014290
+
+ thumb_func_start sub_8014304
+sub_8014304: @ 8014304
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ mov r8, r2
+ adds r6, r3, 0
+ ldr r1, [sp, 0x18]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, =gSpecialVar_0x8004
+ strh r1, [r0]
+ ldr r0, =0x00004087
+ bl VarSet
+ bl GetLinkPlayerCount
+ ldr r1, =gUnknown_03005DB8
+ strb r0, [r1]
+ bl GetMultiplayerId
+ ldr r1, =gUnknown_03005DB4
+ strb r0, [r1]
+ bl sub_809D2BC
+ lsls r4, 24
+ asrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ movs r2, 0x1
+ negs r2, r2
+ mov r0, r8
+ lsls r0, 24
+ asrs r0, 24
+ mov r8, r0
+ lsls r6, 24
+ asrs r6, 24
+ str r6, [sp]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ mov r3, r8
+ bl Overworld_SetWarpDestination
+ bl warp_in
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8014304
+
+ thumb_func_start sub_8014384
+sub_8014384: @ 8014384
+ push {r4,lr}
+ ldr r0, =gMain
+ movs r1, 0x87
+ lsls r1, 3
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080143A0
+ cmp r0, 0x1
+ beq _080143B4
+ b _080143C6
+ .pool
+_080143A0:
+ ldr r0, =sub_80140E0
+ movs r1, 0x5
+ bl CreateTask
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080143C6
+ .pool
+_080143B4:
+ ldr r0, =sub_80140E0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ bne _080143C6
+ ldr r0, =sub_8086074
+ bl SetMainCallback2
+_080143C6:
+ bl RunTasks
+ bl RunTextPrinters
+ bl AnimateSprites
+ bl BuildOamBuffer
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8014384
+
+ thumb_func_start sub_80143E4
+sub_80143E4: @ 80143E4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ bl sub_80C30A4
+ cmp r5, 0
+ beq _080143FE
+ bl sub_801B39C
+ adds r1, r4, 0
+ adds r1, 0x60
+ strh r0, [r1]
+ b _08014404
+_080143FE:
+ adds r0, r4, 0
+ adds r0, 0x60
+ strh r5, [r0]
+_08014404:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80143E4
+
+ thumb_func_start sub_801440C
+sub_801440C: @ 801440C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_801B940
+ ldr r0, =gUnknown_02022C2C
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0xE
+ bhi _08014474
+ lsls r0, 2
+ ldr r1, =_08014434
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08014434:
+ .4byte _08014470
+ .4byte _08014470
+ .4byte _08014470
+ .4byte _08014470
+ .4byte _08014474
+ .4byte _08014474
+ .4byte _08014474
+ .4byte _08014474
+ .4byte _08014470
+ .4byte _08014470
+ .4byte _08014470
+ .4byte _08014474
+ .4byte _08014470
+ .4byte _08014474
+ .4byte _08014470
+_08014470:
+ bl sub_800E3A8
+_08014474:
+ ldr r0, =gUnknown_02022C2C
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x50
+ bls _08014480
+ b _08014764
+_08014480:
+ lsls r0, 2
+ ldr r1, =_08014494
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08014494:
+ .4byte _080145F4
+ .4byte _08014620
+ .4byte _0801464C
+ .4byte _08014678
+ .4byte _080146D8
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _080146FC
+ .4byte _08014714
+ .4byte _08014734
+ .4byte _0801474C
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014698
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _080145D8
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _080146C4
+ .4byte _080146D8
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _080146FC
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _08014764
+ .4byte _080145D8
+_080145D8:
+ bl overworld_free_bg_tilemaps
+ ldr r1, =gMain
+ ldr r0, =sub_801AC54
+ str r0, [r1, 0x8]
+ movs r0, 0x3
+ bl sub_81B8518
+ b _08014764
+ .pool
+_080145F4:
+ bl overworld_free_bg_tilemaps
+ ldr r0, =gBlockSendBuffer
+ movs r1, 0x1
+ bl sub_80143E4
+ bl HealPlayerParty
+ bl copy_player_party_to_sav1
+ bl copy_bags_and_unk_data_from_save_blocks
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x19
+ movs r1, 0x18
+ movs r2, 0x6
+ movs r3, 0x8
+ b _080146B0
+ .pool
+_08014620:
+ bl overworld_free_bg_tilemaps
+ bl HealPlayerParty
+ bl copy_player_party_to_sav1
+ bl copy_bags_and_unk_data_from_save_blocks
+ ldr r0, =gBlockSendBuffer
+ movs r1, 0x1
+ bl sub_80143E4
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0x19
+ movs r1, 0x18
+ movs r2, 0x6
+ movs r3, 0x8
+ b _080146B0
+ .pool
+_0801464C:
+ bl overworld_free_bg_tilemaps
+ bl HealPlayerParty
+ bl copy_player_party_to_sav1
+ bl copy_bags_and_unk_data_from_save_blocks
+ ldr r0, =gBlockSendBuffer
+ movs r1, 0x1
+ bl sub_80143E4
+ movs r0, 0x5
+ str r0, [sp]
+ movs r0, 0x19
+ movs r1, 0x1B
+ movs r2, 0x5
+ movs r3, 0x8
+ b _080146B0
+ .pool
+_08014678:
+ ldr r0, =gBlockSendBuffer
+ movs r1, 0x1
+ bl sub_80143E4
+ bl overworld_free_bg_tilemaps
+ movs r0, 0x3
+ str r0, [sp]
+ movs r0, 0x19
+ movs r1, 0x19
+ movs r2, 0x5
+ movs r3, 0x8
+ b _080146B0
+ .pool
+_08014698:
+ ldr r0, =gBlockSendBuffer
+ movs r1, 0x1
+ bl sub_80143E4
+ bl overworld_free_bg_tilemaps
+ movs r0, 0x4
+ str r0, [sp]
+ movs r0, 0x19
+ movs r1, 0x1A
+ movs r2, 0x8
+ movs r3, 0x9
+_080146B0:
+ bl sub_8014304
+ ldr r0, =sub_8014384
+ bl SetMainCallback2
+ b _08014764
+ .pool
+_080146C4:
+ bl overworld_free_bg_tilemaps
+ ldr r0, =sub_8013F90
+ movs r1, 0
+ bl CreateTask
+ b _08014764
+ .pool
+_080146D8:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080146E8
+ bl sub_800ED10
+ b _080146F6
+_080146E8:
+ bl sub_800ED28
+ movs r0, 0x45
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8010F84
+_080146F6:
+ bl sub_801DD98
+ b _08014764
+_080146FC:
+ ldr r0, =gBlockSendBuffer
+ movs r1, 0
+ bl sub_80143E4
+ ldr r0, =sub_80141A4
+ bl SetMainCallback2
+ b _08014764
+ .pool
+_08014714:
+ movs r0, 0x8
+ movs r1, 0x5
+ movs r2, 0x1
+ bl sub_8014290
+ bl GetCursorSelectionMonId
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =c2_load_new_map
+ bl sub_802A9A8
+ b _08014764
+ .pool
+_08014734:
+ movs r0, 0x7
+ movs r1, 0x9
+ movs r2, 0x1
+ bl sub_8014290
+ ldr r0, =c2_load_new_map
+ bl sub_8020C70
+ b _08014764
+ .pool
+_0801474C:
+ movs r0, 0x8
+ movs r1, 0x5
+ movs r2, 0x1
+ bl sub_8014290
+ bl GetCursorSelectionMonId
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =c2_load_new_map
+ bl sub_802493C
+_08014764:
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0x1
+ strh r0, [r1]
+ ldr r0, =gUnknown_02022C2C
+ ldrb r0, [r0]
+ cmp r0, 0x44
+ beq _0801477C
+ bl ScriptContext2_Disable
+_0801477C:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801440C
+
+ thumb_func_start sub_8014790
+sub_8014790: @ 8014790
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r7, r0, r1
+ ldr r0, =gBlockSendBuffer
+ mov r9, r0
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ mov r2, r9
+ cmp r0, 0x8
+ bls _080147B6
+ b _080149B2
+_080147B6:
+ lsls r0, 2
+ ldr r1, =_080147CC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080147CC:
+ .4byte _080147F0
+ .4byte _080148CC
+ .4byte _080148E4
+ .4byte _0801491E
+ .4byte _08014934
+ .4byte _0801494A
+ .4byte _08014986
+ .4byte _08014992
+ .4byte _0801499C
+_080147F0:
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0x1
+ strh r0, [r1]
+ ldr r0, =gUnknown_02022C2C
+ ldrb r0, [r0]
+ subs r0, 0xE
+ cmp r0, 0xE
+ bhi _080148C2
+ lsls r0, 2
+ ldr r1, =_08014818
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08014818:
+ .4byte _08014854
+ .4byte _080148C2
+ .4byte _080148B8
+ .4byte _080148C2
+ .4byte _080148C2
+ .4byte _080148C2
+ .4byte _080148C2
+ .4byte _080148C2
+ .4byte _080148C2
+ .4byte _080148B8
+ .4byte _080148B8
+ .4byte _080148B8
+ .4byte _080148B8
+ .4byte _080148B8
+ .4byte _08014854
+_08014854:
+ ldr r1, =gLinkPlayers
+ ldr r0, =0x00002211
+ str r0, [r1, 0x14]
+ movs r2, 0
+ mov r8, r2
+ mov r0, r8
+ strh r0, [r1, 0x18]
+ movs r0, 0x2
+ strh r0, [r1, 0x34]
+ ldr r6, =gUnknown_0203CEF8
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, =gBattleScripting + 0x14
+ adds r0, r4
+ movs r1, 0xB
+ bl GetMonData
+ mov r1, r9
+ strh r0, [r1]
+ ldrb r0, [r6, 0x1]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ mov r2, r9
+ strh r0, [r2, 0x2]
+ ldr r0, =gMain
+ mov r1, r8
+ str r1, [r0, 0x8]
+ movs r0, 0x4
+ strh r0, [r7]
+ bl sub_800E3A8
+ bl ResetBlockReceivedFlags
+ b _080149B2
+ .pool
+_080148B8:
+ bl sub_800E3A8
+ adds r0, r4, 0
+ bl DestroyTask
+_080148C2:
+ bl EnableBothScriptContexts
+ movs r0, 0x1
+ strh r0, [r7]
+ b _080149B2
+_080148CC:
+ bl ScriptContext1_IsScriptSetUp
+ lsls r0, 24
+ cmp r0, 0
+ bne _080149B2
+ movs r0, 0x1
+ movs r1, 0
+ bl FadeScreen
+ movs r0, 0x2
+ strh r0, [r7]
+ b _080149B2
+_080148E4:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080149B2
+ ldr r0, =gUnknown_02022C2C
+ ldrb r0, [r0]
+ cmp r0, 0x1D
+ bne _08014914
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r0, =sub_80773AC
+ bl SetMainCallback2
+ b _080149B2
+ .pool
+_08014914:
+ bl sub_800ADF8
+ movs r0, 0x3
+ strh r0, [r7]
+ b _080149B2
+_0801491E:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _080149B2
+ adds r0, r4, 0
+ bl DestroyTask
+ bl sub_80149D8
+ b _080149B2
+_08014934:
+ movs r0, 0
+ adds r1, r2, 0
+ movs r2, 0xE
+ bl SendBlock
+ lsls r0, 24
+ cmp r0, 0
+ beq _080149B2
+ movs r0, 0x5
+ strh r0, [r7]
+ b _080149B2
+_0801494A:
+ bl GetBlockReceivedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _080149B2
+ bl ResetBlockReceivedFlags
+ ldr r0, =gBlockRecvBuffer
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r0, r2
+ bl sub_80B2AF4
+ cmp r0, 0
+ beq _08014980
+ ldr r0, =gSpecialVar_Result
+ movs r1, 0xB
+ strh r1, [r0]
+ movs r0, 0x7
+ strh r0, [r7]
+ b _080149B2
+ .pool
+_08014980:
+ movs r0, 0x6
+ strh r0, [r7]
+ b _080149B2
+_08014986:
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+ b _080149B2
+_08014992:
+ bl sub_800AC34
+ movs r0, 0x8
+ strh r0, [r7]
+ b _080149B2
+_0801499C:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080149B2
+ bl sub_800E084
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+_080149B2:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8014790
+
+ thumb_func_start sub_80149C4
+sub_80149C4: @ 80149C4
+ push {lr}
+ ldr r0, =sub_8014790
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80149C4
+
+ thumb_func_start sub_80149D8
+sub_80149D8: @ 80149D8
+ push {lr}
+ ldr r0, =sub_801440C
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80149D8
+
+ thumb_func_start sub_8014A00
+sub_8014A00: @ 8014A00
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =sub_8014A40
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gUnknown_02022C30
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r1, r0
+ str r1, [r2]
+ movs r2, 0
+ strb r2, [r1, 0xC]
+ strb r2, [r1, 0xD]
+ strb r4, [r1, 0x18]
+ ldr r0, =gSpecialVar_Result
+ strh r2, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8014A00
+
+ thumb_func_start sub_8014A40
+sub_8014A40: @ 8014A40
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gUnknown_02022C30
+ ldr r5, [r0]
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0x11
+ bls _08014A54
+ b _08014EF2
+_08014A54:
+ lsls r0, 2
+ ldr r1, =_08014A68
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08014A68:
+ .4byte _08014AB0
+ .4byte _08014AEC
+ .4byte _08014BBC
+ .4byte _08014BEC
+ .4byte _08014BFC
+ .4byte _08014C4C
+ .4byte _08014C24
+ .4byte _08014C52
+ .4byte _08014CF2
+ .4byte _08014DBC
+ .4byte _08014DCC
+ .4byte _08014DE2
+ .4byte _08014DFA
+ .4byte _08014E16
+ .4byte _08014E4E
+ .4byte _08014E74
+ .4byte _08014EA8
+ .4byte _08014EE2
+_08014AB0:
+ ldr r1, =gUnknown_02022C2C
+ ldrb r0, [r5, 0x18]
+ strb r0, [r1]
+ ldr r1, =gUnknown_02022C2D
+ movs r0, 0x2
+ strb r0, [r1]
+ ldrb r0, [r5, 0x18]
+ movs r1, 0
+ movs r2, 0
+ bl sub_8010F84
+ movs r0, 0
+ movs r1, 0
+ bl sub_8010FA0
+ bl sub_800B488
+ bl OpenLink
+ movs r0, 0x2
+ bl sub_8011C10
+ movs r0, 0x1
+ strb r0, [r5, 0xC]
+ b _08014EF2
+ .pool
+_08014AEC:
+ movs r0, 0x70
+ bl AllocZeroed
+ str r0, [r5, 0x4]
+ movs r0, 0xA0
+ bl AllocZeroed
+ str r0, [r5]
+ movs r0, 0xA0
+ bl AllocZeroed
+ str r0, [r5, 0x8]
+ ldr r0, [r5, 0x4]
+ movs r1, 0x4
+ bl sub_80175EC
+ ldr r0, [r5]
+ movs r1, 0x5
+ bl sub_8017580
+ ldr r0, [r5]
+ adds r1, r0, 0
+ adds r1, 0x10
+ bl sub_800DF90
+ ldr r1, [r5]
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r1, 0x18]
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x1A]
+ subs r0, 0x4
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x1A]
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x1A]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1A]
+ ldr r0, [r5]
+ strb r3, [r0, 0x1B]
+ ldr r0, [r5, 0x4]
+ movs r1, 0xFF
+ bl sub_8016FC0
+ strb r0, [r5, 0x17]
+ ldr r0, =gUnknown_082F011C
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ bl sub_8019930
+ lsls r0, 16
+ ldr r2, =0x0000ffff
+ ldr r1, [sp, 0x4]
+ ands r1, r2
+ orrs r1, r0
+ ldr r0, =0xffff00ff
+ ands r1, r0
+ movs r0, 0xC0
+ lsls r0, 4
+ orrs r1, r0
+ str r1, [sp, 0x4]
+ mov r0, sp
+ bl AddWindow
+ strb r0, [r5, 0xF]
+ ldrb r0, [r5, 0xF]
+ bl sub_8018784
+ ldr r0, =gMultiuseListMenuTemplate
+ adds r2, r0, 0
+ ldr r1, =gUnknown_082F015C
+ ldm r1!, {r3,r4,r6}
+ stm r2!, {r3,r4,r6}
+ ldm r1!, {r3,r4,r6}
+ stm r2!, {r3,r4,r6}
+ ldrb r1, [r5, 0xF]
+ strb r1, [r0, 0x10]
+ movs r1, 0
+ movs r2, 0
+ bl ListMenuInit
+ strb r0, [r5, 0x12]
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x1
+ strb r0, [r5, 0x13]
+ b _08014C42
+ .pool
+_08014BBC:
+ ldr r0, =gStringVar1
+ ldr r2, =gUnknown_082F0048
+ ldr r4, =gUnknown_02022C2C
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ ldr r0, =gStringVar4
+ ldrb r1, [r4]
+ bl sub_801262C
+ movs r0, 0x3
+ strb r0, [r5, 0xC]
+ b _08014EF2
+ .pool
+_08014BEC:
+ ldr r0, =gStringVar4
+ bl sub_8018884
+ movs r0, 0x4
+ strb r0, [r5, 0xC]
+ b _08014EF2
+ .pool
+_08014BFC:
+ adds r0, r5, 0
+ movs r1, 0x5
+ movs r2, 0x6
+ bl sub_801320C
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08014C14
+ b _08014EF2
+_08014C14:
+ movs r0, 0xD
+ strb r0, [r5, 0xC]
+ bl sub_800E084
+ b _08014EF2
+ .pool
+_08014C24:
+ adds r0, r5, 0
+ adds r0, 0xD
+ ldr r1, =gUnknown_082EDF40
+ bl mevent_0814257C
+ cmp r0, 0
+ bne _08014C34
+ b _08014EF2
+_08014C34:
+ ldr r0, [r5]
+ bl sub_8013398
+ strb r0, [r5, 0x13]
+ ldrb r0, [r5, 0x12]
+ bl sub_81AE70C
+_08014C42:
+ movs r0, 0x2
+ strb r0, [r5, 0xC]
+ b _08014EF2
+ .pool
+_08014C4C:
+ movs r0, 0x7
+ strb r0, [r5, 0xC]
+ b _08014EF2
+_08014C52:
+ adds r0, r5, 0
+ adds r0, 0xD
+ adds r1, r5, 0
+ adds r1, 0x14
+ ldr r3, =gStringVar4
+ movs r2, 0
+ bl sub_8018B08
+ lsls r0, 24
+ asrs r4, r0, 24
+ cmp r4, 0
+ beq _08014C82
+ cmp r4, 0
+ bgt _08014C7C
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _08014CC4
+ b _08014EF2
+ .pool
+_08014C7C:
+ cmp r4, 0x1
+ beq _08014CC4
+ b _08014EF2
+_08014C82:
+ bl sub_800E0E8
+ movs r0, 0
+ movs r1, 0
+ bl CreateWirelessStatusIndicatorSprite
+ ldr r1, [r5]
+ ldrb r0, [r5, 0x13]
+ lsls r0, 5
+ adds r1, r0
+ strb r4, [r1, 0x1B]
+ ldrb r0, [r5, 0x12]
+ bl sub_81AE70C
+ movs r0, 0x5
+ strb r0, [r5, 0x19]
+ ldrb r1, [r5, 0x13]
+ lsls r1, 5
+ ldr r0, [r5]
+ adds r0, r1
+ adds r0, 0x2
+ bl sub_8015658
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldrb r0, [r5, 0x13]
+ lsls r0, 5
+ ldr r2, [r5]
+ adds r2, r0
+ adds r2, 0x10
+ movs r0, 0x5
+ b _08014CE8
+_08014CC4:
+ movs r0, 0x6
+ strb r0, [r5, 0x19]
+ ldrb r1, [r5, 0x13]
+ lsls r1, 5
+ ldr r0, [r5]
+ adds r0, r1
+ adds r0, 0x2
+ bl sub_8015658
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldrb r0, [r5, 0x13]
+ lsls r0, 5
+ ldr r2, [r5]
+ adds r2, r0
+ adds r2, 0x10
+ movs r0, 0x6
+_08014CE8:
+ bl sub_8010688
+ movs r0, 0x8
+ strb r0, [r5, 0xC]
+ b _08014EF2
+_08014CF2:
+ ldrb r1, [r5, 0x13]
+ lsls r1, 5
+ ldr r0, [r5]
+ adds r0, r1
+ adds r0, 0x2
+ bl sub_8015658
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r2, [r5, 0x13]
+ lsls r2, 5
+ ldr r1, [r5]
+ adds r1, r2
+ adds r1, 0x10
+ bl sub_8010714
+ adds r4, r0, 0
+ cmp r4, 0x1
+ bne _08014DAA
+ ldrb r0, [r5, 0x19]
+ cmp r0, 0x5
+ bne _08014D64
+ ldr r1, [r5]
+ ldrb r0, [r5, 0x13]
+ lsls r0, 5
+ adds r1, r0
+ movs r0, 0
+ strb r0, [r1, 0x1B]
+ ldrb r0, [r5, 0x12]
+ bl sub_81AE70C
+ ldrb r0, [r5, 0x13]
+ adds r0, 0x1
+ strb r0, [r5, 0x13]
+ ldr r0, =gStringVar1
+ ldrb r2, [r5, 0x13]
+ lsls r2, 5
+ subs r2, 0x20
+ ldr r1, [r5]
+ adds r1, r2
+ bl sub_8018404
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_082EDC9C
+ bl StringExpandPlaceholders
+ movs r0, 0x9
+ strb r0, [r5, 0xC]
+ bl sub_800EF38
+ b _08014DA4
+ .pool
+_08014D64:
+ ldrb r1, [r5, 0x13]
+ lsls r1, 5
+ ldr r0, [r5]
+ adds r0, r1
+ adds r4, r0, 0
+ adds r4, 0x10
+ adds r0, 0x2
+ bl sub_8015658
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8011DC0
+ ldr r1, [r5]
+ ldrb r0, [r5, 0x13]
+ lsls r0, 5
+ adds r1, r0
+ ldrb r2, [r1, 0x1A]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1A]
+ ldr r0, [r5]
+ bl sub_8013398
+ ldrb r0, [r5, 0x12]
+ bl sub_81AE70C
+ movs r0, 0x2
+ strb r0, [r5, 0xC]
+_08014DA4:
+ movs r0, 0
+ strb r0, [r5, 0x19]
+ b _08014EF2
+_08014DAA:
+ cmp r4, 0x2
+ beq _08014DB0
+ b _08014EF2
+_08014DB0:
+ movs r0, 0
+ movs r1, 0
+ bl sub_8011A64
+ strb r4, [r5, 0xC]
+ b _08014EF2
+_08014DBC:
+ ldr r0, =gStringVar4
+ bl sub_8018884
+ movs r0, 0xA
+ strb r0, [r5, 0xC]
+ b _08014EF2
+ .pool
+_08014DCC:
+ ldrb r0, [r5, 0xE]
+ adds r0, 0x1
+ strb r0, [r5, 0xE]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x78
+ bhi _08014DDC
+ b _08014EF2
+_08014DDC:
+ movs r0, 0xB
+ strb r0, [r5, 0xC]
+ b _08014EF2
+_08014DE2:
+ adds r0, r5, 0
+ movs r1, 0x5
+ movs r2, 0x6
+ bl sub_801320C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08014DF4
+ b _08014EF2
+_08014DF4:
+ movs r0, 0xC
+ strb r0, [r5, 0xC]
+ b _08014EF2
+_08014DFA:
+ bl sub_800EF1C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08014E10
+ movs r0, 0
+ bl sub_800EF58
+ movs r0, 0xF
+ strb r0, [r5, 0xC]
+ b _08014EF2
+_08014E10:
+ movs r0, 0x6
+ strb r0, [r5, 0xC]
+ b _08014EF2
+_08014E16:
+ bl sub_800E084
+ bl sub_800EDD4
+ ldrb r0, [r5, 0x12]
+ movs r1, 0
+ movs r2, 0
+ bl sub_81AE6C8
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldrb r0, [r5, 0xF]
+ bl RemoveWindow
+ ldrb r0, [r5, 0x17]
+ bl DestroyTask
+ ldr r0, [r5, 0x8]
+ bl Free
+ ldr r0, [r5]
+ bl Free
+ ldr r0, [r5, 0x4]
+ bl Free
+ b _08014EDA
+_08014E4E:
+ adds r0, r5, 0
+ adds r0, 0xD
+ ldr r1, =gText_PleaseStartOver
+ bl mevent_0814257C
+ cmp r0, 0
+ beq _08014EF2
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0x5
+ strh r0, [r1]
+ b _08014EF2
+ .pool
+_08014E74:
+ bl sub_8011A74
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08014E8C
+ bl sub_8011A74
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08014E92
+_08014E8C:
+ movs r0, 0xD
+ strb r0, [r5, 0xC]
+ b _08014EF2
+_08014E92:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08014EF2
+ movs r0, 0x1
+ bl sub_8011068
+ b _08014EDA
+ .pool
+_08014EA8:
+ ldrb r0, [r5, 0x12]
+ movs r1, 0
+ movs r2, 0
+ bl sub_81AE6C8
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldrb r0, [r5, 0xF]
+ bl RemoveWindow
+ ldrb r0, [r5, 0x17]
+ bl DestroyTask
+ ldr r0, [r5, 0x8]
+ bl Free
+ ldr r0, [r5]
+ bl Free
+ ldr r0, [r5, 0x4]
+ bl Free
+ bl sub_800ADF8
+_08014EDA:
+ ldrb r0, [r5, 0xC]
+ adds r0, 0x1
+ strb r0, [r5, 0xC]
+ b _08014EF2
+_08014EE2:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08014EF2
+ adds r0, r4, 0
+ bl DestroyTask
+_08014EF2:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8014A40
+
+ thumb_func_start sub_8014EFC
+sub_8014EFC: @ 8014EFC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =sub_8014F48
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gUnknown_02022C30
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r1, r0
+ str r1, [r2]
+ ldr r0, =gUnknown_03000DA4
+ str r1, [r0]
+ movs r2, 0
+ strb r2, [r1, 0x8]
+ strb r2, [r1, 0x9]
+ subs r4, 0x15
+ strb r4, [r1, 0x12]
+ ldr r0, =gSpecialVar_Result
+ strh r2, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8014EFC
+
+ thumb_func_start sub_8014F48
+sub_8014F48: @ 8014F48
+ push {r4-r7,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, =gUnknown_02022C30
+ ldr r7, [r0]
+ ldrb r0, [r7, 0x8]
+ cmp r0, 0xC
+ bls _08014F5C
+ b _080152A0
+_08014F5C:
+ lsls r0, 2
+ ldr r1, =_08014F70
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08014F70:
+ .4byte _08014FA4
+ .4byte _08014FD8
+ .4byte _08014FE8
+ .4byte _080150B8
+ .4byte _08015180
+ .4byte _080151A4
+ .4byte _08015204
+ .4byte _08015260
+ .4byte _08015204
+ .4byte _0801523A
+ .4byte _08015204
+ .4byte _08015284
+ .4byte _08015290
+_08014FA4:
+ ldrb r0, [r7, 0x12]
+ adds r0, 0x15
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ movs r2, 0
+ bl sub_8010F84
+ bl sub_800B488
+ bl OpenLink
+ bl sub_8011C5C
+ movs r0, 0x70
+ bl AllocZeroed
+ str r0, [r7, 0x4]
+ movs r0, 0x80
+ lsls r0, 2
+ bl AllocZeroed
+ str r0, [r7]
+ movs r0, 0x1
+ strb r0, [r7, 0x8]
+ b _080152A0
+_08014FD8:
+ ldr r0, =gUnknown_082EF7F8
+ bl sub_8018884
+ movs r0, 0x2
+ strb r0, [r7, 0x8]
+ b _080152A0
+ .pool
+_08014FE8:
+ ldr r0, [r7, 0x4]
+ movs r1, 0x4
+ bl sub_80175EC
+ ldr r0, [r7]
+ movs r1, 0x10
+ bl sub_8017580
+ ldr r0, [r7, 0x4]
+ ldrb r1, [r7, 0x12]
+ adds r1, 0x7
+ bl sub_8016FC0
+ movs r6, 0
+ strb r0, [r7, 0x11]
+ ldr r0, =gUnknown_082F0174
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ bl sub_8019930
+ lsls r0, 16
+ ldr r2, =0x0000ffff
+ ldr r1, [sp, 0x4]
+ ands r1, r2
+ orrs r1, r0
+ ldr r5, =0xffff00ff
+ ands r1, r5
+ movs r4, 0xC0
+ lsls r4, 4
+ orrs r1, r4
+ str r1, [sp, 0x4]
+ mov r0, sp
+ bl AddWindow
+ strb r0, [r7, 0xB]
+ ldr r0, =gUnknown_082F017C
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ add r0, sp, 0x8
+ ldr r1, [r0, 0x4]
+ ands r1, r5
+ orrs r1, r4
+ str r1, [r0, 0x4]
+ bl AddWindow
+ strb r0, [r7, 0xD]
+ ldrb r0, [r7, 0xB]
+ bl sub_8018784
+ ldr r0, =gMultiuseListMenuTemplate
+ adds r2, r0, 0
+ ldr r1, =gUnknown_082F0204
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldrb r1, [r7, 0xB]
+ strb r1, [r0, 0x10]
+ movs r1, 0
+ movs r2, 0
+ bl ListMenuInit
+ strb r0, [r7, 0xE]
+ ldrb r0, [r7, 0xD]
+ bl sub_8018784
+ ldrb r0, [r7, 0xD]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldrb r0, [r7, 0xD]
+ bl PutWindowTilemap
+ ldrb r0, [r7, 0xD]
+ bl sub_80125BC
+ ldrb r0, [r7, 0xD]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ strb r6, [r7, 0xF]
+ movs r0, 0x3
+ strb r0, [r7, 0x8]
+ b _080152A0
+ .pool
+_080150B8:
+ bl sub_8013E44
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080150D6
+ cmp r2, 0x1
+ bne _080150CE
+ movs r0, 0x2
+ bl PlaySE
+_080150CE:
+ ldrb r0, [r7, 0xE]
+ bl sub_81AE70C
+ b _080152A0
+_080150D6:
+ ldrb r0, [r7, 0xE]
+ bl ListMenuHandleInputGetItemId
+ adds r2, r0, 0
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08015168
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ beq _08015168
+ ldr r0, [r7]
+ lsls r1, r2, 5
+ adds r0, r1
+ ldrb r1, [r0, 0xA]
+ ldrb r0, [r0, 0x1A]
+ lsls r0, 30
+ lsrs r0, 30
+ cmp r0, 0x1
+ bne _08015160
+ lsrs r0, r1, 7
+ cmp r0, 0
+ bne _08015160
+ strb r2, [r7, 0xF]
+ bl sub_800E0E8
+ movs r0, 0
+ movs r1, 0
+ bl CreateWirelessStatusIndicatorSprite
+ ldrb r0, [r7, 0xE]
+ bl sub_81AE70C
+ ldr r0, =gStringVar1
+ ldrb r2, [r7, 0xF]
+ lsls r2, 5
+ ldr r1, [r7]
+ adds r1, r2
+ bl sub_8018404
+ ldrb r1, [r7, 0xF]
+ lsls r1, 5
+ ldr r0, [r7]
+ adds r0, r1
+ adds r4, r0, 0
+ adds r4, 0x10
+ adds r0, 0x2
+ bl sub_8015658
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8011FC8
+ movs r0, 0x6E
+ bl PlaySE
+ movs r0, 0x4
+ strb r0, [r7, 0x8]
+ b _080152A0
+ .pool
+_08015160:
+ movs r0, 0x7
+ bl PlaySE
+ b _080152A0
+_08015168:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08015176
+ b _080152A0
+_08015176:
+ movs r0, 0x6
+ strb r0, [r7, 0x8]
+ b _080152A0
+ .pool
+_08015180:
+ ldr r0, =gUnknown_082EFC3C
+ bl sub_8018884
+ ldr r0, =gStringVar1
+ ldrb r2, [r7, 0xF]
+ lsls r2, 5
+ ldr r1, [r7]
+ adds r1, r2
+ bl sub_8018404
+ movs r0, 0x5
+ strb r0, [r7, 0x8]
+ b _080152A0
+ .pool
+_080151A4:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080151C2
+ ldr r2, =gUnknown_02022C2C
+ ldr r1, [r7]
+ ldrb r0, [r7, 0xF]
+ lsls r0, 5
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ lsls r0, 25
+ lsrs r0, 25
+ strb r0, [r2]
+ movs r0, 0xA
+ strb r0, [r7, 0x8]
+_080151C2:
+ bl sub_8011A74
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ beq _080151EE
+ cmp r0, 0x5
+ bgt _080151E4
+ cmp r0, 0x2
+ bgt _080152A0
+ cmp r0, 0x1
+ blt _080152A0
+ b _080151E8
+ .pool
+_080151E4:
+ cmp r0, 0x6
+ bne _080152A0
+_080151E8:
+ movs r0, 0x8
+ strb r0, [r7, 0x8]
+ b _080152A0
+_080151EE:
+ ldr r0, =gUnknown_082EDDF4
+ bl sub_8018884
+ movs r0, 0
+ movs r1, 0
+ bl sub_8011A64
+ b _080152A0
+ .pool
+_08015204:
+ ldrb r0, [r7, 0xE]
+ movs r1, 0
+ movs r2, 0
+ bl sub_81AE6C8
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldrb r0, [r7, 0xD]
+ bl RemoveWindow
+ ldrb r0, [r7, 0xB]
+ bl RemoveWindow
+ ldrb r0, [r7, 0x11]
+ bl DestroyTask
+ ldr r0, [r7]
+ bl Free
+ ldr r0, [r7, 0x4]
+ bl Free
+ ldrb r0, [r7, 0x8]
+ adds r0, 0x1
+ strb r0, [r7, 0x8]
+ b _080152A0
+_0801523A:
+ adds r5, r7, 0
+ adds r5, 0x9
+ ldr r4, =gUnknown_082EDF80
+ bl sub_8011A74
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl mevent_0814257C
+ cmp r0, 0
+ beq _080152A0
+ bl sub_800E084
+ b _0801526A
+ .pool
+_08015260:
+ bl sub_800E084
+ ldr r0, =gText_PleaseStartOver
+ bl sub_8018884
+_0801526A:
+ adds r0, r6, 0
+ bl DestroyTask
+ bl sub_800EDD4
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0x5
+ strh r0, [r1]
+ b _080152A0
+ .pool
+_08015284:
+ ldrb r0, [r7, 0x8]
+ adds r0, 0x1
+ strb r0, [r7, 0x8]
+ bl sub_800ADF8
+ b _080152A0
+_08015290:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _080152A0
+ adds r0, r6, 0
+ bl DestroyTask
+_080152A0:
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8014F48
+
+ thumb_func_start sub_80152A8
+sub_80152A8: @ 80152A8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =task00_081182DC
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gUnknown_02022C30
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r1, r0
+ str r1, [r2]
+ ldr r0, =gUnknown_03000DA4
+ str r1, [r0]
+ movs r2, 0
+ strb r2, [r1, 0x8]
+ strb r2, [r1, 0x9]
+ subs r4, 0x15
+ strb r4, [r1, 0x12]
+ ldr r0, =gSpecialVar_Result
+ strh r2, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80152A8
+
+ thumb_func_start task00_081182DC
+task00_081182DC: @ 80152F4
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gUnknown_02022C30
+ ldr r5, [r0]
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0xE
+ bls _08015308
+ b _08015604
+_08015308:
+ lsls r0, 2
+ ldr r1, =_0801531C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801531C:
+ .4byte _08015358
+ .4byte _08015386
+ .4byte _08015398
+ .4byte _08015420
+ .4byte _080154E0
+ .4byte _08015504
+ .4byte _08015564
+ .4byte _080155A8
+ .4byte _08015564
+ .4byte _0801559A
+ .4byte _08015564
+ .4byte _080155B4
+ .4byte _08015564
+ .4byte _080155E8
+ .4byte _080155F4
+_08015358:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_8010F84
+ bl sub_800B488
+ bl OpenLink
+ bl sub_8011C5C
+ movs r0, 0x70
+ bl AllocZeroed
+ str r0, [r5, 0x4]
+ movs r0, 0x80
+ lsls r0, 2
+ bl AllocZeroed
+ str r0, [r5]
+ movs r0, 0x1
+ strb r0, [r5, 0x8]
+ b _08015604
+_08015386:
+ ldr r0, =gUnknown_082EFBC8
+ bl sub_8018884
+ movs r0, 0x2
+ strb r0, [r5, 0x8]
+ b _08015604
+ .pool
+_08015398:
+ ldr r0, [r5, 0x4]
+ movs r1, 0x4
+ bl sub_80175EC
+ ldr r0, [r5]
+ movs r1, 0x10
+ bl sub_8017580
+ ldr r0, [r5, 0x4]
+ ldrb r1, [r5, 0x12]
+ adds r1, 0x7
+ bl sub_8016FF0
+ strb r0, [r5, 0x11]
+ ldrb r0, [r5, 0x13]
+ cmp r0, 0
+ beq _08015404
+ ldr r0, =gUnknown_082F0174
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ bl sub_8019930
+ lsls r0, 16
+ ldr r2, =0x0000ffff
+ ldr r1, [sp, 0x4]
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp, 0x4]
+ mov r0, sp
+ bl AddWindow
+ strb r0, [r5, 0xB]
+ ldrb r0, [r5, 0xB]
+ bl sub_8018784
+ ldr r0, =gMultiuseListMenuTemplate
+ adds r2, r0, 0
+ ldr r1, =gUnknown_082F0204
+ ldm r1!, {r3,r4,r6}
+ stm r2!, {r3,r4,r6}
+ ldm r1!, {r3,r4,r6}
+ stm r2!, {r3,r4,r6}
+ ldrb r1, [r5, 0xB]
+ strb r1, [r0, 0x10]
+ movs r1, 0
+ movs r2, 0
+ bl ListMenuInit
+ strb r0, [r5, 0xE]
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+_08015404:
+ movs r0, 0
+ strb r0, [r5, 0xF]
+ movs r0, 0x3
+ strb r0, [r5, 0x8]
+ b _08015604
+ .pool
+_08015420:
+ bl sub_8013E44
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08015446
+ cmp r0, 0x1
+ bne _08015436
+ movs r0, 0x2
+ bl PlaySE
+_08015436:
+ ldrb r0, [r5, 0x13]
+ cmp r0, 0
+ bne _0801543E
+ b _08015604
+_0801543E:
+ ldrb r0, [r5, 0xE]
+ bl sub_81AE70C
+ b _08015604
+_08015446:
+ ldrb r0, [r5, 0x13]
+ cmp r0, 0
+ beq _08015452
+ ldrb r0, [r5, 0xE]
+ bl ListMenuHandleInputGetItemId
+_08015452:
+ ldrb r0, [r5, 0x14]
+ cmp r0, 0x78
+ bls _080154C0
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x1A]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _080154D4
+ ldrb r1, [r2, 0xA]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080154D4
+ ldrb r1, [r5, 0x12]
+ adds r1, 0x7
+ adds r0, r2, 0
+ bl sub_8016F1C
+ cmp r0, 0
+ beq _080154B4
+ strb r4, [r5, 0xF]
+ strb r4, [r5, 0x14]
+ bl sub_800E0E8
+ movs r0, 0
+ movs r1, 0
+ bl CreateWirelessStatusIndicatorSprite
+ ldr r0, [r5]
+ adds r4, r0, 0
+ adds r4, 0x10
+ adds r0, 0x2
+ bl sub_8015658
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8011FC8
+ movs r0, 0x6E
+ bl PlaySE
+ movs r0, 0x4
+ strb r0, [r5, 0x8]
+ b _080154D4
+_080154B4:
+ movs r0, 0x16
+ bl PlaySE
+ movs r0, 0xA
+ strb r0, [r5, 0x8]
+ b _080154D4
+_080154C0:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080154D4
+ movs r1, 0
+ movs r0, 0x6
+ strb r0, [r5, 0x8]
+ strb r1, [r5, 0x14]
+_080154D4:
+ ldrb r0, [r5, 0x14]
+ adds r0, 0x1
+ strb r0, [r5, 0x14]
+ b _08015604
+ .pool
+_080154E0:
+ ldr r0, =gUnknown_082EFC90
+ bl sub_8018884
+ ldr r0, =gStringVar1
+ ldrb r2, [r5, 0xF]
+ lsls r2, 5
+ ldr r1, [r5]
+ adds r1, r2
+ bl sub_8018404
+ movs r0, 0x5
+ strb r0, [r5, 0x8]
+ b _08015604
+ .pool
+_08015504:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08015522
+ ldr r2, =gUnknown_02022C2C
+ ldr r1, [r5]
+ ldrb r0, [r5, 0xF]
+ lsls r0, 5
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ lsls r0, 25
+ lsrs r0, 25
+ strb r0, [r2]
+ movs r0, 0xC
+ strb r0, [r5, 0x8]
+_08015522:
+ bl sub_8011A74
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ beq _0801554E
+ cmp r0, 0x5
+ bgt _08015544
+ cmp r0, 0x2
+ bgt _08015604
+ cmp r0, 0x1
+ blt _08015604
+ b _08015548
+ .pool
+_08015544:
+ cmp r0, 0x6
+ bne _08015604
+_08015548:
+ movs r0, 0x8
+ strb r0, [r5, 0x8]
+ b _08015604
+_0801554E:
+ ldr r0, =gUnknown_082EDEC4
+ bl sub_8018884
+ movs r0, 0
+ movs r1, 0
+ bl sub_8011A64
+ b _08015604
+ .pool
+_08015564:
+ ldrb r0, [r5, 0x13]
+ cmp r0, 0
+ beq _08015580
+ ldrb r0, [r5, 0xE]
+ movs r1, 0
+ movs r2, 0
+ bl sub_81AE6C8
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldrb r0, [r5, 0xB]
+ bl RemoveWindow
+_08015580:
+ ldrb r0, [r5, 0x11]
+ bl DestroyTask
+ ldr r0, [r5]
+ bl Free
+ ldr r0, [r5, 0x4]
+ bl Free
+ ldrb r0, [r5, 0x8]
+ adds r0, 0x1
+ strb r0, [r5, 0x8]
+ b _08015604
+_0801559A:
+ adds r0, r5, 0
+ adds r0, 0x9
+ ldr r1, =gUnknown_082EDF04
+ b _080155C2
+ .pool
+_080155A8:
+ adds r0, r5, 0
+ adds r0, 0x9
+ ldr r1, =gText_WirelessSearchCanceled
+ b _080155C2
+ .pool
+_080155B4:
+ adds r0, r5, 0
+ adds r0, 0x9
+ ldr r2, =gUnknown_082EFD58
+ ldrb r1, [r5, 0x12]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+_080155C2:
+ bl mevent_0814257C
+ cmp r0, 0
+ beq _08015604
+ bl sub_800E084
+ adds r0, r4, 0
+ bl DestroyTask
+ bl sub_800EDD4
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0x5
+ strh r0, [r1]
+ b _08015604
+ .pool
+_080155E8:
+ ldrb r0, [r5, 0x8]
+ adds r0, 0x1
+ strb r0, [r5, 0x8]
+ bl sub_800ADF8
+ b _08015604
+_080155F4:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08015604
+ adds r0, r4, 0
+ bl DestroyTask
+_08015604:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end task00_081182DC
+
+ thumb_func_start UnionRoomSpecial
+UnionRoomSpecial: @ 801560C
+ push {r4,lr}
+ bl sub_8010F60
+ ldr r0, =sub_80156E0
+ movs r1, 0xA
+ bl CreateTask
+ ldr r4, =gUnknown_02022C30
+ movs r0, 0x9B
+ lsls r0, 2
+ bl AllocZeroed
+ str r0, [r4]
+ ldr r1, =gUnknown_03000DA8
+ str r0, [r1]
+ movs r1, 0
+ strb r1, [r0, 0x14]
+ strb r1, [r0, 0x16]
+ strh r1, [r0, 0x10]
+ strh r1, [r0, 0x12]
+ ldr r0, =gSpecialVar_Result
+ strh r1, [r0]
+ movs r0, 0xD0
+ movs r1, 0x1
+ bl sub_819A2BC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end UnionRoomSpecial
+
+ thumb_func_start sub_8015658
+sub_8015658: @ 8015658
+ ldrb r1, [r0, 0x1]
+ lsls r1, 8
+ ldrb r0, [r0]
+ orrs r0, r1
+ bx lr
+ thumb_func_end sub_8015658
+
+ thumb_func_start sub_8015664
+sub_8015664: @ 8015664
+ push {lr}
+ adds r3, r1, 0
+ ldr r1, =gUnknown_02022C30
+ ldr r2, [r1]
+ movs r1, 0x8
+ strb r1, [r2, 0x14]
+ strb r0, [r2, 0x15]
+ ldr r0, =gStringVar4
+ cmp r3, r0
+ beq _0801567E
+ adds r1, r3, 0
+ bl StringExpandPlaceholders
+_0801567E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8015664
+
+ thumb_func_start sub_801568C
+sub_801568C: @ 801568C
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, =gUnknown_02022C30
+ ldr r1, [r0]
+ movs r0, 0x1A
+ strb r0, [r1, 0x14]
+ ldr r0, =gStringVar4
+ cmp r2, r0
+ beq _080156A4
+ adds r1, r2, 0
+ bl StringExpandPlaceholders
+_080156A4:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801568C
+
+ thumb_func_start sub_80156B0
+sub_80156B0: @ 80156B0
+ push {lr}
+ ldr r3, =0x0201ff00
+ ldr r1, [r0]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r3, 0
+ bl memcpy
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80156B0
+
+ thumb_func_start sub_80156C8
+sub_80156C8: @ 80156C8
+ push {lr}
+ ldr r0, [r0]
+ ldr r1, =0x0201ff00
+ movs r2, 0x80
+ lsls r2, 1
+ bl memcpy
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80156C8
+
+ thumb_func_start sub_80156E0
+sub_80156E0: @ 80156E0
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r5, 0
+ ldr r0, =gUnknown_02022C30
+ ldr r6, [r0]
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r7, r0, r1
+ ldrb r0, [r6, 0x14]
+ cmp r0, 0x38
+ bls _08015702
+ bl _08016878
+_08015702:
+ lsls r0, 2
+ ldr r1, =_08015718
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08015718:
+ .4byte _080157FC
+ .4byte _08015854
+ .4byte _08015878
+ .4byte _080158C8
+ .4byte _080159A6
+ .4byte _08015E5C
+ .4byte _08015C54
+ .4byte _08015E5C
+ .4byte _08016864
+ .4byte _080161C8
+ .4byte _080162D4
+ .4byte _080160AC
+ .4byte _080160C6
+ .4byte _08016324
+ .4byte _08016348
+ .4byte _08016350
+ .4byte _08016360
+ .4byte _0801638E
+ .4byte _080163A2
+ .4byte _08015F32
+ .4byte _08015FB8
+ .4byte _08015FD6
+ .4byte _0801604A
+ .4byte _08015ADA
+ .4byte _08015B00
+ .4byte _08015B78
+ .4byte _08016838
+ .4byte _08015D4C
+ .4byte _08015D34
+ .4byte _08015DD0
+ .4byte _08015C2A
+ .4byte _08015DA6
+ .4byte _08015D9C
+ .4byte _08016158
+ .4byte _08016178
+ .4byte _080161B8
+ .4byte _080162DC
+ .4byte _08016318
+ .4byte _08015BF4
+ .4byte _08016104
+ .4byte _08015E94
+ .4byte _08015EC4
+ .4byte _080163CC
+ .4byte _0801645C
+ .4byte _080165A8
+ .4byte _08016610
+ .4byte _0801662C
+ .4byte _08016478
+ .4byte _08016634
+ .4byte _08016738
+ .4byte _0801676C
+ .4byte _080167F4
+ .4byte _0801652C
+ .4byte _080164E0
+ .4byte _080164F4
+ .4byte _0801658C
+ .4byte _080165DC
+_080157FC:
+ movs r0, 0x70
+ bl AllocZeroed
+ str r0, [r6, 0x4]
+ movs r0, 0x70
+ bl AllocZeroed
+ str r0, [r6, 0xC]
+ movs r0, 0x80
+ lsls r0, 1
+ bl AllocZeroed
+ str r0, [r6]
+ movs r0, 0x20
+ bl AllocZeroed
+ str r0, [r6, 0x8]
+ ldr r0, [r6]
+ movs r1, 0x8
+ bl sub_8017580
+ ldr r1, =gUnknown_02022C2C
+ movs r0, 0x40
+ strb r0, [r1]
+ ldr r0, [r6, 0xC]
+ ldr r1, [r6, 0x4]
+ movs r2, 0x9
+ bl sub_8016DF0
+ adds r1, r6, 0
+ adds r1, 0x20
+ strb r0, [r1]
+ adds r0, r6, 0
+ adds r0, 0xA0
+ bl sub_8019BA8
+ bl sub_8019F2C
+ movs r0, 0x1
+ bl _08016876
+ .pool
+_08015854:
+ adds r0, r6, 0
+ adds r0, 0x21
+ movs r2, 0
+ ldrsh r1, [r7, r2]
+ bl sub_8019E70
+ ldrh r0, [r7]
+ adds r0, 0x1
+ strh r0, [r7]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ beq _08015872
+ bl _08016878
+_08015872:
+ movs r0, 0x2
+ bl _08016876
+_08015878:
+ movs r0, 0x40
+ movs r1, 0
+ movs r2, 0
+ bl sub_8010F84
+ ldr r2, =gUnknown_02022C40
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r2, 0xA]
+ ldrh r2, [r2, 0xC]
+ bl sub_8010FCC
+ bl sub_800B488
+ bl OpenLink
+ bl sub_8011C84
+ ldr r0, [r6, 0x8]
+ movs r1, 0x1
+ bl sub_8017580
+ ldr r0, [r6, 0x4]
+ movs r1, 0x4
+ bl sub_80175EC
+ ldr r0, [r6, 0xC]
+ movs r1, 0x4
+ bl sub_80175EC
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0
+ strh r0, [r1]
+ movs r0, 0x3
+ bl _08016876
+ .pool
+_080158C8:
+ bl sub_81B1360
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ beq _080158E0
+ bl sub_81B1360
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bne _080159A0
+_080158E0:
+ ldr r4, =gUnknown_02022C40
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080159A0
+ bl GetCursorSelectionMonId
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _08015900
+ cmp r0, 0x2
+ beq _08015950
+ b _0801598E
+ .pool
+_08015900:
+ movs r0, 0x54
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8011090
+ cmp r5, 0x5
+ bls _0801592C
+ adds r0, r4, 0
+ bl sub_801807C
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_8010FCC
+ ldr r0, =gUnknown_082EF4FC
+ bl sub_801568C
+ b _0801598E
+ .pool
+_0801592C:
+ bl GetCursorSelectionMonId
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ bl sub_80180A0
+ cmp r0, 0
+ bne _0801594C
+ ldr r1, =gUnknown_082EF47C
+ movs r0, 0x34
+ bl sub_8015664
+ b _0801598E
+ .pool
+_0801594C:
+ movs r0, 0x37
+ b _0801598C
+_08015950:
+ adds r0, r6, 0
+ bl sub_80156C8
+ ldrb r0, [r4, 0x8]
+ strh r0, [r7, 0x2]
+ cmp r5, 0x5
+ bls _0801596C
+ ldr r0, =gUnknown_082EF544
+ bl sub_801568C
+ b _0801598E
+ .pool
+_0801596C:
+ movs r0, 0x54
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8011090
+ ldr r1, =gUnknown_02022C2C
+ movs r0, 0x44
+ strb r0, [r1]
+ bl GetCursorSelectionMonId
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ bl sub_80180E8
+ movs r0, 0x33
+_0801598C:
+ strb r0, [r6, 0x14]
+_0801598E:
+ ldr r1, =gUnknown_02022C40
+ movs r0, 0
+ strh r0, [r1]
+ bl _08016878
+ .pool
+_080159A0:
+ movs r0, 0x4
+ bl _08016876
+_080159A6:
+ ldr r4, =gSpecialVar_Result
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _08015A0A
+ cmp r0, 0x9
+ bne _080159E0
+ movs r0, 0x54
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8011090
+ movs r0, 0x2
+ bl PlaySE
+ ldr r0, =gStringVar1
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ bl StringCopy
+ movs r1, 0
+ movs r0, 0x2A
+ b _08015A02
+ .pool
+_080159E0:
+ cmp r0, 0xB
+ bne _080159F4
+ movs r0, 0x54
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8011090
+ movs r1, 0
+ movs r0, 0x17
+ b _08015A02
+_080159F4:
+ movs r0, 0
+ strh r0, [r7]
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r7, 0x2]
+ movs r1, 0
+ movs r0, 0x18
+_08015A02:
+ strb r0, [r6, 0x14]
+ strh r1, [r4]
+ bl _08016878
+_08015A0A:
+ bl ScriptContext2_IsEnabled
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08015A1A
+ bl _08016878
+_08015A1A:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08015A80
+ ldr r0, [r6]
+ adds r2, r7, 0x2
+ adds r3, r6, 0
+ adds r3, 0x21
+ adds r1, r7, 0
+ bl sub_801A2A8
+ cmp r0, 0
+ beq _08015A4C
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80181CC
+ movs r0, 0x18
+ bl _08016876
+ .pool
+_08015A4C:
+ bl sub_8017940
+ cmp r0, 0
+ beq _08015A80
+ movs r0, 0x54
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8011090
+ movs r0, 0x2
+ bl PlaySE
+ bl sub_80181CC
+ ldr r0, =gStringVar1
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ bl StringCopy
+ movs r0, 0x2D
+ bl _08016876
+ .pool
+_08015A80:
+ bl sub_8016B00
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _08015AA2
+ cmp r0, 0x2
+ bgt _08015A96
+ cmp r0, 0x1
+ beq _08015A9C
+ b _08015AD0
+_08015A96:
+ cmp r0, 0x4
+ beq _08015AAA
+ b _08015AD0
+_08015A9C:
+ movs r0, 0x2
+ bl PlaySE
+_08015AA2:
+ adds r0, r6, 0
+ bl sub_801A274
+ b _08015AD0
+_08015AAA:
+ movs r0, 0xB
+ strb r0, [r6, 0x14]
+ bl sub_80181CC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_8010FCC
+ adds r0, r6, 0
+ bl sub_80181DC
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x53
+ movs r2, 0
+ bl sub_8011090
+_08015AD0:
+ adds r0, r6, 0
+ bl sub_801A284
+ bl _08016878
+_08015ADA:
+ ldr r0, =sub_809FA34
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ beq _08015AEA
+ bl _08016878
+_08015AEA:
+ movs r0, 0x40
+ movs r1, 0
+ movs r2, 0
+ bl sub_8011090
+ movs r0, 0x4
+ bl _08016876
+ .pool
+_08015B00:
+ bl sub_801704C
+ movs r3, 0x2
+ ldrsh r0, [r7, r3]
+ ldr r1, [r6]
+ bl sub_8017CF8
+ adds r4, r0, 0
+ movs r0, 0x54
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8011090
+ ldr r0, [r6]
+ ldrb r1, [r7]
+ ldrb r2, [r7, 0x2]
+ adds r3, r4, 0
+ bl sub_80179D4
+ cmp r0, 0x1
+ beq _08015B44
+ cmp r0, 0x1
+ bgt _08015B36
+ cmp r0, 0
+ beq _08015B3E
+ bl _08016878
+_08015B36:
+ cmp r0, 0x2
+ beq _08015B68
+ bl _08016878
+_08015B3E:
+ movs r0, 0x1A
+ bl _08016876
+_08015B44:
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ lsls r0, 5
+ ldr r1, [r6]
+ adds r1, r0
+ adds r0, r1, 0
+ adds r0, 0x10
+ ldr r2, =gUnknown_02022C2C
+ ldrb r2, [r2]
+ bl sub_8012188
+ strh r5, [r6, 0x12]
+ movs r0, 0x19
+ bl _08016876
+ .pool
+_08015B68:
+ ldr r1, =gStringVar4
+ movs r0, 0x13
+ bl sub_8015664
+ bl _08016878
+ .pool
+_08015B78:
+ bl sub_801704C
+ bl sub_8011A74
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ blt _08015BBE
+ cmp r4, 0x2
+ ble _08015B9A
+ cmp r4, 0x4
+ bne _08015BBE
+ movs r0, 0x1
+ bl sub_801818C
+ strb r4, [r6, 0x14]
+ b _08015BBE
+_08015B9A:
+ bl sub_8011B90
+ cmp r0, 0x1
+ bne _08015BB0
+ ldr r0, =gUnknown_082EE6C8
+ bl sub_801568C
+ b _08015BB8
+ .pool
+_08015BB0:
+ ldr r1, =gUnknown_082EE6C8
+ movs r0, 0x1E
+ bl sub_8015664
+_08015BB8:
+ ldr r1, =gUnknown_02022C2C
+ movs r0, 0x40
+ strb r0, [r1]
+_08015BBE:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08015BCA
+ bl _08016878
+_08015BCA:
+ ldr r0, =gBlockSendBuffer
+ movs r1, 0x1
+ bl sub_80143E4
+ ldr r0, =sub_80140E0
+ movs r1, 0x5
+ bl CreateTask
+ movs r0, 0x26
+ bl _08016876
+ .pool
+_08015BF4:
+ ldr r0, =sub_80140E0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ beq _08015C04
+ bl _08016878
+_08015C04:
+ ldr r0, =gUnknown_02022C2C
+ ldrb r0, [r0]
+ cmp r0, 0x44
+ bne _08015C24
+ ldr r1, =gUnknown_082EE004
+ movs r0, 0x1F
+ bl sub_8015664
+ bl _08016878
+ .pool
+_08015C24:
+ movs r0, 0x5
+ bl _08016876
+_08015C2A:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08015C36
+ bl _08016878
+_08015C36:
+ movs r0, 0
+ bl sub_801818C
+ movs r2, 0
+ ldrsh r0, [r7, r2]
+ movs r3, 0x2
+ ldrsh r1, [r7, r3]
+ ldr r2, [r6]
+ bl sub_801A3D0
+ movs r0, 0x2
+ bl _08016876
+ .pool
+_08015C54:
+ adds r0, r6, 0
+ adds r0, 0x16
+ adds r1, r6, 0
+ adds r1, 0x1B
+ adds r2, r6, 0
+ adds r2, 0x1C
+ ldr r3, =gUnknown_082F021C
+ ldr r4, =gUnknown_082F0244
+ str r4, [sp]
+ bl sub_8017178
+ adds r5, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ bne _08015C78
+ bl _08016878
+_08015C78:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08015C94
+ movs r0, 0x1C
+ bl _08016876
+ .pool
+_08015C94:
+ adds r1, r6, 0
+ adds r1, 0x98
+ movs r0, 0
+ strh r0, [r1]
+ movs r2, 0x2
+ ldrsh r0, [r7, r2]
+ ldr r1, [r6]
+ bl sub_8017CF8
+ movs r0, 0x2
+ negs r0, r0
+ cmp r5, r0
+ beq _08015CB2
+ cmp r5, 0x40
+ bne _08015CE4
+_08015CB2:
+ adds r0, r6, 0
+ adds r0, 0x4C
+ movs r1, 0x40
+ strh r1, [r0]
+ bl sub_800FE50
+ ldr r0, =gStringVar4
+ ldr r2, =gUnknown_082EEB80
+ ldr r1, =gLinkPlayers
+ ldrb r1, [r1, 0x13]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ movs r0, 0x20
+ bl _08016876
+ .pool
+_08015CE4:
+ ldr r0, =gUnknown_02022C2C
+ strb r5, [r0]
+ ldr r1, =gUnknown_02022C2D
+ lsrs r0, r5, 8
+ strb r0, [r1]
+ lsls r0, r5, 24
+ lsrs r0, 24
+ cmp r0, 0x41
+ bne _08015D18
+ bl sub_8018024
+ cmp r0, 0
+ bne _08015D18
+ ldr r1, =gUnknown_082EEBD0
+ movs r0, 0x5
+ bl sub_8015664
+ bl _08016878
+ .pool
+_08015D18:
+ ldr r0, =gUnknown_02022C2C
+ ldrb r0, [r0]
+ movs r1, 0x40
+ orrs r1, r0
+ adds r0, r6, 0
+ adds r0, 0x4C
+ strh r1, [r0]
+ bl sub_800FE50
+ movs r0, 0x1B
+ bl _08016876
+ .pool
+_08015D34:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_082EEB88
+ bl StringCopy
+ movs r0, 0x24
+ bl _08016876
+ .pool
+_08015D4C:
+ adds r0, r6, 0
+ bl sub_8017FD8
+ movs r3, 0x2
+ ldrsh r0, [r7, r3]
+ ldr r1, [r6]
+ bl sub_8017CF8
+ adds r4, r0, 0
+ adds r0, r6, 0
+ adds r0, 0x4C
+ ldrh r1, [r0]
+ movs r0, 0x3F
+ ands r0, r1
+ bl sub_8017984
+ adds r5, r0, 0
+ adds r0, r6, 0
+ adds r0, 0x16
+ ldr r3, =gUnknown_082EE82C
+ lsls r1, r5, 2
+ lsls r2, r4, 4
+ adds r1, r2
+ adds r1, r3
+ ldr r1, [r1]
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ bne _08015D8C
+ bl _08016878
+_08015D8C:
+ movs r0, 0
+ strh r0, [r7, 0x6]
+ movs r0, 0x1D
+ bl _08016876
+ .pool
+_08015D9C:
+ bl sub_800AC34
+ movs r0, 0x24
+ bl _08016876
+_08015DA6:
+ adds r0, r6, 0
+ adds r0, 0x4C
+ movs r1, 0x44
+ strh r1, [r0]
+ ldr r2, =gUnknown_02022C40
+ ldrh r1, [r2, 0xE]
+ adds r3, r6, 0
+ adds r3, 0x4E
+ strh r1, [r3]
+ ldrh r2, [r2, 0x10]
+ adds r1, r6, 0
+ adds r1, 0x50
+ strh r2, [r1]
+ bl sub_800FE50
+ movs r0, 0x1D
+ bl _08016876
+ .pool
+_08015DD0:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08015DF4
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_082EEB88
+ bl StringCopy
+ movs r0, 0x1C
+ bl _08016876
+ .pool
+_08015DF4:
+ adds r0, r6, 0
+ bl sub_8017FD8
+ adds r0, r6, 0
+ adds r0, 0x98
+ ldrh r0, [r0]
+ cmp r0, 0x51
+ bne _08015E2A
+ ldr r0, =gUnknown_02022C2C
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _08015E24
+ ldr r0, =gStringVar4
+ adds r1, r6, 0
+ movs r2, 0
+ bl sub_8018220
+ movs r0, 0x28
+ bl _08016876
+ .pool
+_08015E24:
+ movs r0, 0xD
+ bl _08016876
+_08015E2A:
+ cmp r0, 0x52
+ beq _08015E32
+ bl _08016878
+_08015E32:
+ movs r5, 0
+ movs r0, 0x20
+ strb r0, [r6, 0x14]
+ ldr r0, =gStringVar4
+ ldr r4, =gUnknown_02022C2C
+ ldrb r2, [r4]
+ movs r1, 0x40
+ orrs r1, r2
+ ldr r2, =gLinkPlayers
+ ldrb r2, [r2, 0x13]
+ bl sub_8017D9C
+ strb r5, [r4]
+ bl _08016878
+ .pool
+_08015E5C:
+ movs r0, 0x2
+ ldrsh r1, [r7, r0]
+ lsls r1, 5
+ ldr r0, [r6]
+ adds r0, r1
+ bl sub_80179AC
+ adds r5, r0, 0
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ ldr r1, [r6]
+ bl sub_8017CF8
+ adds r4, r0, 0
+ ldr r2, =gUnknown_082EE24C
+ lsls r0, r4, 2
+ lsls r1, r5, 3
+ adds r0, r1
+ adds r0, r2
+ ldr r1, [r0]
+ movs r0, 0x6
+ bl sub_8015664
+ bl _08016878
+ .pool
+_08015E94:
+ adds r0, r6, 0
+ adds r0, 0x16
+ ldr r1, =gStringVar4
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ bne _08015EA8
+ bl _08016878
+_08015EA8:
+ movs r4, 0
+ movs r0, 0x29
+ strb r0, [r6, 0x14]
+ bl sub_800ADF8
+ adds r0, r6, 0
+ adds r0, 0x98
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ bl _08016878
+ .pool
+_08015EC4:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ bne _08015ED2
+ bl _08016878
+_08015ED2:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _08015F2C
+ ldr r5, =gStringVar1
+ bl GetMultiplayerId
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r4, =gLinkPlayers + 8
+ adds r1, r4
+ adds r0, r5, 0
+ bl StringCopy
+ ldrh r0, [r4, 0x18]
+ adds r4, 0x1C
+ adds r1, r4, 0
+ bl sub_800E540
+ adds r5, r0, 0
+ ldr r0, =gStringVar4
+ ldr r2, =gUnknown_082EE378
+ lsls r1, r5, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringExpandPlaceholders
+ movs r0, 0x21
+ bl _08016876
+ .pool
+_08015F2C:
+ movs r0, 0x7
+ bl _08016876
+_08015F32:
+ adds r0, r6, 0
+ adds r0, 0x16
+ movs r1, 0
+ bl sub_80170B8
+ lsls r0, 24
+ asrs r5, r0, 24
+ cmp r5, 0
+ beq _08015F5C
+ cmp r5, 0
+ bgt _08015F54
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ beq _08015F98
+ bl _08016878
+_08015F54:
+ cmp r5, 0x1
+ beq _08015F98
+ bl _08016878
+_08015F5C:
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldr r4, =gUnknown_02022C2C
+ movs r0, 0x45
+ strb r0, [r4]
+ movs r0, 0x45
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8011090
+ movs r2, 0x2
+ ldrsh r0, [r7, r2]
+ lsls r0, 5
+ ldr r1, [r6]
+ adds r1, r0
+ adds r0, r1, 0
+ adds r0, 0x10
+ ldrb r2, [r4]
+ bl sub_8012188
+ ldrh r0, [r7, 0x2]
+ strh r0, [r6, 0x12]
+ movs r0, 0x14
+ strb r0, [r6, 0x14]
+ strh r5, [r7, 0x6]
+ bl _08016878
+ .pool
+_08015F98:
+ movs r3, 0x2
+ ldrsh r0, [r7, r3]
+ ldr r1, [r6]
+ bl sub_8017CF8
+ adds r4, r0, 0
+ ldr r1, =gUnknown_082EEC9C
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl sub_801568C
+ bl _08016878
+ .pool
+_08015FB8:
+ ldrh r0, [r7, 0x4]
+ adds r0, 0x1
+ strh r0, [r7, 0x4]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ bgt _08015FCA
+ bl _08016878
+_08015FCA:
+ movs r1, 0
+ movs r0, 0x15
+ strb r0, [r6, 0x14]
+ strh r1, [r7, 0x4]
+ bl _08016878
+_08015FD6:
+ bl sub_8011A74
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ beq _0801603C
+ cmp r4, 0x3
+ ble _08015FF4
+ cmp r4, 0x4
+ bne _08016040
+ movs r0, 0x1
+ bl sub_801818C
+ strb r4, [r6, 0x14]
+ b _08016040
+_08015FF4:
+ cmp r4, 0x1
+ blt _08016040
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ ldr r1, [r6]
+ bl sub_8017CF8
+ adds r4, r0, 0
+ movs r0, 0x54
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8011090
+ bl sub_8011B90
+ cmp r0, 0x1
+ bne _08016028
+ ldr r0, =gUnknown_082EED3C
+ lsls r1, r4, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl sub_801568C
+ b _08016040
+ .pool
+_08016028:
+ ldr r0, =gUnknown_082EED3C
+ lsls r1, r4, 2
+ adds r1, r0
+ ldr r1, [r1]
+ movs r0, 0x1E
+ bl sub_8015664
+ b _08016040
+ .pool
+_0801603C:
+ movs r0, 0x16
+ strb r0, [r6, 0x14]
+_08016040:
+ ldrh r0, [r7, 0x6]
+ adds r0, 0x1
+ strh r0, [r7, 0x6]
+ bl _08016878
+_0801604A:
+ bl sub_8011A80
+ cmp r0, 0
+ beq _08016092
+ movs r2, 0x2
+ ldrsh r0, [r7, r2]
+ ldr r1, [r6]
+ bl sub_8017CF8
+ adds r4, r0, 0
+ movs r0, 0x54
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8011090
+ bl sub_8011B90
+ cmp r0, 0x1
+ bne _08016084
+ ldr r0, =gUnknown_082EED3C
+ lsls r1, r4, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl sub_801568C
+ b _08016092
+ .pool
+_08016084:
+ ldr r0, =gUnknown_082EED3C
+ lsls r1, r4, 2
+ adds r1, r0
+ ldr r1, [r1]
+ movs r0, 0x1E
+ bl sub_8015664
+_08016092:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0801609E
+ bl _08016878
+_0801609E:
+ movs r0, 0x10
+ bl _08016876
+ .pool
+_080160AC:
+ movs r0, 0x49
+ bl PlaySE
+ bl sub_800EF7C
+ movs r0, 0
+ movs r1, 0xC
+ strb r1, [r6, 0x14]
+ adds r1, r6, 0
+ adds r1, 0x9A
+ strh r0, [r1]
+ bl _08016878
+_080160C6:
+ bl sub_8011A80
+ cmp r0, 0
+ beq _080160DA
+ movs r0, 0
+ bl sub_801818C
+ movs r0, 0x2
+ bl _08016876
+_080160DA:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080160E4
+ b _08016878
+_080160E4:
+ ldr r0, =gBlockSendBuffer
+ movs r1, 0x1
+ bl sub_80143E4
+ ldr r0, =sub_80140E0
+ movs r1, 0x5
+ bl CreateTask
+ movs r0, 0x27
+ b _08016876
+ .pool
+_08016104:
+ adds r0, r6, 0
+ bl sub_801689C
+ ldr r0, =sub_80140E0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ beq _08016118
+ b _08016878
+_08016118:
+ movs r0, 0x21
+ strb r0, [r6, 0x14]
+ ldr r0, =gStringVar1
+ ldr r4, =gLinkPlayers + 0x1C + 0x08 @ &gLinkPlayers[1].name
+ adds r1, r4, 0
+ bl StringCopy
+ adds r0, r4, 0
+ subs r0, 0x24
+ ldrh r0, [r0, 0x20]
+ adds r1, r4, 0
+ bl sub_800E540
+ adds r5, r0, 0
+ ldr r0, =gStringVar4
+ ldr r2, =gUnknown_082EE324
+ lsls r1, r5, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringExpandPlaceholders
+ b _08016878
+ .pool
+_08016158:
+ adds r0, r6, 0
+ bl sub_801689C
+ adds r0, r6, 0
+ adds r0, 0x16
+ ldr r1, =gStringVar4
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ bne _08016170
+ b _08016878
+_08016170:
+ movs r0, 0x22
+ b _08016876
+ .pool
+_08016178:
+ adds r0, r6, 0
+ bl sub_801689C
+ adds r0, r6, 0
+ bl sub_80168DC
+ cmp r0, 0
+ bne _0801618A
+ b _08016878
+_0801618A:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08016198
+ b _08016878
+_08016198:
+ movs r0, 0x1
+ bl sub_8011DE0
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_082EE598
+ bl StringCopy
+ movs r0, 0x24
+ b _08016876
+ .pool
+_080161B8:
+ ldr r1, =gStringVar4
+ movs r0, 0x9
+ bl sub_8015664
+ b _08016878
+ .pool
+_080161C8:
+ adds r0, r6, 0
+ adds r0, 0x16
+ movs r1, 0
+ bl sub_80170B8
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080161EE
+ cmp r1, 0
+ bgt _080161E8
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080162AE
+ b _08016878
+_080161E8:
+ cmp r1, 0x1
+ beq _080162AE
+ b _08016878
+_080161EE:
+ adds r0, r6, 0
+ adds r0, 0x4C
+ movs r1, 0x51
+ strh r1, [r0]
+ ldr r1, =gUnknown_02022C2C
+ ldrb r1, [r1]
+ adds r5, r0, 0
+ cmp r1, 0x45
+ bne _08016220
+ movs r4, 0x40
+ orrs r4, r1
+ movs r0, 0x1
+ bl sub_801100C
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_8011090
+ b _0801623E
+ .pool
+_08016220:
+ movs r0, 0x40
+ adds r4, r1, 0
+ orrs r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl sub_801100C
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_8011090
+_0801623E:
+ ldr r1, [r6, 0x8]
+ movs r0, 0
+ strb r0, [r1, 0x1B]
+ strh r0, [r7, 0x6]
+ ldr r0, =gUnknown_02022C2C
+ ldrb r0, [r0]
+ cmp r0, 0x41
+ bne _08016286
+ bl sub_8018024
+ cmp r0, 0
+ bne _0801627C
+ movs r0, 0x52
+ strh r0, [r5]
+ adds r0, r5, 0
+ bl sub_800FE50
+ movs r0, 0xA
+ strb r0, [r6, 0x14]
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_082EEC14
+ bl StringCopy
+ b _08016878
+ .pool
+_0801627C:
+ adds r0, r5, 0
+ bl sub_800FE50
+ movs r0, 0xD
+ b _08016876
+_08016286:
+ cmp r0, 0x48
+ bne _080162A4
+ adds r0, r5, 0
+ bl sub_800FE50
+ ldr r0, =gStringVar4
+ adds r1, r6, 0
+ movs r2, 0x1
+ bl sub_8018220
+ movs r0, 0x28
+ b _08016876
+ .pool
+_080162A4:
+ adds r0, r5, 0
+ bl sub_800FE50
+ movs r0, 0xD
+ b _08016876
+_080162AE:
+ adds r0, r6, 0
+ adds r0, 0x4C
+ movs r1, 0x52
+ strh r1, [r0]
+ bl sub_800FE50
+ movs r0, 0xA
+ strb r0, [r6, 0x14]
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_02022C2C
+ ldrb r1, [r1]
+ bl sub_8013078
+ b _08016878
+ .pool
+_080162D4:
+ bl sub_800AC34
+ movs r0, 0x24
+ b _08016876
+_080162DC:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r4, [r0]
+ cmp r4, 0
+ beq _080162E6
+ b _08016878
+_080162E6:
+ ldr r1, =gUnknown_02022C2C
+ movs r0, 0x40
+ strb r0, [r1]
+ ldr r1, =gStringVar4
+ movs r0, 0x25
+ bl sub_8015664
+ adds r0, r6, 0
+ adds r0, 0x4C
+ movs r1, 0
+ movs r2, 0xC
+ bl memset
+ adds r0, r6, 0
+ adds r0, 0x9A
+ strh r4, [r0]
+ subs r0, 0x2
+ strh r4, [r0]
+ b _08016878
+ .pool
+_08016318:
+ movs r0, 0x2
+ strb r0, [r6, 0x14]
+ movs r0, 0
+ bl sub_801818C
+ b _08016878
+_08016324:
+ ldr r4, =gStringVar4
+ ldr r0, =gUnknown_02022C2C
+ ldrb r0, [r0]
+ movs r1, 0x40
+ orrs r1, r0
+ adds r0, r4, 0
+ bl sub_8017E00
+ movs r0, 0xE
+ adds r1, r4, 0
+ bl sub_8015664
+ b _08016878
+ .pool
+_08016348:
+ bl sub_800ADF8
+ movs r0, 0xF
+ b _08016876
+_08016350:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801635C
+ b _08016878
+_0801635C:
+ movs r0, 0x10
+ b _08016876
+_08016360:
+ ldr r0, [r6, 0x8]
+ bl Free
+ ldr r0, [r6]
+ bl Free
+ ldr r0, [r6, 0xC]
+ bl Free
+ ldr r0, [r6, 0x4]
+ bl Free
+ adds r0, r6, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ bl DestroyTask
+ adds r0, r6, 0
+ adds r0, 0x21
+ bl sub_8019F04
+ movs r0, 0x11
+ b _08016876
+_0801638E:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r0, 0x12
+ b _08016876
+_080163A2:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ beq _080163AE
+ b _08016878
+_080163AE:
+ bl sub_8019E3C
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r0, =gUnknown_02022C30
+ ldr r0, [r0]
+ bl Free
+ bl sub_80149D8
+ b _08016878
+ .pool
+_080163CC:
+ bl sub_800F7DC
+ ldrh r1, [r0, 0x8]
+ ldr r4, =0x000003ff
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080163E4
+ movs r0, 0x2B
+ b _08016876
+ .pool
+_080163E4:
+ bl sub_800F7DC
+ ldrh r1, [r0, 0x8]
+ adds r0, r4, 0
+ ands r0, r1
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ bne _08016408
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_082EF590
+ bl StringCopy
+ b _0801643E
+ .pool
+_08016408:
+ ldr r4, =gStringVar1
+ bl sub_800F7DC
+ ldrh r0, [r0, 0x8]
+ lsls r0, 22
+ lsrs r0, 22
+ movs r1, 0xB
+ muls r1, r0
+ ldr r0, =gSpeciesNames
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r4, =gStringVar2
+ bl sub_800F7DC
+ ldrb r1, [r0, 0xB]
+ lsrs r1, 1
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_082EF564
+ bl StringExpandPlaceholders
+_0801643E:
+ ldr r1, =gStringVar4
+ movs r0, 0x2C
+ bl sub_8015664
+ b _08016878
+ .pool
+_0801645C:
+ adds r0, r6, 0
+ adds r0, 0x16
+ ldr r1, =gUnknown_082EF20C
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801646E
+ b _08016878
+_0801646E:
+ movs r0, 0x2F
+ b _08016876
+ .pool
+_08016478:
+ adds r0, r6, 0
+ adds r0, 0x16
+ adds r1, r6, 0
+ adds r1, 0x1D
+ adds r2, r6, 0
+ adds r2, 0x1E
+ ldr r3, =gUnknown_082F025C
+ ldr r4, =gUnknown_082F027C
+ str r4, [sp]
+ bl sub_8017178
+ adds r5, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ bne _0801649A
+ b _08016878
+_0801649A:
+ subs r0, 0x1
+ cmp r5, r0
+ beq _080164A4
+ cmp r5, 0x3
+ bne _080164B8
+_080164A4:
+ movs r0, 0x4
+ strb r0, [r6, 0x14]
+ movs r0, 0x1
+ bl sub_801818C
+ b _08016878
+ .pool
+_080164B8:
+ cmp r5, 0x1
+ beq _080164C2
+ cmp r5, 0x2
+ beq _080164D0
+ b _08016878
+_080164C2:
+ ldr r1, =gUnknown_082EF4C4
+ movs r0, 0x35
+ bl sub_8015664
+ b _08016878
+ .pool
+_080164D0:
+ ldr r1, =gUnknown_082EF298
+ movs r0, 0x2F
+ bl sub_8015664
+ b _08016878
+ .pool
+_080164E0:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r0, 0x36
+ b _08016876
+_080164F4:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08016502
+ b _08016878
+_08016502:
+ ldr r1, =gUnknown_02022C40
+ movs r0, 0x1
+ strh r0, [r1]
+ ldr r1, =gFieldCallback
+ ldr r0, =sub_80AF128
+ str r0, [r1]
+ ldr r1, =c2_exit_to_overworld_2_switch
+ movs r0, 0x8
+ bl sub_81B8904
+ b _08016878
+ .pool
+_0801652C:
+ adds r0, r6, 0
+ adds r0, 0x16
+ adds r1, r6, 0
+ adds r1, 0x1D
+ adds r2, r6, 0
+ adds r2, 0x1E
+ ldr r3, =gUnknown_082F0294
+ ldr r4, =gUnknown_082F032C
+ str r4, [sp]
+ bl sub_8017178
+ adds r5, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ bne _0801654E
+ b _08016878
+_0801654E:
+ subs r0, 0x1
+ cmp r5, r0
+ beq _08016558
+ cmp r5, 0x12
+ bne _08016580
+_08016558:
+ ldr r0, =gUnknown_02022C40
+ bl sub_801807C
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_8010FCC
+ ldr r0, =gUnknown_082EF4FC
+ bl sub_801568C
+ b _08016878
+ .pool
+_08016580:
+ ldr r0, =gUnknown_02022C40
+ strh r5, [r0, 0x2]
+ movs r0, 0x37
+ b _08016876
+ .pool
+_0801658C:
+ ldr r2, =gUnknown_02022C40
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r2, 0xA]
+ ldrh r2, [r2, 0xC]
+ bl sub_8010FCC
+ ldr r0, =gUnknown_082EF520
+ bl sub_801568C
+ b _08016878
+ .pool
+_080165A8:
+ adds r0, r6, 0
+ adds r0, 0x16
+ movs r1, 0
+ bl sub_80170B8
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080165CE
+ cmp r1, 0
+ bgt _080165C8
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080165D2
+ b _08016878
+_080165C8:
+ cmp r1, 0x1
+ beq _080165D2
+ b _08016878
+_080165CE:
+ movs r0, 0x38
+ b _08016876
+_080165D2:
+ movs r0, 0x1
+ bl sub_801818C
+ movs r0, 0x4
+ b _08016876
+_080165DC:
+ adds r0, r6, 0
+ adds r0, 0x16
+ ldr r1, =gUnknown_082EF5B8
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ bne _080165EE
+ b _08016878
+_080165EE:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_8010FCC
+ ldr r0, =gUnknown_02022C40
+ bl sub_801807C
+ movs r0, 0x1
+ bl sub_801818C
+ movs r0, 0x4
+ b _08016876
+ .pool
+_08016610:
+ adds r0, r6, 0
+ adds r0, 0x16
+ ldr r1, =gUnknown_082EF1EC
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ bne _08016622
+ b _08016878
+_08016622:
+ movs r0, 0x2E
+ b _08016876
+ .pool
+_0801662C:
+ bl sub_80173B0
+ movs r0, 0x30
+ b _08016876
+_08016634:
+ adds r0, r6, 0
+ adds r0, 0x16
+ adds r1, r6, 0
+ adds r1, 0x1D
+ adds r2, r6, 0
+ adds r2, 0x4A
+ adds r3, r6, 0
+ adds r3, 0x1E
+ ldr r4, =gUnknown_082F034C
+ str r4, [sp]
+ ldr r4, =gUnknown_082F03A4
+ str r4, [sp, 0x4]
+ ldr r4, [r6]
+ str r4, [sp, 0x8]
+ bl sub_80172A0
+ adds r5, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ bne _08016660
+ b _08016878
+_08016660:
+ subs r0, 0x1
+ cmp r5, r0
+ beq _0801666A
+ cmp r5, 0x8
+ bne _0801667C
+_0801666A:
+ movs r0, 0x1
+ bl sub_801818C
+ movs r0, 0x4
+ b _08016876
+ .pool
+_0801667C:
+ bl sub_80173B0
+ ldr r1, [r6]
+ lsls r4, r5, 5
+ adds r1, r4
+ ldrb r0, [r1, 0x9]
+ lsrs r0, 2
+ ldrh r1, [r1, 0x8]
+ lsls r1, 22
+ lsrs r1, 22
+ bl sub_8017D04
+ cmp r0, 0x1
+ beq _080166C8
+ cmp r0, 0x1
+ bgt _080166A2
+ cmp r0, 0
+ beq _080166A8
+ b _08016878
+_080166A2:
+ cmp r0, 0x2
+ beq _080166FC
+ b _08016878
+_080166A8:
+ ldr r0, =gStringVar1
+ ldr r1, [r6]
+ adds r1, r4
+ bl sub_8018404
+ ldr r1, =gUnknown_082EF65C
+ movs r0, 0x31
+ bl sub_8015664
+ strh r5, [r7, 0x2]
+ b _08016878
+ .pool
+_080166C8:
+ ldr r0, =gStringVar1
+ ldr r1, [r6]
+ adds r1, r4
+ bl sub_8018404
+ ldr r0, =gStringVar2
+ ldr r1, [r6]
+ adds r1, r4
+ ldrb r2, [r1, 0x9]
+ lsrs r2, 2
+ lsls r1, r2, 3
+ subs r1, r2
+ ldr r2, =gTypeNames
+ adds r1, r2
+ bl StringCopy
+ ldr r1, =gUnknown_082EF6E4
+ b _0801671E
+ .pool
+_080166FC:
+ ldr r0, =gStringVar1
+ ldr r1, [r6]
+ adds r1, r4
+ bl sub_8018404
+ ldr r0, =gStringVar2
+ ldr r1, [r6]
+ adds r1, r4
+ ldrb r2, [r1, 0x9]
+ lsrs r2, 2
+ lsls r1, r2, 3
+ subs r1, r2
+ ldr r2, =gTypeNames
+ adds r1, r2
+ bl StringCopy
+ ldr r1, =gUnknown_082EF718
+_0801671E:
+ movs r0, 0x2E
+ bl sub_8015664
+ b _08016878
+ .pool
+_08016738:
+ adds r0, r6, 0
+ adds r0, 0x16
+ movs r1, 0
+ bl sub_80170B8
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _0801675E
+ cmp r1, 0
+ bgt _08016758
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08016762
+ b _08016878
+_08016758:
+ cmp r1, 0x1
+ beq _08016762
+ b _08016878
+_0801675E:
+ movs r0, 0x32
+ b _08016876
+_08016762:
+ movs r0, 0x1
+ bl sub_801818C
+ movs r0, 0x4
+ b _08016876
+_0801676C:
+ adds r0, r6, 0
+ adds r0, 0x16
+ ldr r1, =gUnknown_082EF4C4
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801677E
+ b _08016878
+_0801677E:
+ ldr r4, =gUnknown_02022C40
+ movs r0, 0x2
+ strh r0, [r4]
+ ldr r2, =gUnknown_02022C38
+ movs r3, 0x2
+ ldrsh r0, [r7, r3]
+ ldr r1, [r6]
+ lsls r0, 5
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r2, =gUnknown_02022C3E
+ ldr r1, [r6]
+ movs r3, 0x2
+ ldrsh r0, [r7, r3]
+ lsls r0, 5
+ adds r1, r0
+ ldrb r0, [r1, 0x9]
+ lsrs r0, 2
+ strb r0, [r2]
+ ldr r2, =gUnknown_02022C3C
+ ldr r1, [r6]
+ movs r3, 0x2
+ ldrsh r0, [r7, r3]
+ lsls r0, 5
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r2]
+ ldr r1, =gFieldCallback
+ ldr r0, =sub_80AF128
+ str r0, [r1]
+ ldr r1, =c2_exit_to_overworld_2_switch
+ movs r0, 0x9
+ bl sub_81B8904
+ adds r0, r6, 0
+ bl sub_80156B0
+ ldrh r0, [r7, 0x2]
+ strb r0, [r4, 0x8]
+ b _08016878
+ .pool
+_080167F4:
+ ldr r1, =gUnknown_02022C2C
+ movs r0, 0x44
+ strb r0, [r1]
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ lsls r0, 5
+ ldr r1, [r6]
+ adds r1, r0
+ adds r0, r1, 0
+ adds r0, 0x10
+ movs r2, 0x44
+ bl sub_8012188
+ ldr r0, =gStringVar1
+ movs r3, 0x2
+ ldrsh r2, [r7, r3]
+ lsls r2, 5
+ ldr r1, [r6]
+ adds r1, r2
+ bl sub_8018404
+ ldr r0, =gUnknown_082EE17C
+ ldr r0, [r0, 0x8]
+ bl sub_8017020
+ movs r0, 0x19
+ b _08016876
+ .pool
+_08016838:
+ adds r0, r6, 0
+ adds r0, 0x16
+ ldr r1, =gStringVar4
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ beq _08016878
+ movs r0, 0x1
+ bl sub_801818C
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ movs r2, 0x2
+ ldrsh r1, [r7, r2]
+ ldr r2, [r6]
+ bl sub_801A3D0
+ movs r0, 0x4
+ b _08016876
+ .pool
+_08016864:
+ adds r0, r6, 0
+ adds r0, 0x16
+ ldr r1, =gStringVar4
+ bl sub_8017064
+ lsls r0, 24
+ cmp r0, 0
+ beq _08016878
+ ldrb r0, [r6, 0x15]
+_08016876:
+ strb r0, [r6, 0x14]
+_08016878:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80156E0
+
+ thumb_func_start var_800D_set_xB
+var_800D_set_xB: @ 8016884
+ push {lr}
+ bl InUnionRoom
+ cmp r0, 0x1
+ bne _08016894
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0xB
+ strh r0, [r1]
+_08016894:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end var_800D_set_xB
+
+ thumb_func_start sub_801689C
+sub_801689C: @ 801689C
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ ldr r3, =gRecvCmds
+ ldrh r5, [r3, 0x12]
+ adds r4, r5, 0
+ cmp r4, 0
+ beq _080168D0
+ ldrh r0, [r3, 0x10]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r1, r0
+ movs r0, 0xBC
+ lsls r0, 6
+ cmp r1, r0
+ bne _080168D0
+ adds r0, r2, 0
+ adds r0, 0x9A
+ strh r5, [r0]
+ cmp r4, 0x44
+ bne _080168D0
+ ldrh r1, [r3, 0x14]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldrh r1, [r3, 0x16]
+ adds r0, 0x2
+ strh r1, [r0]
+_080168D0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801689C
+
+ thumb_func_start sub_80168DC
+sub_80168DC: @ 80168DC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r4, 0
+ adds r5, 0x9A
+ ldrh r0, [r5]
+ cmp r0, 0
+ beq _0801692C
+ ldr r0, =gStringVar4
+ ldr r1, =gLinkPlayers
+ adds r1, 0x2F
+ ldrb r1, [r1]
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_8017EA0
+ cmp r0, 0
+ beq _0801692C
+ cmp r0, 0x1
+ bne _0801691C
+ movs r0, 0x23
+ strb r0, [r4, 0x14]
+ ldr r1, =gUnknown_02022C2C
+ ldrh r0, [r5]
+ strb r0, [r1]
+ movs r0, 0
+ b _0801692E
+ .pool
+_0801691C:
+ cmp r0, 0x2
+ bne _0801692C
+ movs r0, 0x24
+ strb r0, [r4, 0x14]
+ bl sub_800AC34
+ movs r0, 0
+ b _0801692E
+_0801692C:
+ movs r0, 0x1
+_0801692E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80168DC
+
+ thumb_func_start sub_8016934
+sub_8016934: @ 8016934
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_02022C20
+ movs r0, 0xFF
+ strb r0, [r5]
+ ldr r0, =task00_081199FC
+ movs r1, 0
+ bl CreateTask
+ ldr r4, =gUnknown_02022C30
+ movs r0, 0x9B
+ lsls r0, 2
+ bl AllocZeroed
+ str r0, [r4]
+ ldr r1, =gUnknown_03000DA8
+ str r0, [r1]
+ movs r1, 0
+ strb r1, [r0, 0x14]
+ strb r1, [r0, 0x16]
+ strh r1, [r0, 0x10]
+ strh r1, [r0, 0x12]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8016934
+
+ thumb_func_start task00_081199FC
+task00_081199FC: @ 801697C
+ push {r4-r6,lr}
+ sub sp, 0x20
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gUnknown_02022C30
+ ldr r5, [r0]
+ ldrb r0, [r5, 0x14]
+ cmp r0, 0x4
+ bls _08016990
+ b _08016AC8
+_08016990:
+ lsls r0, 2
+ ldr r1, =_080169A4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080169A4:
+ .4byte _080169B8
+ .4byte _080169BE
+ .4byte _080169E0
+ .4byte _08016A30
+ .4byte _08016A94
+_080169B8:
+ movs r0, 0x1
+ strb r0, [r5, 0x14]
+ b _08016AC8
+_080169BE:
+ movs r0, 0xC
+ movs r1, 0
+ movs r2, 0
+ bl sub_8010F84
+ bl sub_800B488
+ bl OpenLink
+ bl sub_8011C84
+ movs r0, 0x1
+ bl sub_80111B0
+ movs r0, 0x2
+ strb r0, [r5, 0x14]
+ b _08016AC8
+_080169E0:
+ movs r0, 0x70
+ bl AllocZeroed
+ str r0, [r5, 0x4]
+ movs r1, 0x4
+ bl sub_80175EC
+ movs r0, 0x70
+ bl AllocZeroed
+ str r0, [r5, 0xC]
+ movs r1, 0x4
+ bl sub_80175EC
+ movs r0, 0x80
+ lsls r0, 1
+ bl AllocZeroed
+ str r0, [r5]
+ movs r1, 0x8
+ bl sub_8017580
+ movs r0, 0x20
+ bl AllocZeroed
+ str r0, [r5, 0x8]
+ movs r1, 0x1
+ bl sub_8017580
+ ldr r0, [r5, 0xC]
+ ldr r1, [r5, 0x4]
+ movs r2, 0xA
+ bl sub_8016DF0
+ adds r1, r5, 0
+ adds r1, 0x20
+ strb r0, [r1]
+ movs r0, 0x3
+ strb r0, [r5, 0x14]
+ b _08016AC8
+_08016A30:
+ bl sub_8016B00
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ blt _08016AC8
+ cmp r0, 0x2
+ bgt _08016AC8
+ ldr r0, =gUnknown_02022C20
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08016AC8
+ movs r6, 0
+_08016A4A:
+ ldr r0, [r5]
+ lsls r4, r6, 5
+ adds r1, r0, r4
+ ldrb r0, [r1, 0x1A]
+ lsls r0, 30
+ lsrs r0, 30
+ cmp r0, 0x1
+ bne _08016A78
+ mov r0, sp
+ bl sub_8018404
+ ldr r0, [r5]
+ adds r0, r4
+ adds r0, 0x2
+ bl sub_8015658
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, sp
+ bl sub_800E540
+ cmp r0, 0
+ bne _08016A84
+_08016A78:
+ adds r6, 0x1
+ cmp r6, 0x7
+ ble _08016A4A
+ b _08016AC8
+ .pool
+_08016A84:
+ ldr r0, =gUnknown_02022C20
+ mov r1, sp
+ bl StringCopy
+ b _08016AC8
+ .pool
+_08016A94:
+ ldr r0, [r5, 0x8]
+ bl Free
+ ldr r0, [r5]
+ bl Free
+ ldr r0, [r5, 0xC]
+ bl Free
+ ldr r0, [r5, 0x4]
+ bl Free
+ adds r0, r5, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ bl DestroyTask
+ ldr r0, =gUnknown_02022C30
+ ldr r0, [r0]
+ bl Free
+ bl sub_800EDD4
+ adds r0, r4, 0
+ bl DestroyTask
+_08016AC8:
+ add sp, 0x20
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task00_081199FC
+
+ thumb_func_start sp182_move_string
+sp182_move_string: @ 8016AD4
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C20
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _08016AE8
+ movs r0, 0
+ b _08016AF6
+ .pool
+_08016AE8:
+ ldr r0, =gStringVar1
+ adds r1, r4, 0
+ bl StringCopy
+ movs r0, 0xFF
+ strb r0, [r4]
+ movs r0, 0x1
+_08016AF6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sp182_move_string
+
+ thumb_func_start sub_8016B00
+sub_8016B00: @ 8016B00
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, =gUnknown_02022C30
+ ldr r4, [r0]
+ movs r7, 0
+ movs r6, 0
+ movs r5, 0
+_08016B12:
+ ldr r0, [r4, 0xC]
+ adds r0, r5
+ ldr r1, =gUnknown_082F045C
+ bl sub_8017630
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1
+ bne _08016B5C
+ ldr r1, [r4, 0xC]
+ ldr r0, [r4, 0x8]
+ adds r1, r5
+ ldm r1!, {r2,r5,r6}
+ stm r0!, {r2,r5,r6}
+ ldm r1!, {r2,r5,r6}
+ stm r0!, {r2,r5,r6}
+ ldr r1, [r4, 0x8]
+ movs r0, 0
+ strh r0, [r1, 0x18]
+ ldr r2, [r4, 0x8]
+ ldrb r1, [r2, 0x1A]
+ movs r5, 0x4
+ negs r5, r5
+ adds r0, r5, 0
+ ands r1, r0
+ movs r0, 0x1
+ orrs r1, r0
+ strb r1, [r2, 0x1A]
+ ldr r0, [r4, 0x8]
+ strb r3, [r0, 0x1B]
+ movs r0, 0x4
+ b _08016C90
+ .pool
+_08016B5C:
+ adds r5, 0x1C
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08016B12
+ movs r6, 0
+ mov r9, r6
+_08016B68:
+ ldr r0, [r4]
+ mov r1, r9
+ lsls r5, r1, 5
+ adds r2, r0, r5
+ ldrb r0, [r2, 0x1A]
+ lsls r0, 30
+ mov r8, r5
+ cmp r0, 0
+ beq _08016C5C
+ ldr r1, [r4, 0x4]
+ adds r0, r2, 0
+ bl sub_80176E4
+ adds r6, r0, 0
+ cmp r6, 0xFF
+ beq _08016C02
+ ldr r0, [r4]
+ adds r2, r0, r5
+ ldrb r1, [r2, 0x1A]
+ lsls r0, r1, 30
+ lsrs r0, 30
+ cmp r0, 0x1
+ bne _08016BE0
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r6, r0, 2
+ ldr r1, [r4, 0x4]
+ adds r1, r6
+ adds r0, r2, 0
+ bl sub_8017678
+ cmp r0, 0
+ beq _08016BC6
+ ldr r1, [r4]
+ ldr r0, [r4, 0x4]
+ adds r1, r5
+ adds r0, r6
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldr r0, [r4]
+ adds r0, r5
+ movs r1, 0x40
+ strb r1, [r0, 0x1B]
+ movs r7, 0x1
+ b _08016BF8
+_08016BC6:
+ ldr r0, [r4]
+ adds r1, r0, r5
+ ldrb r0, [r1, 0x1B]
+ cmp r0, 0
+ beq _08016BF8
+ subs r0, 0x1
+ strb r0, [r1, 0x1B]
+ ldr r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0, 0x1B]
+ cmp r0, 0
+ bne _08016BF8
+ b _08016BF6
+_08016BE0:
+ movs r3, 0x4
+ negs r3, r3
+ adds r0, r3, 0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x1A]
+ ldr r0, [r4]
+ adds r0, r5
+ movs r1, 0
+ strb r1, [r0, 0x1B]
+_08016BF6:
+ movs r7, 0x2
+_08016BF8:
+ ldr r0, [r4]
+ add r0, r8
+ movs r1, 0
+ strh r1, [r0, 0x18]
+ b _08016C5C
+_08016C02:
+ ldr r0, [r4]
+ adds r1, r0, r5
+ ldrb r0, [r1, 0x1A]
+ lsls r2, r0, 30
+ lsrs r0, r2, 30
+ cmp r0, 0x2
+ beq _08016C3C
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ strh r0, [r1, 0x18]
+ ldr r0, [r4]
+ adds r2, r0, r5
+ ldrh r1, [r2, 0x18]
+ ldr r0, =0x00000257
+ cmp r1, r0
+ bls _08016C5C
+ ldrb r0, [r2, 0x1A]
+ movs r5, 0x4
+ negs r5, r5
+ adds r1, r5, 0
+ ands r0, r1
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2, 0x1A]
+ movs r7, 0x2
+ b _08016C5C
+ .pool
+_08016C3C:
+ lsrs r0, r2, 30
+ cmp r0, 0x2
+ bne _08016C5C
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ strh r0, [r1, 0x18]
+ ldr r0, [r4]
+ adds r2, r0, r5
+ ldrh r1, [r2, 0x18]
+ ldr r0, =0x00000383
+ cmp r1, r0
+ bls _08016C5C
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl sub_8017580
+_08016C5C:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r0, 0x7
+ bhi _08016C6C
+ b _08016B68
+_08016C6C:
+ movs r5, 0
+ movs r6, 0x3
+_08016C70:
+ ldr r0, [r4]
+ ldr r1, [r4, 0x4]
+ adds r1, r5
+ movs r2, 0x8
+ bl sub_8017734
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _08016C86
+ movs r7, 0x1
+_08016C86:
+ adds r5, 0x1C
+ subs r6, 0x1
+ cmp r6, 0
+ bge _08016C70
+ adds r0, r7, 0
+_08016C90:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8016B00
+
+ thumb_func_start sub_8016CA0
+sub_8016CA0: @ 8016CA0
+ 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
+ mov r10, r0
+ lsls r0, 2
+ add r0, r10
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r6, r0, r1
+ movs r7, 0
+ mov r0, sp
+ adds r0, 0x10
+ str r0, [sp, 0x18]
+_08016CC4:
+ lsls r2, r7, 24
+ lsrs r2, 24
+ mov r0, sp
+ ldr r1, [sp, 0x18]
+ bl sub_800DE7C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r0, sp
+ ldrb r0, [r0, 0xA]
+ lsls r0, 25
+ lsrs r0, 25
+ mov r2, r10
+ lsls r1, r2, 2
+ add r1, r10
+ lsls r1, 3
+ ldr r3, =gTasks
+ adds r1, r3
+ movs r5, 0x10
+ ldrsh r1, [r1, r5]
+ bl sub_8013D88
+ cmp r0, 0
+ bne _08016D00
+ mov r1, sp
+ ldr r0, =gUnknown_082F045C
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+_08016D00:
+ mov r0, sp
+ ldrb r1, [r0]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0x1
+ bne _08016D18
+ mov r1, sp
+ ldr r0, =gUnknown_082F045C
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+_08016D18:
+ cmp r4, 0
+ bne _08016D9C
+ lsls r0, r7, 3
+ mov r8, r0
+ adds r1, r7, 0x1
+ mov r9, r1
+ cmp r7, 0
+ ble _08016D58
+ movs r2, 0
+ str r2, [sp, 0x1C]
+ adds r4, r7, 0
+_08016D2E:
+ ldr r0, [r6, 0x4]
+ ldr r3, [sp, 0x1C]
+ adds r0, r3
+ mov r1, sp
+ bl sub_8017630
+ lsls r0, 24
+ cmp r0, 0
+ bne _08016D4C
+ mov r1, sp
+ ldr r0, =gUnknown_082F045C
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+_08016D4C:
+ ldr r5, [sp, 0x1C]
+ adds r5, 0x1C
+ str r5, [sp, 0x1C]
+ subs r4, 0x1
+ cmp r4, 0
+ bne _08016D2E
+_08016D58:
+ ldr r1, [r6, 0x4]
+ mov r0, r8
+ subs r4, r0, r7
+ lsls r4, 2
+ adds r1, r4
+ mov r0, sp
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldr r0, [r6, 0x4]
+ adds r0, r4
+ ldr r1, =gUnknown_082F045C
+ bl sub_8017630
+ ldr r3, [r6, 0x4]
+ adds r3, r4
+ movs r2, 0x1
+ ands r2, r0
+ ldrb r0, [r3, 0x18]
+ movs r4, 0x2
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0x18]
+ b _08016DD4
+ .pool
+_08016D9C:
+ ldr r1, [r6]
+ lsls r4, r7, 3
+ subs r4, r7
+ lsls r4, 2
+ adds r1, r4
+ mov r0, sp
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldr r0, [r6]
+ adds r0, r4
+ ldr r1, =gUnknown_082F045C
+ bl sub_8017630
+ ldr r3, [r6]
+ adds r3, r4
+ movs r2, 0x1
+ ands r2, r0
+ ldrb r0, [r3, 0x18]
+ movs r4, 0x2
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0x18]
+ adds r7, 0x1
+ mov r9, r7
+_08016DD4:
+ mov r7, r9
+ cmp r7, 0x3
+ bgt _08016DDC
+ b _08016CC4
+_08016DDC:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8016CA0
+
+ thumb_func_start sub_8016DF0
+sub_8016DF0: @ 8016DF0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ ldr r0, =sub_8016CA0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r2, =gTasks + 0x8
+ adds r3, r1, r2
+ str r4, [r3]
+ str r5, [r3, 0x4]
+ adds r2, r1
+ strh r6, [r2, 0x8]
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8016DF0
+
+ thumb_func_start sub_8016E24
+sub_8016E24: @ 8016E24
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r0, 2
+ add r0, r10
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r6, r0, r1
+ movs r3, 0
+_08016E42:
+ lsls r4, r3, 3
+ subs r0, r4, r3
+ lsls r5, r0, 2
+ ldr r0, [r6]
+ adds r0, r5
+ adds r1, r0, 0
+ adds r1, 0x10
+ lsls r2, r3, 24
+ lsrs r2, 24
+ str r3, [sp]
+ bl sub_800DE7C
+ ldr r0, [r6]
+ adds r0, r5
+ ldrb r0, [r0, 0xA]
+ lsls r0, 25
+ lsrs r0, 25
+ mov r2, r10
+ lsls r1, r2, 2
+ add r1, r10
+ lsls r1, 3
+ ldr r7, =gTasks
+ adds r1, r7
+ movs r2, 0xC
+ ldrsh r1, [r1, r2]
+ bl sub_8013D88
+ mov r8, r4
+ ldr r3, [sp]
+ cmp r0, 0
+ bne _08016E8E
+ ldr r1, [r6]
+ adds r1, r5
+ ldr r0, =gUnknown_082F045C
+ ldm r0!, {r2,r4,r7}
+ stm r1!, {r2,r4,r7}
+ ldm r0!, {r2,r4,r7}
+ stm r1!, {r2,r4,r7}
+_08016E8E:
+ adds r4, r3, 0x1
+ mov r9, r4
+ cmp r3, 0
+ ble _08016ED2
+ str r5, [sp, 0x4]
+ movs r5, 0
+ str r5, [sp, 0x8]
+ adds r4, r3, 0
+_08016E9E:
+ ldr r1, [r6]
+ ldr r7, [sp, 0x8]
+ adds r0, r1, r7
+ ldr r2, [sp, 0x4]
+ adds r1, r2
+ str r3, [sp]
+ bl sub_8017630
+ lsls r0, 24
+ ldr r3, [sp]
+ cmp r0, 0
+ bne _08016EC6
+ ldr r1, [r6]
+ ldr r5, [sp, 0x4]
+ adds r1, r5
+ ldr r0, =gUnknown_082F045C
+ ldm r0!, {r2,r5,r7}
+ stm r1!, {r2,r5,r7}
+ ldm r0!, {r2,r5,r7}
+ stm r1!, {r2,r5,r7}
+_08016EC6:
+ ldr r7, [sp, 0x8]
+ adds r7, 0x1C
+ str r7, [sp, 0x8]
+ subs r4, 0x1
+ cmp r4, 0
+ bne _08016E9E
+_08016ED2:
+ mov r0, r8
+ subs r4, r0, r3
+ lsls r4, 2
+ ldr r0, [r6]
+ adds r0, r4
+ ldr r1, =gUnknown_082F045C
+ bl sub_8017630
+ ldr r3, [r6]
+ adds r3, r4
+ movs r2, 0x1
+ ands r2, r0
+ ldrb r0, [r3, 0x18]
+ movs r4, 0x2
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0x18]
+ mov r3, r9
+ cmp r3, 0x3
+ ble _08016E42
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8016E24
+
+ thumb_func_start sub_8016F1C
+sub_8016F1C: @ 8016F1C
+ push {lr}
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7
+ bne _08016F2C
+ ldrb r1, [r0]
+ movs r0, 0x20
+ b _08016F34
+_08016F2C:
+ cmp r1, 0x8
+ bne _08016F3E
+ ldrb r1, [r0]
+ movs r0, 0x10
+_08016F34:
+ ands r0, r1
+ cmp r0, 0
+ beq _08016F3E
+ movs r0, 0x1
+ b _08016F40
+_08016F3E:
+ movs r0, 0
+_08016F40:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8016F1C
+
+ thumb_func_start sub_8016F44
+sub_8016F44: @ 8016F44
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r1, r0
+ movs r6, 0
+ subs r0, 0x8
+ movs r5, 0
+ adds r1, r0
+ mov r8, r1
+_08016F62:
+ ldr r0, [r4]
+ adds r0, r5
+ adds r1, r0, 0
+ adds r1, 0x10
+ lsls r2, r6, 24
+ lsrs r2, 24
+ bl sub_800DF34
+ lsls r0, 24
+ cmp r0, 0
+ beq _08016F86
+ ldr r0, [r4]
+ adds r0, r5
+ mov r2, r8
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ bl sub_8016F1C
+_08016F86:
+ ldr r0, [r4]
+ adds r0, r5
+ ldr r1, =gUnknown_082F045C
+ bl sub_8017630
+ ldr r3, [r4]
+ adds r3, r5
+ movs r2, 0x1
+ ands r2, r0
+ ldrb r0, [r3, 0x18]
+ movs r7, 0x2
+ negs r7, r7
+ adds r1, r7, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0x18]
+ adds r5, 0x1C
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08016F62
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8016F44
+
+ thumb_func_start sub_8016FC0
+sub_8016FC0: @ 8016FC0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r0, =sub_8016E24
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ ldr r1, =gTasks + 0x8
+ adds r3, r2, r1
+ str r4, [r3]
+ adds r1, r2
+ strh r5, [r1, 0x4]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8016FC0
+
+ thumb_func_start sub_8016FF0
+sub_8016FF0: @ 8016FF0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r0, =sub_8016F44
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ ldr r1, =gTasks + 0x8
+ adds r3, r2, r1
+ str r4, [r3]
+ adds r1, r2
+ strh r5, [r1, 0x4]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8016FF0
+
+ thumb_func_start sub_8017020
+sub_8017020: @ 8017020
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_81973A4
+ movs r0, 0
+ movs r1, 0x1
+ bl NewMenuHelpers_DrawDialogueFrame
+ ldr r0, =gStringVar4
+ adds r1, r4, 0
+ bl StringExpandPlaceholders
+ movs r0, 0
+ movs r1, 0x1
+ bl AddTextPrinterWithCustomSpeedForMessage
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8017020
+
+ thumb_func_start sub_801704C
+sub_801704C: @ 801704C
+ push {lr}
+ bl sub_8197224
+ lsls r0, 16
+ cmp r0, 0
+ beq _0801705C
+ movs r0, 0
+ b _0801705E
+_0801705C:
+ movs r0, 0x1
+_0801705E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801704C
+
+ thumb_func_start sub_8017064
+sub_8017064: @ 8017064
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08017076
+ cmp r0, 0x1
+ beq _0801709C
+ b _080170AE
+_08017076:
+ bl sub_81973A4
+ movs r0, 0
+ movs r1, 0x1
+ bl NewMenuHelpers_DrawDialogueFrame
+ ldr r0, =gStringVar4
+ adds r1, r5, 0
+ bl StringExpandPlaceholders
+ movs r0, 0x1
+ bl AddTextPrinterForMessage_2
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080170AE
+ .pool
+_0801709C:
+ bl sub_8197224
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ bne _080170AE
+ strb r0, [r4]
+ movs r0, 0x1
+ b _080170B0
+_080170AE:
+ movs r0, 0
+_080170B0:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8017064
+
+ thumb_func_start sub_80170B8
+sub_80170B8: @ 80170B8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080170CA
+ cmp r0, 0x1
+ beq _080170E0
+ b _0801710C
+_080170CA:
+ cmp r5, 0
+ beq _080170D4
+ movs r0, 0x3
+ negs r0, r0
+ b _08017110
+_080170D4:
+ bl sub_8197930
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0801710C
+_080170E0:
+ cmp r5, 0
+ beq _080170F2
+ bl sub_8198C78
+ movs r0, 0
+ strb r0, [r4]
+ movs r0, 0x3
+ negs r0, r0
+ b _08017110
+_080170F2:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _0801710C
+ strb r5, [r4]
+ adds r0, r1, 0
+ b _08017110
+_0801710C:
+ movs r0, 0x2
+ negs r0, r0
+_08017110:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80170B8
+
+ thumb_func_start sub_8017118
+sub_8017118: @ 8017118
+ push {r4,lr}
+ sub sp, 0x8
+ bl AddWindow
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0
+ bl NewMenuHelpers_DrawStdWindowFrame
+ adds r0, r4, 0
+ movs r1, 0xFF
+ bl FillWindowPixelBuffer
+ ldr r2, =gUnknown_082EFD94
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r3, 0x8
+ bl sub_80173E0
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl CopyWindowToVram
+ adds r0, r4, 0
+ bl PutWindowTilemap
+ adds r0, r4, 0
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8017118
+
+ thumb_func_start sub_8017168
+sub_8017168: @ 8017168
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl RemoveWindow
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8017168
+
+ thumb_func_start sub_8017178
+sub_8017178: @ 8017178
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ adds r7, r0, 0
+ adds r5, r1, 0
+ mov r9, r2
+ ldrb r4, [r7]
+ cmp r4, 0
+ beq _08017194
+ cmp r4, 0x1
+ beq _08017228
+ b _0801728E
+_08017194:
+ ldr r0, [r3]
+ ldr r1, [r3, 0x4]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r0, [sp, 0x24]
+ bl sub_81DB41C
+ adds r1, r0, 0
+ ldr r2, [sp]
+ lsrs r0, r2, 24
+ cmp r0, r1
+ ble _080171B6
+ lsls r1, 24
+ ldr r0, =0x00ffffff
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp]
+_080171B6:
+ ldr r2, [sp]
+ lsrs r0, r2, 8
+ lsls r0, 24
+ lsrs r0, 24
+ lsrs r1, r2, 24
+ adds r0, r1
+ cmp r0, 0x1D
+ ble _080171DC
+ movs r0, 0x1D
+ subs r0, r1
+ cmp r0, 0
+ bge _080171D0
+ movs r0, 0
+_080171D0:
+ lsls r1, r0, 24
+ lsrs r1, 16
+ ldr r0, =0xffff00ff
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp]
+_080171DC:
+ mov r0, sp
+ bl AddWindow
+ strb r0, [r5]
+ ldrb r0, [r5]
+ movs r1, 0
+ bl NewMenuHelpers_DrawStdWindowFrame
+ ldr r0, =gMultiuseListMenuTemplate
+ adds r2, r0, 0
+ ldr r1, [sp, 0x24]
+ ldm r1!, {r3,r4,r6}
+ stm r2!, {r3,r4,r6}
+ ldm r1!, {r3,r4,r6}
+ stm r2!, {r3,r4,r6}
+ ldrb r1, [r5]
+ strb r1, [r0, 0x10]
+ movs r1, 0
+ movs r2, 0
+ bl ListMenuInit
+ mov r1, r9
+ strb r0, [r1]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl CopyWindowToVram
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ b _0801728E
+ .pool
+_08017228:
+ mov r3, r9
+ ldrb r0, [r3]
+ bl ListMenuHandleInputGetItemId
+ mov r8, r0
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ ands r4, r1
+ cmp r4, 0
+ beq _08017264
+ mov r4, r9
+ ldrb r0, [r4]
+ movs r1, 0
+ movs r2, 0
+ bl sub_81AE6C8
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_819746C
+ ldrb r0, [r5]
+ bl RemoveWindow
+ movs r0, 0
+ strb r0, [r7]
+ mov r0, r8
+ b _08017292
+ .pool
+_08017264:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801728E
+ mov r6, r9
+ ldrb r0, [r6]
+ movs r1, 0
+ movs r2, 0
+ bl sub_81AE6C8
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_819746C
+ ldrb r0, [r5]
+ bl RemoveWindow
+ strb r4, [r7]
+ movs r0, 0x2
+ negs r0, r0
+ b _08017292
+_0801728E:
+ movs r0, 0x1
+ negs r0, r0
+_08017292:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8017178
+
+ thumb_func_start sub_80172A0
+sub_80172A0: @ 80172A0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r10, r2
+ mov r9, r3
+ ldrb r4, [r5]
+ cmp r4, 0x1
+ beq _0801730C
+ cmp r4, 0x1
+ bgt _080172C2
+ cmp r4, 0
+ beq _080172C8
+ b _0801739C
+_080172C2:
+ cmp r4, 0x2
+ beq _0801731C
+ b _0801739C
+_080172C8:
+ ldr r0, =gUnknown_082F0344
+ bl sub_8017118
+ mov r1, r9
+ strb r0, [r1]
+ ldr r0, [sp, 0x20]
+ bl AddWindow
+ strb r0, [r6]
+ ldrb r0, [r6]
+ movs r1, 0
+ bl NewMenuHelpers_DrawStdWindowFrame
+ ldr r0, =gMultiuseListMenuTemplate
+ adds r2, r0, 0
+ ldr r1, [sp, 0x24]
+ ldm r1!, {r3,r4,r7}
+ stm r2!, {r3,r4,r7}
+ ldm r1!, {r3,r4,r7}
+ stm r2!, {r3,r4,r7}
+ ldrb r1, [r6]
+ strb r1, [r0, 0x10]
+ movs r1, 0
+ movs r2, 0x1
+ bl ListMenuInit
+ mov r1, r10
+ strb r0, [r1]
+ b _08017314
+ .pool
+_0801730C:
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl CopyWindowToVram
+_08017314:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _0801739C
+_0801731C:
+ mov r3, r10
+ ldrb r0, [r3]
+ bl ListMenuHandleInputGetItemId
+ adds r1, r0, 0
+ ldr r0, =gMain
+ ldrh r2, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r2
+ cmp r0, 0
+ beq _0801739C
+ cmp r1, 0x8
+ beq _0801733E
+ ands r4, r2
+ mov r8, r4
+ cmp r4, 0
+ beq _08017368
+_0801733E:
+ mov r4, r10
+ ldrb r0, [r4]
+ movs r1, 0
+ movs r2, 0
+ bl sub_81AE6C8
+ ldrb r0, [r6]
+ bl RemoveWindow
+ mov r7, r9
+ ldrb r0, [r7]
+ bl sub_8017168
+ movs r0, 0
+ strb r0, [r5]
+ movs r0, 0x2
+ negs r0, r0
+ b _080173A0
+ .pool
+_08017368:
+ ldr r0, [sp, 0x28]
+ bl sub_8017CB0
+ adds r4, r0, 0
+ cmp r4, 0
+ blt _08017396
+ mov r1, r10
+ ldrb r0, [r1]
+ movs r1, 0
+ movs r2, 0
+ bl sub_81AE6C8
+ ldrb r0, [r6]
+ bl RemoveWindow
+ mov r3, r9
+ ldrb r0, [r3]
+ bl sub_8017168
+ mov r7, r8
+ strb r7, [r5]
+ adds r0, r4, 0
+ b _080173A0
+_08017396:
+ movs r0, 0x7
+ bl PlaySE
+_0801739C:
+ movs r0, 0x1
+ negs r0, r0
+_080173A0:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80172A0
+
+ thumb_func_start sub_80173B0
+sub_80173B0: @ 80173B0
+ push {lr}
+ sub sp, 0xC
+ movs r0, 0x20
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80173B0
+
+ thumb_func_start sub_80173D4
+sub_80173D4: @ 80173D4
+ push {lr}
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80173D4
+
+ thumb_func_start sub_80173E0
+sub_80173E0: @ 80173E0
+ push {r4,r5,lr}
+ sub sp, 0x10
+ ldr r5, [sp, 0x1C]
+ ldr r4, [sp, 0x20]
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 24
+ lsrs r4, 24
+ str r2, [sp]
+ mov r2, sp
+ strb r0, [r2, 0x4]
+ mov r0, sp
+ strb r1, [r0, 0x5]
+ strb r3, [r0, 0x6]
+ strb r5, [r0, 0x7]
+ strb r3, [r0, 0x8]
+ strb r5, [r0, 0x9]
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0xC]
+ ldr r2, =gTextFlags
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ cmp r4, 0x6
+ bls _08017422
+ b _0801756E
+_08017422:
+ lsls r0, r4, 2
+ ldr r1, =_08017434
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08017434:
+ .4byte _08017450
+ .4byte _0801747C
+ .4byte _080174A8
+ .4byte _080174D4
+ .4byte _08017500
+ .4byte _0801752C
+ .4byte _08017544
+_08017450:
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0, 0xA]
+ strb r1, [r0, 0xB]
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r3, 0xF
+ adds r0, r3, 0
+ ands r0, r1
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+ ldrb r1, [r2, 0xD]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0xD]
+ ands r0, r3
+ movs r1, 0x30
+ b _0801756A
+_0801747C:
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0, 0xA]
+ strb r1, [r0, 0xB]
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r3, 0xF
+ adds r0, r3, 0
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+ ldrb r1, [r2, 0xD]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0xD]
+ ands r0, r3
+ movs r1, 0x50
+ b _0801756A
+_080174A8:
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0, 0xA]
+ strb r1, [r0, 0xB]
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r3, 0xF
+ adds r0, r3, 0
+ ands r0, r1
+ movs r1, 0x60
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+ ldrb r1, [r2, 0xD]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0xD]
+ ands r0, r3
+ movs r1, 0x70
+ b _0801756A
+_080174D4:
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0, 0xA]
+ strb r1, [r0, 0xB]
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r3, 0xF
+ adds r0, r3, 0
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+ ldrb r1, [r2, 0xD]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0xD]
+ ands r0, r3
+ movs r1, 0x30
+ b _0801756A
+_08017500:
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0, 0xA]
+ strb r1, [r0, 0xB]
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r3, 0xF
+ adds r0, r3, 0
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+ ldrb r1, [r2, 0xD]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2, 0xD]
+ ands r0, r3
+ movs r1, 0x30
+ b _0801756A
+_0801752C:
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0, 0xA]
+ strb r1, [r0, 0xB]
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r4, 0xF
+ movs r3, 0xF
+ adds r0, r3, 0
+ ands r0, r1
+ movs r1, 0x70
+ b _0801755A
+_08017544:
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0, 0xA]
+ strb r1, [r0, 0xB]
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r4, 0xF
+ movs r3, 0xF
+ adds r0, r3, 0
+ ands r0, r1
+ movs r1, 0xE0
+_0801755A:
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+ mov r1, sp
+ ldrb r0, [r1, 0xD]
+ orrs r0, r4
+ strb r0, [r1, 0xD]
+ ands r0, r3
+ movs r1, 0x90
+_0801756A:
+ orrs r0, r1
+ strb r0, [r2, 0xD]
+_0801756E:
+ mov r0, sp
+ movs r1, 0xFF
+ movs r2, 0
+ bl AddTextPrinter
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80173E0
+
+ thumb_func_start sub_8017580
+sub_8017580: @ 8017580
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0
+ beq _080175D8
+ ldr r2, =gUnknown_082F045C
+ mov r8, r2
+ movs r5, 0
+ mov r9, r5
+ movs r6, 0x4
+ negs r6, r6
+ mov r12, r6
+ adds r2, r0, 0
+ adds r2, 0x18
+ adds r4, r0, 0
+ movs r7, 0xFF
+ mov r10, r7
+ adds r3, r1, 0
+_080175AC:
+ adds r1, r4, 0
+ mov r0, r8
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ mov r0, r10
+ strh r0, [r2]
+ ldrb r1, [r2, 0x2]
+ mov r0, r12
+ ands r0, r1
+ movs r1, 0x5
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r2, 0x2]
+ mov r5, r9
+ strb r5, [r2, 0x3]
+ adds r2, 0x20
+ adds r4, 0x20
+ subs r3, 0x1
+ cmp r3, 0
+ bne _080175AC
+_080175D8:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8017580
+
+ thumb_func_start sub_80175EC
+sub_80175EC: @ 80175EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r1, =gUnknown_082F045C
+ mov r12, r1
+ movs r5, 0x2
+ negs r5, r5
+ mov r8, r5
+ adds r2, r0, 0
+ adds r2, 0x18
+ adds r3, r0, 0
+ movs r4, 0x3
+_08017604:
+ adds r1, r3, 0
+ mov r0, r12
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldrb r1, [r2]
+ mov r0, r8
+ ands r0, r1
+ strb r0, [r2]
+ adds r2, 0x1C
+ adds r3, 0x1C
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08017604
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80175EC
+
+ thumb_func_start sub_8017630
+sub_8017630: @ 8017630
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ movs r2, 0
+ adds r4, r5, 0x2
+ adds r3, r6, 0x2
+_0801763C:
+ adds r0, r4, r2
+ adds r1, r3, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08017664
+ adds r2, 0x1
+ cmp r2, 0x1
+ ble _0801763C
+ movs r2, 0
+ adds r4, r5, 0
+ adds r4, 0x10
+ adds r3, r6, 0
+ adds r3, 0x10
+_08017658:
+ adds r0, r4, r2
+ adds r1, r3, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _08017668
+_08017664:
+ movs r0, 0x1
+ b _08017670
+_08017668:
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _08017658
+ movs r0, 0
+_08017670:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8017630
+
+ thumb_func_start sub_8017678
+sub_8017678: @ 8017678
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldrb r3, [r5, 0xA]
+ movs r0, 0x7F
+ ldrb r2, [r6, 0xA]
+ adds r1, r0, 0
+ ands r1, r3
+ ands r0, r2
+ cmp r1, r0
+ bne _080176DC
+ movs r0, 0x80
+ adds r1, r0, 0
+ ands r1, r3
+ ands r0, r2
+ cmp r1, r0
+ bne _080176DC
+ movs r2, 0
+ adds r4, r5, 0x4
+ adds r3, r6, 0x4
+_080176A0:
+ adds r0, r4, r2
+ adds r1, r3, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080176DC
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080176A0
+ ldrh r2, [r5, 0x8]
+ ldr r0, =0x000003ff
+ ldrh r3, [r6, 0x8]
+ adds r1, r0, 0
+ ands r1, r2
+ ands r0, r3
+ cmp r1, r0
+ bne _080176DC
+ ldrb r2, [r5, 0x9]
+ movs r0, 0xFC
+ ldrb r3, [r6, 0x9]
+ adds r1, r0, 0
+ ands r1, r2
+ ands r0, r3
+ cmp r1, r0
+ bne _080176DC
+ movs r0, 0
+ b _080176DE
+ .pool
+_080176DC:
+ movs r0, 0x1
+_080176DE:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8017678
+
+ thumb_func_start sub_80176E4
+sub_80176E4: @ 80176E4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ movs r7, 0xFF
+ movs r6, 0
+ adds r4, r1, 0
+ adds r4, 0x18
+ adds r5, r1, 0
+_080176F6:
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0801771E
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_8017630
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801771E
+ lsls r0, r6, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r4]
+ movs r2, 0x2
+ negs r2, r2
+ adds r1, r2, 0
+ ands r0, r1
+ strb r0, [r4]
+_0801771E:
+ adds r4, 0x1C
+ adds r5, 0x1C
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080176F6
+ adds r0, r7, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80176E4
+
+ thumb_func_start sub_8017734
+sub_8017734: @ 8017734
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r3, r0, 0
+ mov r8, r1
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldrb r1, [r1, 0x18]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080177A8
+ movs r5, 0
+ cmp r5, r6
+ bge _080177A8
+ movs r0, 0x4
+ negs r0, r0
+ mov r9, r0
+ movs r1, 0x2
+ negs r1, r1
+ mov r12, r1
+ adds r2, r3, 0
+ adds r2, 0x18
+ adds r1, r3, 0
+_08017766:
+ ldrb r0, [r2, 0x2]
+ movs r3, 0x3
+ ands r3, r0
+ cmp r3, 0
+ bne _0801779E
+ mov r0, r8
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ strh r3, [r2]
+ ldrb r1, [r2, 0x2]
+ mov r0, r9
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ movs r0, 0x40
+ strb r0, [r2, 0x3]
+ mov r0, r8
+ ldrb r1, [r0, 0x18]
+ mov r0, r12
+ ands r0, r1
+ mov r1, r8
+ strb r0, [r1, 0x18]
+ lsls r0, r5, 24
+ lsrs r0, 24
+ b _080177AA
+_0801779E:
+ adds r2, 0x20
+ adds r1, 0x20
+ adds r5, 0x1
+ cmp r5, r6
+ blt _08017766
+_080177A8:
+ movs r0, 0xFF
+_080177AA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8017734
+
+ thumb_func_start sub_80177B8
+sub_80177B8: @ 80177B8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ adds r4, r1, 0
+ adds r6, r3, 0
+ ldr r3, [sp, 0x2C]
+ ldr r1, [sp, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r5, =gStringVar4
+ adds r1, 0x1
+ adds r0, r5, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r1, =gText_Colon
+ adds r0, r5, 0
+ bl StringAppend
+ str r7, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ mov r0, r8
+ movs r1, 0x1
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_80173E0
+ adds r4, 0x12
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r6, 0xA]
+ lsls r0, 25
+ lsrs r2, r0, 25
+ ldrb r1, [r6, 0x1A]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _08017884
+ movs r0, 0x40
+ ands r2, r0
+ cmp r2, 0
+ bne _08017884
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_8018404
+ str r7, [sp]
+ mov r0, r9
+ str r0, [sp, 0x4]
+ mov r0, r8
+ movs r1, 0x1
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_80173E0
+ ldrb r1, [r6, 0x2]
+ ldrb r0, [r6, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ add r0, sp, 0x8
+ movs r2, 0x2
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ ldr r1, =gText_UnkCtrlCodeF907
+ adds r0, r5, 0
+ bl StringCopy
+ adds r0, r5, 0
+ add r1, sp, 0x8
+ bl StringAppend
+ movs r0, 0x1
+ adds r1, r5, 0
+ movs r2, 0x88
+ bl GetStringRightAlignXOffset
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ str r7, [sp]
+ mov r0, r9
+ str r0, [sp, 0x4]
+ mov r0, r8
+ movs r1, 0x1
+ adds r2, r5, 0
+ bl sub_80173E0
+_08017884:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80177B8
+
+ thumb_func_start sub_80178A0
+sub_80178A0: @ 80178A0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ adds r5, r3, 0
+ ldr r3, [sp, 0x2C]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r7, r3, 24
+ ldrb r1, [r5, 0x1A]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0801792A
+ ldr r4, =gStringVar4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8018404
+ mov r0, r8
+ str r0, [sp]
+ str r7, [sp, 0x4]
+ mov r0, r9
+ movs r1, 0x1
+ adds r2, r4, 0
+ adds r3, r6, 0
+ bl sub_80173E0
+ ldrb r1, [r5, 0x2]
+ ldrb r0, [r5, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ add r0, sp, 0x8
+ movs r2, 0x2
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ ldr r1, =gText_UnkCtrlCodeF907
+ adds r0, r4, 0
+ bl StringCopy
+ adds r0, r4, 0
+ add r1, sp, 0x8
+ bl StringAppend
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x68
+ bl GetStringRightAlignXOffset
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r8
+ str r0, [sp]
+ str r7, [sp, 0x4]
+ mov r0, r9
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl sub_80173E0
+_0801792A:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80178A0
+
+ thumb_func_start sub_8017940
+sub_8017940: @ 8017940
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x9
+ bne _08017978
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ bne _08017978
+ ldr r0, =gPlayerAvatar
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0x2
+ beq _0801796E
+ cmp r0, 0
+ bne _08017978
+_0801796E:
+ movs r0, 0x1
+ b _0801797A
+ .pool
+_08017978:
+ movs r0, 0
+_0801797A:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8017940
+
+ thumb_func_start sub_8017984
+sub_8017984: @ 8017984
+ push {lr}
+ cmp r0, 0x4
+ beq _0801799C
+ cmp r0, 0x4
+ ble _080179A4
+ cmp r0, 0x5
+ beq _08017998
+ cmp r0, 0x8
+ beq _080179A0
+ b _080179A4
+_08017998:
+ movs r0, 0x1
+ b _080179A6
+_0801799C:
+ movs r0, 0x2
+ b _080179A6
+_080179A0:
+ movs r0, 0x3
+ b _080179A6
+_080179A4:
+ movs r0, 0
+_080179A6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8017984
+
+ thumb_func_start sub_80179AC
+sub_80179AC: @ 80179AC
+ push {r4,lr}
+ sub sp, 0x20
+ adds r4, r0, 0
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_8018404
+ adds r4, 0x2
+ adds r0, r4, 0
+ bl sub_8015658
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, sp
+ bl sub_800E540
+ add sp, 0x20
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80179AC
+
+ thumb_func_start sub_80179D4
+sub_80179D4: @ 80179D4
+ push {r4-r6,lr}
+ adds r6, r3, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r2, 24
+ lsrs r2, 19
+ adds r5, r0, r2
+ ldrb r1, [r5, 0xA]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08017A4C
+ cmp r4, 0
+ bne _08017A4C
+ ldr r4, =gStringVar1
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8018404
+ adds r0, r5, 0x2
+ bl sub_8015658
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl sub_800E540
+ adds r2, r0, 0
+ ldrb r1, [r5, 0xA]
+ movs r0, 0x7F
+ ands r0, r1
+ cmp r0, 0x45
+ bne _08017A38
+ ldr r0, =gStringVar4
+ ldr r3, =gUnknown_082EE6B8
+ lsls r1, r6, 2
+ lsls r2, 3
+ adds r1, r2
+ adds r1, r3
+ ldr r1, [r1]
+ bl StringExpandPlaceholders
+ movs r0, 0x2
+ b _08017B2A
+ .pool
+_08017A38:
+ ldr r0, =gUnknown_082EE17C
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl sub_8017020
+ movs r0, 0x1
+ b _08017B2A
+ .pool
+_08017A4C:
+ ldr r0, =gStringVar1
+ adds r1, r5, 0
+ bl sub_8018404
+ cmp r4, 0
+ beq _08017A62
+ adds r0, r5, r4
+ ldrb r0, [r0, 0x3]
+ lsrs r6, r0, 3
+ movs r0, 0x1
+ ands r6, r0
+_08017A62:
+ ldrb r0, [r5, 0xA]
+ lsls r0, 25
+ lsrs r0, 25
+ movs r1, 0x3F
+ ands r1, r0
+ cmp r1, 0x4
+ beq _08017AB0
+ cmp r1, 0x4
+ bgt _08017A80
+ cmp r1, 0x1
+ beq _08017A8A
+ b _08017B20
+ .pool
+_08017A80:
+ cmp r1, 0x5
+ beq _08017AD0
+ cmp r1, 0x8
+ beq _08017AF4
+ b _08017B20
+_08017A8A:
+ ldr r5, =gStringVar4
+ ldr r4, =gUnknown_082EEEAC
+ bl Random
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ lsrs r1, 14
+ lsls r0, r6, 4
+ adds r1, r0
+ adds r1, r4
+ ldr r1, [r1]
+ b _08017B0E
+ .pool
+_08017AB0:
+ ldr r5, =gStringVar4
+ ldr r4, =gUnknown_082EF1CC
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ lsls r0, 2
+ lsls r1, r6, 4
+ b _08017B08
+ .pool
+_08017AD0:
+ ldr r5, =gStringVar4
+ ldr r4, =gUnknown_082EF010
+ bl Random
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ lsrs r1, 14
+ lsls r0, r6, 4
+ adds r1, r0
+ adds r1, r4
+ ldr r1, [r1]
+ b _08017B0E
+ .pool
+_08017AF4:
+ ldr r5, =gStringVar4
+ ldr r4, =gUnknown_082EF100
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ lsls r0, 2
+ lsls r1, r6, 3
+_08017B08:
+ adds r0, r1
+ adds r0, r4
+ ldr r1, [r0]
+_08017B0E:
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ b _08017B28
+ .pool
+_08017B20:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_082EE6C8
+ bl StringExpandPlaceholders
+_08017B28:
+ movs r0, 0
+_08017B2A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80179D4
+
+ thumb_func_start nullsub_14
+nullsub_14: @ 8017B38
+ bx lr
+ thumb_func_end nullsub_14
+
+ thumb_func_start sub_8017B3C
+sub_8017B3C: @ 8017B3C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ ldr r4, [sp, 0x28]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldrh r0, [r2, 0x8]
+ lsls r0, 22
+ lsrs r0, 22
+ mov r8, r0
+ ldrb r0, [r2, 0x9]
+ lsrs r7, r0, 2
+ ldrb r0, [r2, 0xB]
+ lsrs r0, 1
+ mov r9, r0
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ adds r0, r6, 0
+ movs r1, 0x1
+ adds r2, r3, 0
+ movs r3, 0x8
+ bl sub_80173E0
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r8, r0
+ bne _08017B94
+ ldr r2, =gUnknown_082EF7D0
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ adds r0, r6, 0
+ movs r1, 0x1
+ movs r3, 0x44
+ bl sub_80173E0
+ b _08017BD4
+ .pool
+_08017B94:
+ adds r1, r7, 0x1
+ adds r0, r6, 0
+ movs r2, 0x44
+ adds r3, r5, 0
+ bl blit_move_info_icon
+ movs r0, 0xB
+ mov r2, r8
+ muls r2, r0
+ ldr r0, =gSpeciesNames
+ adds r2, r0
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ adds r0, r6, 0
+ movs r1, 0x1
+ movs r3, 0x76
+ bl sub_80173E0
+ add r0, sp, 0x8
+ mov r1, r9
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ adds r0, r6, 0
+ movs r1, 0x1
+ add r2, sp, 0x8
+ movs r3, 0xC6
+ bl sub_80173E0
+_08017BD4:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8017B3C
+
+ thumb_func_start sub_8017BE8
+sub_8017BE8: @ 8017BE8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r2, 24
+ lsrs r7, r2, 24
+ ldr r0, =gUnknown_02022C30
+ ldr r0, [r0]
+ mov r8, r0
+ movs r0, 0x3
+ negs r0, r0
+ cmp r4, r0
+ bne _08017C6C
+ ldr r0, =gUnknown_082F03A4
+ ldrb r0, [r0, 0x14]
+ lsls r0, 28
+ lsrs r0, 28
+ cmp r7, r0
+ bne _08017C6C
+ bl sub_800F7DC
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x8]
+ ldr r0, =0x000003ff
+ ands r0, r1
+ cmp r0, 0
+ beq _08017CA0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ movs r0, 0x5
+ str r0, [sp]
+ mov r0, r9
+ adds r1, r7, 0
+ bl sub_8017B3C
+ b _08017CA0
+ .pool
+_08017C4C:
+ mov r0, r12
+ adds r1, r0, r4
+ add r0, sp, 0x4
+ bl sub_8018404
+ mov r0, r8
+ ldr r2, [r0]
+ adds r2, r4
+ movs r0, 0x6
+ str r0, [sp]
+ mov r0, r9
+ adds r1, r7, 0
+ add r3, sp, 0x4
+ bl sub_8017B3C
+ b _08017CA0
+_08017C6C:
+ movs r5, 0
+ movs r1, 0
+ mov r2, r8
+ ldr r2, [r2]
+ mov r12, r2
+ adds r2, 0x8
+ movs r3, 0
+ adds r6, r4, 0x1
+_08017C7C:
+ ldrb r0, [r2, 0x12]
+ lsls r0, 30
+ lsrs r0, 30
+ adds r4, r3, 0
+ cmp r0, 0x1
+ bne _08017C92
+ ldrh r0, [r2]
+ lsls r0, 22
+ cmp r0, 0
+ beq _08017C92
+ adds r5, 0x1
+_08017C92:
+ cmp r5, r6
+ beq _08017C4C
+ adds r2, 0x20
+ adds r3, 0x20
+ adds r1, 0x1
+ cmp r1, 0x7
+ ble _08017C7C
+_08017CA0:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8017BE8
+
+ thumb_func_start sub_8017CB0
+sub_8017CB0: @ 8017CB0
+ push {r4-r7,lr}
+ movs r4, 0
+ movs r3, 0
+ movs r7, 0x3
+ ldr r6, =0x000003ff
+ adds r2, r0, 0
+ adds r2, 0x8
+ adds r5, r1, 0x1
+_08017CC0:
+ ldrb r1, [r2, 0x12]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0x1
+ bne _08017CD6
+ ldrh r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08017CD6
+ adds r4, 0x1
+_08017CD6:
+ cmp r4, r5
+ bne _08017CE4
+ adds r0, r3, 0
+ b _08017CF0
+ .pool
+_08017CE4:
+ adds r2, 0x20
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _08017CC0
+ movs r0, 0x1
+ negs r0, r0
+_08017CF0:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8017CB0
+
+ thumb_func_start sub_8017CF8
+sub_8017CF8: @ 8017CF8
+ lsls r0, 5
+ adds r0, r1
+ ldrb r0, [r0, 0xB]
+ lsls r0, 31
+ lsrs r0, 31
+ bx lr
+ thumb_func_end sub_8017CF8
+
+ thumb_func_start sub_8017D04
+sub_8017D04: @ 8017D04
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ bne _08017D44
+ movs r4, 0
+ b _08017D2E
+_08017D14:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x41
+ bl GetMonData
+ adds r1, r0, 0
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ beq _08017D74
+ adds r4, 0x1
+_08017D2E:
+ ldr r0, =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08017D14
+ movs r0, 0x2
+ b _08017D90
+ .pool
+_08017D44:
+ movs r4, 0
+ ldr r0, =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ bge _08017D8E
+ ldr r6, =gBaseStats
+_08017D50:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x41
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r0, r6
+ ldrb r0, [r1, 0x6]
+ cmp r0, r5
+ beq _08017D74
+ ldrb r0, [r1, 0x7]
+ cmp r0, r5
+ bne _08017D84
+_08017D74:
+ movs r0, 0
+ b _08017D90
+ .pool
+_08017D84:
+ adds r4, 0x1
+ ldr r0, =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08017D50
+_08017D8E:
+ movs r0, 0x1
+_08017D90:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8017D04
+
+ thumb_func_start sub_8017D9C
+sub_8017D9C: @ 8017D9C
+ push {lr}
+ adds r3, r0, 0
+ cmp r1, 0x44
+ beq _08017DD8
+ cmp r1, 0x44
+ bgt _08017DAE
+ cmp r1, 0x41
+ beq _08017DB8
+ b _08017DF6
+_08017DAE:
+ cmp r1, 0x45
+ beq _08017DC8
+ cmp r1, 0x48
+ beq _08017DE8
+ b _08017DF6
+_08017DB8:
+ ldr r0, =gUnknown_082EEA68
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r1, [r1]
+ b _08017DDA
+ .pool
+_08017DC8:
+ ldr r0, =gUnknown_082EED3C
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r1, [r1]
+ b _08017DDA
+ .pool
+_08017DD8:
+ ldr r1, =gUnknown_082EF7B0
+_08017DDA:
+ adds r0, r3, 0
+ bl StringExpandPlaceholders
+ b _08017DF6
+ .pool
+_08017DE8:
+ ldr r0, =gUnknown_082EEB08
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r3, 0
+ bl StringExpandPlaceholders
+_08017DF6:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8017D9C
+
+ thumb_func_start sub_8017E00
+sub_8017E00: @ 8017E00
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r6, r4, 0
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, =gLinkPlayers
+ movs r0, 0x1
+ adds r1, r3, 0
+ eors r1, r0
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x13]
+ cmp r4, 0x44
+ beq _08017E54
+ cmp r4, 0x44
+ bgt _08017E38
+ cmp r4, 0x41
+ beq _08017E3E
+ b _08017E94
+ .pool
+_08017E38:
+ cmp r6, 0x45
+ beq _08017E78
+ b _08017E94
+_08017E3E:
+ ldr r2, =gUnknown_082EE984
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 3
+ adds r1, r0
+ b _08017E66
+ .pool
+_08017E54:
+ ldr r2, =gUnknown_082EE984
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 3
+ adds r1, r0
+ adds r2, 0x8
+_08017E66:
+ adds r1, r2
+ ldr r1, [r1]
+ adds r0, r5, 0
+ bl StringCopy
+ b _08017E94
+ .pool
+_08017E78:
+ ldr r2, =gUnknown_082EE984
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 3
+ adds r1, r0
+ adds r2, 0x4
+ adds r1, r2
+ ldr r1, [r1]
+ adds r0, r5, 0
+ bl StringCopy
+_08017E94:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8017E00
+
+ thumb_func_start sub_8017EA0
+sub_8017EA0: @ 8017EA0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ movs r2, 0
+ mov r8, r2
+ ldrh r0, [r5]
+ subs r0, 0x40
+ cmp r0, 0x8
+ bls _08017EBA
+ b _08017FC6
+_08017EBA:
+ lsls r0, 2
+ ldr r1, =_08017EC8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08017EC8:
+ .4byte _08017FBC
+ .4byte _08017EEC
+ .4byte _08017FC6
+ .4byte _08017FC6
+ .4byte _08017EFC
+ .4byte _08017EF4
+ .4byte _08017FC6
+ .4byte _08017FC6
+ .4byte _08017FAC
+_08017EEC:
+ ldr r1, =gUnknown_082EE3DC
+ b _08017FAE
+ .pool
+_08017EF4:
+ ldr r1, =gUnknown_082EE430
+ b _08017FAE
+ .pool
+_08017EFC:
+ adds r0, r6, 0
+ adds r0, 0x58
+ ldr r4, =gUnknown_02022C40
+ ldrh r1, [r4, 0xC]
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r0, r6, 0
+ adds r0, 0x68
+ ldrh r2, [r4, 0xA]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ movs r4, 0
+ b _08017F2E
+ .pool
+_08017F2C:
+ adds r4, 0x1
+_08017F2E:
+ cmp r4, 0x3
+ bgt _08017F64
+ ldr r0, =gUnknown_03007890
+ ldr r0, [r0]
+ lsls r1, r4, 5
+ adds r0, r1
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0x2
+ bne _08017F2C
+ ldrh r1, [r5, 0x4]
+ adds r0, r6, 0
+ adds r0, 0x78
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldrh r1, [r5, 0x2]
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, =gSpeciesNames
+ adds r1, r0
+ adds r0, r6, 0
+ adds r0, 0x88
+ bl StringCopy
+ ldrh r5, [r5, 0x2]
+ mov r8, r5
+_08017F64:
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r8, r0
+ bne _08017F84
+ ldr r1, =gUnknown_082EE4F0
+ adds r0, r7, 0
+ bl StringCopy
+ b _08017FB4
+ .pool
+_08017F84:
+ movs r4, 0
+ adds r5, r6, 0
+ adds r5, 0x58
+_08017F8A:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ adds r1, r5, 0
+ bl UnkTextUtil_SetPtrI
+ adds r5, 0x10
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08017F8A
+ ldr r1, =gUnknown_082EE47C
+ adds r0, r7, 0
+ bl UnkTextUtil_StringExpandPlaceholders
+ b _08017FB4
+ .pool
+_08017FAC:
+ ldr r1, =gUnknown_082EE380
+_08017FAE:
+ adds r0, r7, 0
+ bl StringExpandPlaceholders
+_08017FB4:
+ movs r2, 0x1
+ b _08017FC6
+ .pool
+_08017FBC:
+ ldr r1, =gUnknown_082EE544
+ adds r0, r7, 0
+ bl StringExpandPlaceholders
+ movs r2, 0x2
+_08017FC6:
+ adds r0, r2, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8017EA0
+
+ thumb_func_start sub_8017FD8
+sub_8017FD8: @ 8017FD8
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, =gRecvCmds
+ ldrh r1, [r0, 0x2]
+ cmp r1, 0
+ beq _08017FFC
+ cmp r1, 0x51
+ beq _08017FEC
+ cmp r1, 0x52
+ bne _08017FFC
+_08017FEC:
+ adds r0, r2, 0
+ adds r0, 0x98
+ strh r1, [r0]
+ movs r0, 0x1
+ b _08017FFE
+ .pool
+_08017FFC:
+ movs r0, 0
+_08017FFE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8017FD8
+
+ thumb_func_start InUnionRoom
+InUnionRoom: @ 8018004
+ push {lr}
+ movs r2, 0
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldrh r1, [r0, 0x4]
+ ldr r0, =0x00003c19
+ cmp r1, r0
+ bne _08018016
+ movs r2, 0x1
+_08018016:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end InUnionRoom
+
+ thumb_func_start sub_8018024
+sub_8018024: @ 8018024
+ push {r4-r6,lr}
+ movs r6, 0
+ movs r5, 0
+ ldr r0, =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _08018064
+_08018032:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ cmp r0, 0x1E
+ bhi _0801805A
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _0801805A
+ adds r6, 0x1
+_0801805A:
+ adds r5, 0x1
+ ldr r0, =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _08018032
+_08018064:
+ cmp r6, 0x1
+ bgt _08018074
+ movs r0, 0
+ b _08018076
+ .pool
+_08018074:
+ movs r0, 0x1
+_08018076:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8018024
+
+ thumb_func_start sub_801807C
+sub_801807C: @ 801807C
+ movs r1, 0
+ strh r1, [r0]
+ strh r1, [r0, 0x2]
+ str r1, [r0, 0x4]
+ strh r1, [r0, 0xA]
+ strh r1, [r0, 0xC]
+ strh r1, [r0, 0xE]
+ strh r1, [r0, 0x10]
+ str r1, [r0, 0x14]
+ bx lr
+ thumb_func_end sub_801807C
+
+ thumb_func_start sub_8018090
+sub_8018090: @ 8018090
+ push {lr}
+ ldr r0, =gUnknown_02022C40
+ bl sub_801807C
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8018090
+
+ thumb_func_start sub_80180A0
+sub_80180A0: @ 80180A0
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ movs r1, 0x64
+ adds r4, r0, 0
+ muls r4, r1
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ strh r0, [r5, 0xA]
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ strh r0, [r5, 0xC]
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [r5, 0x4]
+ ldrh r1, [r5, 0xA]
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ beq _080180E0
+ movs r0, 0
+ b _080180E2
+ .pool
+_080180E0:
+ movs r0, 0x1
+_080180E2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80180A0
+
+ thumb_func_start sub_80180E8
+sub_80180E8: @ 80180E8
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ movs r1, 0x64
+ adds r4, r0, 0
+ muls r4, r1
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ strh r0, [r5, 0xE]
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ strh r0, [r5, 0x10]
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [r5, 0x14]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80180E8
+
+ thumb_func_start sub_8018120
+sub_8018120: @ 8018120
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r1, 24
+ movs r2, 0
+ mov r8, r2
+ cmp r1, 0
+ bne _0801813E
+ ldrh r7, [r0, 0xA]
+ ldr r6, [r0, 0x4]
+ b _08018142
+_08018136:
+ lsls r0, r5, 16
+ lsrs r0, 16
+ mov r8, r0
+ b _08018176
+_0801813E:
+ ldrh r7, [r0, 0xE]
+ ldr r6, [r0, 0x14]
+_08018142:
+ movs r5, 0
+ b _0801816E
+_08018146:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ cmp r0, r6
+ bne _0801816C
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r7
+ beq _08018136
+_0801816C:
+ adds r5, 0x1
+_0801816E:
+ ldr r0, =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _08018146
+_08018176:
+ mov r0, r8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8018120
+
+ thumb_func_start sub_801818C
+sub_801818C: @ 801818C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80173B0
+ bl ScriptContext2_Disable
+ bl sub_8098524
+ ldr r1, =gUnknown_02022C2C
+ movs r0, 0
+ strb r0, [r1]
+ cmp r4, 0
+ beq _080181BC
+ ldr r2, =gUnknown_02022C40
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r2, 0xA]
+ ldrh r2, [r2, 0xC]
+ bl sub_8010FCC
+ movs r0, 0x40
+ movs r1, 0
+ movs r2, 0
+ bl sub_8011090
+_080181BC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801818C
+
+ thumb_func_start sub_80181CC
+sub_80181CC: @ 80181CC
+ push {lr}
+ bl ScriptContext2_Enable
+ bl ScriptFreezeMapObjects
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80181CC
+
+ thumb_func_start sub_80181DC
+sub_80181DC: @ 80181DC
+ push {r4,lr}
+ movs r3, 0x80
+ movs r2, 0
+ ldr r4, [r0, 0xC]
+_080181E4:
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r1, r4, r0
+ ldrb r0, [r1, 0x18]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0801820C
+ ldrb r0, [r1, 0xB]
+ lsls r0, 31
+ lsrs r0, 31
+ lsls r0, 3
+ orrs r3, r0
+ ldrb r1, [r1, 0x2]
+ movs r0, 0x7
+ ands r0, r1
+ orrs r3, r0
+ lsls r0, r3, 24
+ lsrs r3, r0, 24
+ b _08018216
+_0801820C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080181E4
+_08018216:
+ adds r0, r3, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80181DC
+
+ thumb_func_start sub_8018220
+sub_8018220: @ 8018220
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ bl GetMultiplayerId
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r1, r0
+ ldr r0, =gUnknown_02039B58
+ adds r1, r0
+ mov r8, r1
+ bl UnkTextUtil_Reset
+ mov r6, r9
+ adds r6, 0xC0
+ bl sub_8068BB0
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xD
+ muls r1, r0
+ ldr r0, =gTrainerClassNames
+ adds r1, r0
+ adds r0, r6, 0
+ bl StringCopy
+ movs r0, 0
+ adds r1, r6, 0
+ bl UnkTextUtil_SetPtrI
+ mov r1, r8
+ adds r1, 0x30
+ movs r0, 0x1
+ bl UnkTextUtil_SetPtrI
+ movs r4, 0xBA
+ lsls r4, 1
+ add r4, r9
+ ldr r1, =gUnknown_082EFF50
+ mov r2, r8
+ ldrb r0, [r2, 0x1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringCopy
+ movs r0, 0x2
+ adds r1, r4, 0
+ bl UnkTextUtil_SetPtrI
+ mov r5, r9
+ adds r5, 0xDE
+ mov r0, r8
+ ldrh r1, [r0, 0xC]
+ adds r0, r5, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x3
+ adds r1, r5, 0
+ bl UnkTextUtil_SetPtrI
+ movs r2, 0xED
+ add r2, r9
+ mov r10, r2
+ mov r0, r8
+ ldrh r1, [r0, 0x10]
+ mov r0, r10
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ mov r4, r9
+ adds r4, 0xFC
+ mov r2, r8
+ ldrh r1, [r2, 0x12]
+ adds r0, r4, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x4
+ mov r1, r10
+ bl UnkTextUtil_SetPtrI
+ movs r0, 0x5
+ adds r1, r4, 0
+ bl UnkTextUtil_SetPtrI
+ movs r4, 0xD2
+ lsls r4, 1
+ add r4, r9
+ ldr r1, =gUnknown_082EFF64
+ adds r0, r4, 0
+ bl UnkTextUtil_StringExpandPlaceholders
+ ldr r0, =gStringVar4
+ adds r1, r4, 0
+ bl StringCopy
+ mov r0, r8
+ ldrh r1, [r0, 0x14]
+ ldr r4, =0x0000270f
+ cmp r1, r4
+ ble _0801830C
+ adds r1, r4, 0
+_0801830C:
+ adds r0, r6, 0
+ movs r2, 0
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ movs r0, 0
+ adds r1, r6, 0
+ bl UnkTextUtil_SetPtrI
+ mov r2, r8
+ ldrh r1, [r2, 0x16]
+ cmp r1, r4
+ ble _08018328
+ adds r1, r4, 0
+_08018328:
+ mov r4, r9
+ adds r4, 0xCF
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x2
+ adds r1, r4, 0
+ bl UnkTextUtil_SetPtrI
+ mov r0, r8
+ ldrh r1, [r0, 0x20]
+ adds r0, r5, 0
+ movs r2, 0
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x3
+ adds r1, r5, 0
+ bl UnkTextUtil_SetPtrI
+ movs r7, 0
+ movs r6, 0x80
+ lsls r6, 19
+ mov r5, r8
+ adds r5, 0x28
+ mov r4, r10
+_08018360:
+ ldrh r1, [r5]
+ adds r0, r4, 0
+ bl CopyEasyChatWord
+ lsrs r0, r6, 24
+ adds r1, r4, 0
+ bl UnkTextUtil_SetPtrI
+ movs r2, 0x80
+ lsls r2, 17
+ adds r6, r2
+ adds r5, 0x2
+ adds r4, 0xF
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _08018360
+ movs r4, 0xD2
+ lsls r4, 1
+ add r4, r9
+ ldr r1, =gUnknown_082EFFA4
+ adds r0, r4, 0
+ bl UnkTextUtil_StringExpandPlaceholders
+ ldr r5, =gStringVar4
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl StringAppend
+ ldr r0, [sp]
+ cmp r0, 0x1
+ bne _080183D0
+ ldr r1, =gUnknown_082F0020
+ adds r0, r4, 0
+ bl UnkTextUtil_StringExpandPlaceholders
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl StringAppend
+ b _080183F0
+ .pool
+_080183D0:
+ ldr r2, [sp]
+ cmp r2, 0
+ bne _080183F0
+ ldr r0, =gUnknown_082F0018
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r1, 2
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r4, 0
+ bl UnkTextUtil_StringExpandPlaceholders
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl StringAppend
+_080183F0:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8018220
+
+ thumb_func_start sub_8018404
+sub_8018404: @ 8018404
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r1, 0x10
+ bl StringCopy7
+ ldrb r1, [r4]
+ lsls r1, 28
+ lsrs r1, 28
+ adds r0, r5, 0
+ bl ConvertInternationalString
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8018404
+
+ thumb_func_start sub_8018424
+sub_8018424: @ 8018424
+ push {lr}
+ bl ProcessSpriteCopyRequests
+ bl LoadOam
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8018424
+
+ thumb_func_start sub_8018438
+sub_8018438: @ 8018438
+ push {lr}
+ bl RunTasks
+ bl RunTextPrinters
+ bl AnimateSprites
+ bl BuildOamBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8018438
+
+ thumb_func_start sub_8018450
+sub_8018450: @ 8018450
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r7, r0, 0
+ ldr r0, =gMain
+ movs r1, 0x87
+ lsls r1, 3
+ adds r6, r0, r1
+ ldrb r0, [r6]
+ cmp r0, 0x1
+ bne _08018466
+ b _08018574
+_08018466:
+ cmp r0, 0x1
+ bgt _08018474
+ cmp r0, 0
+ beq _08018482
+ b _08018644
+ .pool
+_08018474:
+ cmp r0, 0x2
+ bne _0801847A
+ b _080185F8
+_0801847A:
+ cmp r0, 0x3
+ bne _08018480
+ b _08018618
+_08018480:
+ b _08018644
+_08018482:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ bl ScanlineEffect_Stop
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_082F0598
+ movs r0, 0
+ movs r2, 0x4
+ bl InitBgsFromTemplates
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r4, 0x80
+ lsls r4, 4
+ adds r0, r4, 0
+ bl Alloc
+ adds r1, r0, 0
+ movs r0, 0x3
+ bl SetBgTilemapBuffer
+ adds r0, r4, 0
+ bl Alloc
+ adds r1, r0, 0
+ movs r0, 0x2
+ bl SetBgTilemapBuffer
+ adds r0, r4, 0
+ bl Alloc
+ adds r1, r0, 0
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ adds r0, r4, 0
+ bl Alloc
+ adds r1, r0, 0
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x3
+ bl bgid_upload_textbox_1
+ ldr r0, =gUnknown_082F05A8
+ bl InitWindows
+ bl DeactivateAllTextPrinters
+ movs r1, 0xC0
+ lsls r1, 7
+ movs r0, 0
+ bl ClearGpuRegBits
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ b _08018610
+ .pool
+_08018574:
+ ldr r0, =gUnkTextboxBorderPal
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ movs r0, 0x2
+ bl stdpal_get
+ movs r1, 0xD0
+ movs r2, 0x20
+ bl LoadPalette
+ movs r0, 0xC0
+ bl sub_81978B0
+ movs r0, 0
+ movs r1, 0xA
+ movs r2, 0xE0
+ bl sub_809882C
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0xF0
+ bl box_border_load_tiles_and_pal
+ movs r4, 0x20
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r5, 0x11
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect
+ movs r0, 0x3
+ bl sub_8018798
+ lsls r0, r7, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_80186EC
+ b _08018610
+ .pool
+_080185F8:
+ movs r0, 0x3
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x2
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+_08018610:
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ b _08018644
+_08018618:
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0x3
+ bl ShowBg
+ ldr r0, =0x0000021d
+ bl PlayBGM
+ ldr r0, =sub_8018424
+ bl SetVBlankCallback
+ movs r0, 0xC5
+ bl EnableInterrupts
+ movs r0, 0x1
+ b _08018646
+ .pool
+_08018644:
+ movs r0, 0
+_08018646:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8018450
+
+ thumb_func_start c2_mystery_gift
+c2_mystery_gift: @ 8018650
+ push {lr}
+ movs r0, 0
+ bl sub_8018450
+ cmp r0, 0
+ beq _0801866C
+ ldr r0, =sub_8018438
+ bl SetMainCallback2
+ ldr r1, =gUnknown_02022C60
+ movs r0, 0
+ strb r0, [r1]
+ bl task_add_00_mystery_gift
+_0801866C:
+ bl RunTasks
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end c2_mystery_gift
+
+ thumb_func_start sub_801867C
+sub_801867C: @ 801867C
+ push {lr}
+ movs r0, 0x1
+ bl sub_8018450
+ cmp r0, 0
+ beq _08018698
+ ldr r0, =sub_8018438
+ bl SetMainCallback2
+ ldr r1, =gUnknown_02022C60
+ movs r0, 0x1
+ strb r0, [r1]
+ bl sub_81D5014
+_08018698:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801867C
+
+ thumb_func_start sub_80186A4
+sub_80186A4: @ 80186A4
+ push {lr}
+ ldr r1, =gUnknown_02022C60
+ movs r0, 0
+ strb r0, [r1]
+ bl FreeAllWindowBuffers
+ movs r0, 0
+ bl GetBgTilemapBuffer
+ bl Free
+ movs r0, 0x1
+ bl GetBgTilemapBuffer
+ bl Free
+ movs r0, 0x2
+ bl GetBgTilemapBuffer
+ bl Free
+ movs r0, 0x3
+ bl GetBgTilemapBuffer
+ bl Free
+ ldr r0, =CB2_InitTitleScreen
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80186A4
+
+ thumb_func_start sub_80186EC
+sub_80186EC: @ 80186EC
+ push {r4-r7,lr}
+ sub sp, 0x14
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ cmp r4, 0
+ bne _0801871C
+ ldr r0, =gText_MysteryGift
+ ldr r7, =gText_PickOKCancel
+ cmp r5, 0
+ bne _08018720
+ ldr r7, =gText_PickOKExit
+ b _08018720
+ .pool
+_0801871C:
+ ldr r0, =gJPText_MysteryGift
+ ldr r7, =gJPText_DecideStop
+_08018720:
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ ldr r6, =gUnknown_082F0720
+ str r6, [sp, 0x8]
+ movs r5, 0x1
+ negs r5, r5
+ str r5, [sp, 0xC]
+ str r0, [sp, 0x10]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x4
+ movs r3, 0x1
+ bl AddTextPrinterParameterized2
+ movs r0, 0
+ adds r1, r7, 0
+ movs r2, 0xDE
+ bl GetStringRightAlignXOffset
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r6, [sp, 0x8]
+ str r5, [sp, 0xC]
+ str r7, [sp, 0x10]
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x1
+ bl AddTextPrinterParameterized2
+ movs r0, 0
+ movs r1, 0x2
+ bl CopyWindowToVram
+ movs r0, 0
+ bl PutWindowTilemap
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80186EC
+
+ thumb_func_start sub_8018784
+sub_8018784: @ 8018784
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ movs r2, 0xF
+ bl sub_8098858
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8018784
+
+ thumb_func_start sub_8018798
+sub_8018798: @ 8018798
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ adds r4, r0, 0
+ movs r0, 0
+ mov r9, r0
+ lsls r4, 24
+ lsrs r0, r4, 24
+ movs r1, 0x20
+ str r1, [sp]
+ movs r1, 0x2
+ str r1, [sp, 0x4]
+ movs r1, 0x11
+ str r1, [sp, 0x8]
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect
+ mov r8, r4
+ movs r4, 0x1
+_080187C8:
+ movs r7, 0
+ mov r0, r9
+ adds r0, 0x2
+ movs r1, 0x1
+ add r1, r9
+ mov r10, r1
+ lsls r5, r0, 24
+ movs r6, 0
+_080187D8:
+ mov r1, r9
+ ands r1, r4
+ adds r0, r7, 0
+ ands r0, r4
+ cmp r1, r0
+ beq _080187FC
+ lsrs r2, r6, 24
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ mov r1, r8
+ lsrs r0, r1, 24
+ movs r1, 0x1
+ lsrs r3, r5, 24
+ bl FillBgTilemapBufferRect
+ b _08018812
+_080187FC:
+ lsrs r2, r6, 24
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ mov r1, r8
+ lsrs r0, r1, 24
+ movs r1, 0x2
+ lsrs r3, r5, 24
+ bl FillBgTilemapBufferRect
+_08018812:
+ movs r0, 0x80
+ lsls r0, 17
+ adds r6, r0
+ adds r7, 0x1
+ cmp r7, 0x1F
+ ble _080187D8
+ mov r9, r10
+ mov r1, r9
+ cmp r1, 0x11
+ ble _080187C8
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8018798
+
+ thumb_func_start sub_8018838
+sub_8018838: @ 8018838
+ push {lr}
+ sub sp, 0xC
+ cmp r0, 0
+ beq _08018846
+ cmp r0, 0x1
+ beq _0801885E
+ b _08018876
+_08018846:
+ movs r0, 0x20
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect
+ b _08018876
+_0801885E:
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0x1E
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl FillBgTilemapBufferRect
+_08018876:
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8018838
+
+ thumb_func_start sub_8018884
+sub_8018884: @ 8018884
+ push {r4,lr}
+ sub sp, 0x14
+ adds r1, r0, 0
+ ldr r4, =gStringVar4
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ movs r0, 0x1
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ ldr r0, =gUnknown_082F0728
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0x1
+ bl AddTextPrinterParameterized2
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0xF
+ bl sub_8098858
+ movs r0, 0x1
+ bl PutWindowTilemap
+ movs r0, 0x1
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0x14
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8018884
+
+ thumb_func_start sub_80188DC
+sub_80188DC: @ 80188DC
+ push {lr}
+ movs r0, 0x1
+ bl rbox_fill_rectangle
+ movs r0, 0x1
+ bl ClearWindowTilemap
+ movs r0, 0x1
+ movs r1, 0x1
+ bl CopyWindowToVram
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80188DC
+
+ thumb_func_start mevent_0814257C
+mevent_0814257C: @ 80188F8
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ adds r0, r1, 0
+ ldrb r2, [r4]
+ cmp r2, 0x1
+ beq _08018920
+ cmp r2, 0x1
+ bgt _08018910
+ cmp r2, 0
+ beq _0801891A
+ b _08018980
+_08018910:
+ cmp r2, 0x2
+ beq _08018954
+ cmp r2, 0xFF
+ beq _0801897C
+ b _08018980
+_0801891A:
+ bl sub_8018884
+ b _08018944
+_08018920:
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, =gUnknown_02022C58
+ str r0, [sp, 0x4]
+ adds r0, 0x1
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0xD0
+ movs r2, 0x14
+ movs r3, 0x1
+ bl DrawDownArrow
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08018980
+_08018944:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ b _0801897E
+ .pool
+_08018954:
+ movs r0, 0x1
+ str r0, [sp]
+ ldr r0, =gUnknown_02022C58
+ str r0, [sp, 0x4]
+ adds r0, 0x1
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0xD0
+ movs r2, 0x14
+ movs r3, 0x1
+ bl DrawDownArrow
+ movs r0, 0
+ strb r0, [r4]
+ bl sub_80188DC
+ movs r0, 0x1
+ b _08018982
+ .pool
+_0801897C:
+ movs r0, 0x2
+_0801897E:
+ strb r0, [r4]
+_08018980:
+ movs r0, 0
+_08018982:
+ add sp, 0xC
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end mevent_0814257C
+
+ thumb_func_start sub_801898C
+sub_801898C: @ 801898C
+ push {lr}
+ sub sp, 0xC
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, =gUnknown_02022C58
+ str r0, [sp, 0x4]
+ adds r0, 0x1
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0xD0
+ movs r2, 0x14
+ movs r3, 0x1
+ bl DrawDownArrow
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801898C
+
+ thumb_func_start sub_80189B4
+sub_80189B4: @ 80189B4
+ push {lr}
+ sub sp, 0xC
+ movs r0, 0x1
+ str r0, [sp]
+ ldr r0, =gUnknown_02022C58
+ str r0, [sp, 0x4]
+ adds r0, 0x1
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0xD0
+ movs r2, 0x14
+ movs r3, 0x1
+ bl DrawDownArrow
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80189B4
+
+ thumb_func_start sub_80189DC
+sub_80189DC: @ 80189DC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080189EC
+ cmp r0, 0x1
+ beq _08018A08
+ b _08018A14
+_080189EC:
+ bl sub_801898C
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08018A14
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _08018A14
+ .pool
+_08018A08:
+ bl sub_80189B4
+ movs r0, 0
+ strb r0, [r4]
+ movs r0, 0x1
+ b _08018A16
+_08018A14:
+ movs r0, 0
+_08018A16:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80189DC
+
+ thumb_func_start sub_8018A1C
+sub_8018A1C: @ 8018A1C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08018A2C
+ adds r0, r1, 0
+ bl sub_8018884
+_08018A2C:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x78
+ bhi _08018A3E
+ movs r0, 0
+ b _08018A48
+_08018A3E:
+ movs r0, 0
+ strb r0, [r4]
+ bl sub_80188DC
+ movs r0, 0x1
+_08018A48:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8018A1C
+
+ thumb_func_start sub_8018A50
+sub_8018A50: @ 8018A50
+ push {r4,r5,lr}
+ sub sp, 0x24
+ lsls r2, 24
+ add r1, sp, 0x4
+ ldr r0, =gUnknown_082F0638
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldr r0, =gUnknown_082F05E0
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x1C]
+ str r1, [sp, 0x20]
+ cmp r2, 0
+ bne _08018A80
+ ldr r0, =gUnknown_082F0608
+ b _08018A82
+ .pool
+_08018A80:
+ ldr r0, =gUnknown_082F0620
+_08018A82:
+ str r0, [sp, 0x4]
+ add r0, sp, 0x4
+ bl sub_81DB41C
+ adds r3, r0, 0
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _08018A96
+ adds r3, 0x1
+_08018A96:
+ lsls r1, r3, 24
+ ldr r0, =0x00ffffff
+ ldr r2, [sp, 0x1C]
+ ands r2, r0
+ orrs r2, r1
+ str r2, [sp, 0x1C]
+ cmp r3, 0x1D
+ bgt _08018ACC
+ movs r0, 0x1E
+ subs r0, r3
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ lsls r0, 24
+ lsrs r0, 16
+ ldr r1, =0xffff00ff
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp, 0x1C]
+ b _08018AD2
+ .pool
+_08018ACC:
+ ldr r0, =0xffff00ff
+ ands r2, r0
+ str r2, [sp, 0x1C]
+_08018AD2:
+ add r0, sp, 0x1C
+ movs r1, 0xE0
+ str r1, [sp]
+ add r1, sp, 0x4
+ movs r2, 0x1
+ movs r3, 0xA
+ bl DoMysteryGiftListMenu
+ adds r4, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _08018AFA
+ movs r0, 0x2
+ bl ClearWindowTilemap
+ movs r0, 0x2
+ movs r1, 0x1
+ bl CopyWindowToVram
+_08018AFA:
+ adds r0, r4, 0
+ add sp, 0x24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8018A50
+
+ thumb_func_start sub_8018B08
+sub_8018B08: @ 8018B08
+ push {r4-r6,lr}
+ sub sp, 0x1C
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r1, r3, 0
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ beq _08018B98
+ cmp r0, 0x1
+ bgt _08018B26
+ cmp r0, 0
+ beq _08018B30
+ b _08018C3E
+_08018B26:
+ cmp r0, 0x2
+ beq _08018BE4
+ cmp r0, 0xFF
+ beq _08018C1A
+ b _08018C3E
+_08018B30:
+ ldr r0, =gStringVar4
+ bl StringExpandPlaceholders
+ cmp r6, 0
+ bne _08018B48
+ ldr r0, =gUnknown_082F05C8
+ b _08018B4A
+ .pool
+_08018B48:
+ ldr r0, =gUnknown_082F05D0
+_08018B4A:
+ bl AddWindow
+ strh r0, [r4]
+ ldrb r0, [r4]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldrb r0, [r4]
+ movs r2, 0
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ ldr r1, =gUnknown_082F0728
+ str r1, [sp, 0x8]
+ str r2, [sp, 0xC]
+ ldr r1, =gStringVar4
+ str r1, [sp, 0x10]
+ movs r1, 0x1
+ movs r3, 0x1
+ bl AddTextPrinterParameterized2
+ ldrb r0, [r4]
+ movs r1, 0x1
+ movs r2, 0xF
+ bl sub_8098858
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldrb r0, [r4]
+ bl PutWindowTilemap
+ b _08018BD6
+ .pool
+_08018B98:
+ ldr r0, =gUnknown_082F05E8
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x14]
+ str r1, [sp, 0x18]
+ cmp r6, 0
+ bne _08018BBC
+ ldr r0, =0xff00ffff
+ ldr r1, [sp, 0x14]
+ ands r1, r0
+ movs r0, 0x90
+ lsls r0, 12
+ b _08018BC6
+ .pool
+_08018BBC:
+ ldr r0, =0xff00ffff
+ ldr r1, [sp, 0x14]
+ ands r1, r0
+ movs r0, 0xF0
+ lsls r0, 12
+_08018BC6:
+ orrs r1, r0
+ str r1, [sp, 0x14]
+ add r0, sp, 0x14
+ movs r1, 0xA
+ movs r2, 0xE
+ movs r3, 0
+ bl CreateYesNoMenu
+_08018BD6:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _08018C3E
+ .pool
+_08018BE4:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r6, r0, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _08018C3E
+ movs r0, 0
+ strb r0, [r5]
+ ldrb r0, [r4]
+ bl rbox_fill_rectangle
+ ldrb r0, [r4]
+ bl ClearWindowTilemap
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl CopyWindowToVram
+ ldrb r0, [r4]
+ bl RemoveWindow
+ adds r0, r6, 0
+ b _08018C42
+_08018C1A:
+ movs r0, 0
+ strb r0, [r5]
+ ldrb r0, [r4]
+ bl rbox_fill_rectangle
+ ldrb r0, [r4]
+ bl ClearWindowTilemap
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl CopyWindowToVram
+ ldrb r0, [r4]
+ bl RemoveWindow
+ movs r0, 0x1
+ negs r0, r0
+ b _08018C42
+_08018C3E:
+ movs r0, 0x2
+ negs r0, r0
+_08018C42:
+ add sp, 0x1C
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8018B08
+
+ thumb_func_start sub_8018C4C
+sub_8018C4C: @ 8018C4C
+ push {r4-r6,lr}
+ sub sp, 0x14
+ adds r6, r0, 0
+ adds r5, r1, 0
+ ldrb r0, [r6]
+ cmp r0, 0x1
+ beq _08018CE8
+ cmp r0, 0x1
+ bgt _08018C64
+ cmp r0, 0
+ beq _08018C6C
+ b _08018D8C
+_08018C64:
+ cmp r0, 0xFF
+ bne _08018C6A
+ b _08018D68
+_08018C6A:
+ b _08018D8C
+_08018C6C:
+ cmp r2, 0
+ bne _08018C84
+ ldr r0, =gStringVar4
+ ldr r1, =gText_WhatToDoWithCards
+ bl StringExpandPlaceholders
+ b _08018C8C
+ .pool
+_08018C84:
+ ldr r0, =gStringVar4
+ ldr r1, =gText_WhatToDoWithNews
+ bl StringExpandPlaceholders
+_08018C8C:
+ ldr r0, =gUnknown_082F05D8
+ bl AddWindow
+ strh r0, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldrb r0, [r5]
+ movs r2, 0
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ ldr r1, =gUnknown_082F0728
+ str r1, [sp, 0x8]
+ str r2, [sp, 0xC]
+ ldr r1, =gStringVar4
+ str r1, [sp, 0x10]
+ movs r1, 0x1
+ movs r3, 0x1
+ bl AddTextPrinterParameterized2
+ ldrb r0, [r5]
+ movs r1, 0x1
+ movs r2, 0xF
+ bl sub_8098858
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldrb r0, [r5]
+ bl PutWindowTilemap
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ b _08018D8C
+ .pool
+_08018CE8:
+ cmp r3, 0
+ beq _08018D10
+ cmp r2, 0
+ bne _08018D00
+ ldr r0, =gUnknown_082F05F8
+ ldr r1, =gUnknown_082F06C8
+ b _08018D28
+ .pool
+_08018D00:
+ ldr r0, =gUnknown_082F0600
+ ldr r1, =gUnknown_082F06F8
+ b _08018D28
+ .pool
+_08018D10:
+ cmp r2, 0
+ bne _08018D24
+ ldr r0, =gUnknown_082F05F0
+ ldr r1, =gUnknown_082F06B0
+ b _08018D28
+ .pool
+_08018D24:
+ ldr r0, =gUnknown_082F05F8
+ ldr r1, =gUnknown_082F06E0
+_08018D28:
+ movs r2, 0xE0
+ str r2, [sp]
+ movs r2, 0x1
+ movs r3, 0xA
+ bl DoMysteryGiftListMenu
+ adds r4, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _08018D8C
+ movs r0, 0
+ strb r0, [r6]
+ ldrb r0, [r5]
+ bl rbox_fill_rectangle
+ ldrb r0, [r5]
+ bl ClearWindowTilemap
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl CopyWindowToVram
+ ldrb r0, [r5]
+ bl RemoveWindow
+ adds r0, r4, 0
+ b _08018D90
+ .pool
+_08018D68:
+ movs r0, 0
+ strb r0, [r6]
+ ldrb r0, [r5]
+ bl rbox_fill_rectangle
+ ldrb r0, [r5]
+ bl ClearWindowTilemap
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl CopyWindowToVram
+ ldrb r0, [r5]
+ bl RemoveWindow
+ movs r0, 0x2
+ negs r0, r0
+ b _08018D90
+_08018D8C:
+ movs r0, 0x1
+ negs r0, r0
+_08018D90:
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8018C4C
+
+ thumb_func_start sub_8018D98
+sub_8018D98: @ 8018D98
+ push {lr}
+ cmp r0, 0
+ beq _08018DA4
+ bl sub_801B0CC
+ b _08018DA8
+_08018DA4:
+ bl sub_801B27C
+_08018DA8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8018D98
+
+ thumb_func_start sub_8018DAC
+sub_8018DAC: @ 8018DAC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _08018DBC
+ cmp r0, 0x1
+ beq _08018DE4
+ b _08018E00
+_08018DBC:
+ cmp r1, 0
+ bne _08018DD4
+ bl sav1_get_mevent_buffer_1
+ adds r4, r0, 0
+ bl sav1_get_mevent_buffer_2
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl sub_801BAAC
+ b _08018DDC
+_08018DD4:
+ bl sub_801B00C
+ bl sub_801C6C8
+_08018DDC:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _08018E00
+_08018DE4:
+ cmp r1, 0
+ bne _08018DF2
+ bl sub_801BB74
+_08018DEC:
+ cmp r0, 0
+ bne _08018DF8
+ b _08018E00
+_08018DF2:
+ bl sub_801C758
+ b _08018DEC
+_08018DF8:
+ movs r0, 0
+ strb r0, [r5]
+ movs r0, 0x1
+ b _08018E02
+_08018E00:
+ movs r0, 0
+_08018E02:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8018DAC
+
+ thumb_func_start sub_8018E08
+sub_8018E08: @ 8018E08
+ push {lr}
+ cmp r0, 0
+ bne _08018E14
+ bl sub_801B1E8
+ b _08018E18
+_08018E14:
+ bl sub_801B06C
+_08018E18:
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8018E08
+
+ thumb_func_start sub_8018E20
+sub_8018E20: @ 8018E20
+ push {lr}
+ cmp r0, 0
+ bne _08018E36
+ adds r0, r1, 0
+ bl sub_801BDA4
+ cmp r0, 0
+ beq _08018E40
+ bl sub_801BB48
+ b _08018E48
+_08018E36:
+ adds r0, r1, 0
+ bl sub_801CA50
+ cmp r0, 0
+ bne _08018E44
+_08018E40:
+ movs r0, 0
+ b _08018E4A
+_08018E44:
+ bl sub_801C72C
+_08018E48:
+ movs r0, 0x1
+_08018E4A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8018E20
+
+ thumb_func_start sub_8018E50
+sub_8018E50: @ 8018E50
+ push {lr}
+ cmp r2, 0
+ beq _08018E60
+ ldr r3, =gText_OkayToDiscardNews
+ b _08018E62
+ .pool
+_08018E60:
+ ldr r3, =gText_IfThrowAwayCardEventWontHappen
+_08018E62:
+ movs r2, 0x1
+ bl sub_8018B08
+ lsls r0, 24
+ asrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8018E50
+
+ thumb_func_start mevent_message_was_thrown_away
+mevent_message_was_thrown_away: @ 8018E74
+ push {lr}
+ cmp r1, 0
+ beq _08018E84
+ ldr r1, =gText_WonderNewsThrownAway
+ b _08018E86
+ .pool
+_08018E84:
+ ldr r1, =gText_WonderCardThrownAway
+_08018E86:
+ bl mevent_0814257C
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end mevent_message_was_thrown_away
+
+ thumb_func_start mevent_save_game
+mevent_save_game: @ 8018E94
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0x4
+ bhi _08018F04
+ lsls r0, 2
+ ldr r1, =_08018EAC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08018EAC:
+ .4byte _08018EC0
+ .4byte _08018ECC
+ .4byte _08018ED4
+ .4byte _08018EE0
+ .4byte _08018EF8
+_08018EC0:
+ ldr r0, =gText_DataWillBeSaved
+ bl sub_8018884
+ b _08018EEC
+ .pool
+_08018ECC:
+ movs r0, 0
+ bl TrySavingData
+ b _08018EEC
+_08018ED4:
+ ldr r0, =gText_SaveCompletedPressA
+ bl sub_8018884
+ b _08018EEC
+ .pool
+_08018EE0:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08018F04
+_08018EEC:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _08018F04
+ .pool
+_08018EF8:
+ movs r0, 0
+ strb r0, [r4]
+ bl sub_80188DC
+ movs r0, 0x1
+ b _08018F06
+_08018F04:
+ movs r0, 0
+_08018F06:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end mevent_save_game
+
+ thumb_func_start mevent_message
+mevent_message: @ 8018F0C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ movs r2, 0
+ str r2, [r4]
+ cmp r3, 0xE
+ bls _08018F22
+ b _08019034
+_08018F22:
+ lsls r0, r3, 2
+ ldr r1, =_08018F30
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08018F30:
+ .4byte _08018F6C
+ .4byte _08018F78
+ .4byte _08018F84
+ .4byte _08018F9C
+ .4byte _08018FB4
+ .4byte _08018FC0
+ .4byte _08018FCC
+ .4byte _08018FD8
+ .4byte _08018FE4
+ .4byte _08018FF0
+ .4byte _08018FFC
+ .4byte _08019014
+ .4byte _08019020
+ .4byte _0801902C
+ .4byte _08019030
+_08018F6C:
+ movs r0, 0
+ str r0, [r4]
+ ldr r2, =gText_NothingSentOver
+ b _08019034
+ .pool
+_08018F78:
+ movs r0, 0
+ str r0, [r4]
+ ldr r2, =gText_RecordUploadedViaWireless
+ b _08019034
+ .pool
+_08018F84:
+ movs r0, 0x1
+ str r0, [r4]
+ ldr r2, =gText_WonderCardReceivedFrom
+ cmp r5, 0
+ bne _08019034
+ ldr r2, =gText_WonderCardReceived
+ b _08019034
+ .pool
+_08018F9C:
+ movs r0, 0x1
+ str r0, [r4]
+ ldr r2, =gText_WonderNewsReceivedFrom
+ cmp r5, 0
+ bne _08019034
+ ldr r2, =gText_WonderNewsReceived
+ b _08019034
+ .pool
+_08018FB4:
+ movs r0, 0x1
+ str r0, [r4]
+ ldr r2, =gText_NewStampReceived
+ b _08019034
+ .pool
+_08018FC0:
+ movs r0, 0
+ str r0, [r4]
+ ldr r2, =gText_AlreadyHadCard
+ b _08019034
+ .pool
+_08018FCC:
+ movs r0, 0
+ str r0, [r4]
+ ldr r2, =gText_AlreadyHadStamp
+ b _08019034
+ .pool
+_08018FD8:
+ movs r0, 0
+ str r0, [r4]
+ ldr r2, =gText_AlreadyHadNews
+ b _08019034
+ .pool
+_08018FE4:
+ movs r0, 0
+ str r0, [r4]
+ ldr r2, =gText_NoMoreRoomForStamps
+ b _08019034
+ .pool
+_08018FF0:
+ movs r0, 0
+ str r0, [r4]
+ ldr r2, =gText_CommunicationCanceled
+ b _08019034
+ .pool
+_08018FFC:
+ movs r0, 0
+ str r0, [r4]
+ ldr r2, =gText_CantAcceptNewsFromTrainer
+ cmp r6, 0
+ bne _08019034
+ ldr r2, =gText_CantAcceptCardFromTrainer
+ b _08019034
+ .pool
+_08019014:
+ movs r0, 0
+ str r0, [r4]
+ ldr r2, =gText_CommunicationError
+ b _08019034
+ .pool
+_08019020:
+ movs r0, 0x1
+ str r0, [r4]
+ ldr r2, =gText_NewTrainerReceived
+ b _08019034
+ .pool
+_0801902C:
+ movs r0, 0x1
+ b _08019032
+_08019030:
+ movs r0, 0
+_08019032:
+ str r0, [r4]
+_08019034:
+ adds r0, r2, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end mevent_message
+
+ thumb_func_start mevent_08142CE8
+mevent_08142CE8: @ 801903C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r0, r1, 0
+ adds r5, r2, 0
+ ldrb r4, [r6]
+ cmp r4, 0x1
+ beq _0801906E
+ cmp r4, 0x1
+ bgt _08019054
+ cmp r4, 0
+ beq _0801905A
+ b _0801909A
+_08019054:
+ cmp r4, 0x2
+ beq _08019084
+ b _0801909A
+_0801905A:
+ cmp r0, 0
+ beq _08019062
+ bl sub_8018884
+_08019062:
+ movs r0, 0xB9
+ lsls r0, 1
+ bl PlayFanfare
+ strh r4, [r5]
+ b _0801907C
+_0801906E:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xF0
+ bls _0801909A
+_0801907C:
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ b _0801909A
+_08019084:
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801909A
+ movs r0, 0
+ strb r0, [r6]
+ bl sub_80188DC
+ movs r0, 0x1
+ b _0801909C
+_0801909A:
+ movs r0, 0
+_0801909C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end mevent_08142CE8
+
+ thumb_func_start mevent_message_stamp_card_etc_send_status
+mevent_message_stamp_card_etc_send_status: @ 80190A4
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r1, =gText_CommunicationError
+ movs r0, 0
+ str r0, [r3]
+ adds r4, r1, 0
+ cmp r2, 0xE
+ bhi _08019166
+ lsls r0, r2, 2
+ ldr r1, =_080190C8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080190C8:
+ .4byte _08019104
+ .4byte _0801910C
+ .4byte _08019114
+ .4byte _0801911C
+ .4byte _08019128
+ .4byte _08019130
+ .4byte _08019138
+ .4byte _08019140
+ .4byte _08019148
+ .4byte _08019150
+ .4byte _08019164
+ .4byte _08019158
+ .4byte _0801915C
+ .4byte _0801915C
+ .4byte _08019164
+_08019104:
+ ldr r1, =gText_NothingSentOver
+ b _08019166
+ .pool
+_0801910C:
+ ldr r1, =gText_RecordUploadedViaWireless
+ b _08019166
+ .pool
+_08019114:
+ ldr r1, =gText_WonderCardSentTo
+ b _0801911E
+ .pool
+_0801911C:
+ ldr r1, =gText_WonderNewsSentTo
+_0801911E:
+ movs r0, 0x1
+ str r0, [r3]
+ b _08019166
+ .pool
+_08019128:
+ ldr r1, =gText_StampSentTo
+ b _08019166
+ .pool
+_08019130:
+ ldr r1, =gText_OtherTrainerHasCard
+ b _08019166
+ .pool
+_08019138:
+ ldr r1, =gText_OtherTrainerHasStamp
+ b _08019166
+ .pool
+_08019140:
+ ldr r1, =gText_OtherTrainerHasNews
+ b _08019166
+ .pool
+_08019148:
+ ldr r1, =gText_NoMoreRoomForStamps
+ b _08019166
+ .pool
+_08019150:
+ ldr r1, =gText_OtherTrainerCanceled
+ b _08019166
+ .pool
+_08019158:
+ adds r1, r4, 0
+ b _08019166
+_0801915C:
+ ldr r1, =gText_GiftSentTo
+ b _08019166
+ .pool
+_08019164:
+ ldr r1, =gText_CantSendGiftToTrainer
+_08019166:
+ adds r0, r1, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end mevent_message_stamp_card_etc_send_status
+
+ thumb_func_start sub_8019174
+sub_8019174: @ 8019174
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r1, r2, 0
+ adds r2, r3, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, sp
+ bl mevent_message_stamp_card_etc_send_status
+ adds r1, r0, 0
+ ldr r0, [sp]
+ cmp r0, 0
+ bne _0801919A
+ adds r0, r4, 0
+ bl mevent_0814257C
+ b _080191A2
+_0801919A:
+ adds r0, r4, 0
+ adds r2, r5, 0
+ bl mevent_08142CE8
+_080191A2:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8019174
+
+ thumb_func_start task_add_00_mystery_gift
+task_add_00_mystery_gift: @ 80191AC
+ push {r4,lr}
+ ldr r0, =task00_mystery_gift
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r0
+ movs r0, 0
+ strb r0, [r4, 0x8]
+ strb r0, [r4, 0x9]
+ strb r0, [r4, 0xA]
+ strb r0, [r4, 0xB]
+ strb r0, [r4, 0xC]
+ strb r0, [r4, 0xD]
+ movs r1, 0
+ strh r0, [r4]
+ strh r0, [r4, 0x2]
+ strh r0, [r4, 0x4]
+ strh r0, [r4, 0x6]
+ strb r1, [r4, 0xE]
+ movs r0, 0x40
+ bl AllocZeroed
+ str r0, [r4, 0x10]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task_add_00_mystery_gift
+
+ thumb_func_start task00_mystery_gift
+task00_mystery_gift: @ 80191F4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r5, r0, r1
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0x25
+ bls _0801920E
+ b _08019922
+_0801920E:
+ lsls r0, 2
+ ldr r1, =_08019220
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08019220:
+ .4byte _080192B8
+ .4byte _080192BE
+ .4byte _08019300
+ .4byte _08019338
+ .4byte _0801935C
+ .4byte _080193AC
+ .4byte _0801940C
+ .4byte _08019444
+ .4byte _08019454
+ .4byte _080194CC
+ .4byte _080194F0
+ .4byte _08019508
+ .4byte _08019538
+ .4byte _08019574
+ .4byte _0801958C
+ .4byte _080195BC
+ .4byte _080198EC
+ .4byte _0801961A
+ .4byte _0801962A
+ .4byte _08019922
+ .4byte _0801963C
+ .4byte _08019688
+ .4byte _080196FE
+ .4byte _0801972E
+ .4byte _08019764
+ .4byte _0801977E
+ .4byte _08019792
+ .4byte _0801979E
+ .4byte _080197B2
+ .4byte _080197C6
+ .4byte _080197F8
+ .4byte _0801982C
+ .4byte _08019870
+ .4byte _08019884
+ .4byte _080198A0
+ .4byte _080198B8
+ .4byte _080198EC
+ .4byte _0801990C
+_080192B8:
+ movs r0, 0x1
+ strb r0, [r5, 0x8]
+ b _08019922
+_080192BE:
+ adds r0, r5, 0
+ adds r0, 0x9
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8018A50
+ adds r1, r0, 0
+ cmp r1, 0x1
+ beq _080192E8
+ cmp r1, 0x1
+ bcc _080192DE
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ beq _080192FA
+ b _08019922
+_080192DE:
+ movs r0, 0
+ strb r0, [r5, 0xC]
+ bl sub_801B27C
+ b _080192EE
+_080192E8:
+ strb r1, [r5, 0xC]
+ bl sub_801B0CC
+_080192EE:
+ cmp r0, 0x1
+ bne _080192F4
+ b _08019820
+_080192F4:
+ movs r0, 0x2
+ strb r0, [r5, 0x8]
+ b _08019922
+_080192FA:
+ movs r0, 0x25
+ strb r0, [r5, 0x8]
+ b _08019922
+_08019300:
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0
+ bne _08019314
+ adds r0, r5, 0
+ adds r0, 0x9
+ ldr r1, =gText_DontHaveCardNewOneInput
+ b _0801931A
+ .pool
+_08019314:
+ adds r0, r5, 0
+ adds r0, 0x9
+ ldr r1, =gText_DontHaveNewsNewOneInput
+_0801931A:
+ bl mevent_0814257C
+ cmp r0, 0
+ bne _08019324
+ b _08019922
+_08019324:
+ movs r0, 0x3
+ strb r0, [r5, 0x8]
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_80186EC
+ b _08019922
+ .pool
+_08019338:
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0
+ bne _0801934C
+ ldr r0, =gText_WhereShouldCardBeAccessed
+ bl sub_8018884
+ b _08019352
+ .pool
+_0801934C:
+ ldr r0, =gText_WhereShouldNewsBeAccessed
+ bl sub_8018884
+_08019352:
+ movs r0, 0x4
+ strb r0, [r5, 0x8]
+ b _08019922
+ .pool
+_0801935C:
+ adds r0, r5, 0
+ adds r0, 0x9
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_8018A50
+ adds r4, r0, 0
+ cmp r4, 0x1
+ beq _0801938A
+ cmp r4, 0x1
+ bcc _0801937C
+ movs r0, 0x2
+ negs r0, r0
+ cmp r4, r0
+ beq _08019396
+ b _08019922
+_0801937C:
+ bl sub_80188DC
+ movs r1, 0
+ movs r0, 0x5
+ strb r0, [r5, 0x8]
+ strb r1, [r5, 0xD]
+ b _08019922
+_0801938A:
+ bl sub_80188DC
+ movs r0, 0x5
+ strb r0, [r5, 0x8]
+ strb r4, [r5, 0xD]
+ b _08019922
+_08019396:
+ bl sub_80188DC
+ ldrb r0, [r5, 0xC]
+ bl sub_8018D98
+ cmp r0, 0
+ beq _080193A6
+ b _08019820
+_080193A6:
+ strb r0, [r5, 0x8]
+ movs r0, 0
+ b _080198FE
+_080193AC:
+ ldr r0, =gStringVar1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r0, =gStringVar2
+ strb r1, [r0]
+ ldr r0, =gStringVar3
+ strb r1, [r0]
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0
+ beq _080193D4
+ cmp r0, 0x1
+ beq _080193EE
+ b _08019406
+ .pool
+_080193D4:
+ ldrb r0, [r5, 0xD]
+ cmp r0, 0x1
+ bne _080193E2
+ movs r0, 0x15
+ bl sub_8014EFC
+ b _08019406
+_080193E2:
+ cmp r0, 0
+ bne _08019406
+ movs r0, 0x15
+ bl sub_80152A8
+ b _08019406
+_080193EE:
+ ldrb r0, [r5, 0xD]
+ cmp r0, 0x1
+ bne _080193FC
+ movs r0, 0x16
+ bl sub_8014EFC
+ b _08019406
+_080193FC:
+ cmp r0, 0
+ bne _08019406
+ movs r0, 0x16
+ bl sub_80152A8
+_08019406:
+ movs r0, 0x6
+ strb r0, [r5, 0x8]
+ b _08019922
+_0801940C:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801942C
+ movs r0, 0x1
+ bl sub_8018838
+ movs r0, 0x7
+ strb r0, [r5, 0x8]
+ ldrb r0, [r5, 0xC]
+ bl sub_801D484
+ b _08019922
+ .pool
+_0801942C:
+ ldr r0, =gSpecialVar_Result
+ ldrh r0, [r0]
+ cmp r0, 0x5
+ beq _08019436
+ b _08019922
+_08019436:
+ movs r0, 0x1
+ bl sub_8018838
+ b _080197C0
+ .pool
+_08019444:
+ ldr r0, =gText_Communicating
+ bl sub_8018884
+ movs r0, 0x8
+ strb r0, [r5, 0x8]
+ b _08019922
+ .pool
+_08019454:
+ adds r0, r5, 0
+ bl sub_801D4A8
+ subs r0, 0x2
+ cmp r0, 0x4
+ bls _08019462
+ b _08019922
+_08019462:
+ lsls r0, 2
+ ldr r1, =_08019470
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08019470:
+ .4byte _080194AE
+ .4byte _080194A8
+ .4byte _080194B4
+ .4byte _08019492
+ .4byte _08019484
+_08019484:
+ bl task_add_05_task_del_08FA224_when_no_RfuFunc
+ ldrh r0, [r5]
+ strb r0, [r5, 0xE]
+ movs r0, 0xD
+ strb r0, [r5, 0x8]
+ b _08019922
+_08019492:
+ ldr r4, [r5, 0x10]
+ bl sub_801D4F4
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x40
+ bl memcpy
+ bl sub_801D4E4
+ b _08019922
+_080194A8:
+ movs r0, 0xA
+ strb r0, [r5, 0x8]
+ b _08019922
+_080194AE:
+ movs r0, 0x9
+ strb r0, [r5, 0x8]
+ b _08019922
+_080194B4:
+ movs r0, 0xB
+ strb r0, [r5, 0x8]
+ ldr r0, =gStringVar1
+ ldr r1, =gLinkPlayers + 8
+ bl StringCopy
+ b _08019922
+ .pool
+_080194CC:
+ adds r4, r5, 0
+ adds r4, 0x9
+ bl sub_801D4F4
+ adds r3, r0, 0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8018B08
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0x1
+ beq _08019564
+ cmp r1, 0x1
+ bcs _08019552
+ movs r0, 0
+ b _08019566
+_080194F0:
+ adds r4, r5, 0
+ adds r4, 0x9
+ bl sub_801D4F4
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl mevent_0814257C
+ cmp r0, 0
+ bne _08019506
+ b _08019922
+_08019506:
+ b _0801956A
+_08019508:
+ adds r0, r5, 0
+ adds r0, 0x9
+ ldr r3, =gText_ThrowAwayWonderCard
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8018B08
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0x1
+ beq _08019564
+ cmp r1, 0x1
+ bcs _08019552
+ bl sub_801B3F8
+ cmp r0, 0x1
+ bne _08019534
+ movs r0, 0xC
+ strb r0, [r5, 0x8]
+ b _08019922
+ .pool
+_08019534:
+ movs r0, 0
+ b _08019566
+_08019538:
+ adds r0, r5, 0
+ adds r0, 0x9
+ ldr r3, =gText_HaventReceivedCardsGift
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8018B08
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0x1
+ beq _08019564
+ cmp r1, 0x1
+ bcc _08019560
+_08019552:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08019564
+ b _08019922
+ .pool
+_08019560:
+ movs r0, 0
+ b _08019566
+_08019564:
+ movs r0, 0x1
+_08019566:
+ bl sub_801D500
+_0801956A:
+ bl sub_801D4E4
+ movs r0, 0x7
+ strb r0, [r5, 0x8]
+ b _08019922
+_08019574:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801957E
+ b _08019922
+_0801957E:
+ bl sub_800E084
+ movs r0, 0xE
+ strb r0, [r5, 0x8]
+ b _08019922
+ .pool
+_0801958C:
+ adds r0, r5, 0
+ adds r0, 0x9
+ ldr r1, =gText_CommunicationCompleted
+ bl sub_8018A1C
+ cmp r0, 0
+ bne _0801959C
+ b _08019922
+_0801959C:
+ ldrb r0, [r5, 0xD]
+ cmp r0, 0x1
+ bne _080195AA
+ ldr r0, =gStringVar1
+ ldr r1, =gLinkPlayers + 8
+ bl StringCopy
+_080195AA:
+ movs r0, 0xF
+ strb r0, [r5, 0x8]
+ b _08019922
+ .pool
+_080195BC:
+ ldrb r1, [r5, 0xC]
+ ldrb r2, [r5, 0xD]
+ ldrb r3, [r5, 0xE]
+ mov r0, sp
+ bl mevent_message
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _080195D0
+ ldr r1, [r5, 0x10]
+_080195D0:
+ ldr r0, [sp]
+ cmp r0, 0
+ beq _080195E2
+ adds r0, r5, 0
+ adds r0, 0x9
+ adds r2, r5, 0
+ bl mevent_08142CE8
+ b _080195EA
+_080195E2:
+ adds r0, r5, 0
+ adds r0, 0x9
+ bl mevent_0814257C
+_080195EA:
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _080195F2
+ b _08019922
+_080195F2:
+ ldrb r0, [r5, 0xE]
+ cmp r0, 0x3
+ bne _0801960C
+ ldrb r0, [r5, 0xD]
+ cmp r0, 0x1
+ bne _08019606
+ movs r0, 0x1
+ bl sub_801DB68
+ b _0801960C
+_08019606:
+ movs r0, 0x2
+ bl sub_801DB68
+_0801960C:
+ ldr r0, [sp]
+ cmp r0, 0
+ beq _08019614
+ b _080198DC
+_08019614:
+ strb r0, [r5, 0x8]
+ movs r0, 0
+ b _080198FE
+_0801961A:
+ adds r0, r5, 0
+ adds r0, 0x9
+ bl mevent_save_game
+ cmp r0, 0
+ bne _08019628
+ b _08019922
+_08019628:
+ b _08019820
+_0801962A:
+ adds r0, r5, 0
+ adds r0, 0x9
+ ldrb r1, [r5, 0xC]
+ bl sub_8018DAC
+ cmp r0, 0
+ bne _0801963A
+ b _08019922
+_0801963A:
+ b _080196F8
+_0801963C:
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0
+ bne _08019664
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08019652
+ movs r0, 0x15
+ strb r0, [r5, 0x8]
+_08019652:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0801965E
+ b _08019922
+_0801965E:
+ b _08019682
+ .pool
+_08019664:
+ ldr r0, =gMain
+ ldrh r0, [r0, 0x2E]
+ bl sub_801CCD0
+ cmp r0, 0
+ beq _0801967C
+ cmp r0, 0x1
+ beq _08019682
+ b _08019922
+ .pool
+_0801967C:
+ bl sub_801CC38
+ b _0801975E
+_08019682:
+ movs r0, 0x1B
+ strb r0, [r5, 0x8]
+ b _08019922
+_08019688:
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0
+ bne _080196A2
+ bl sub_801B308
+ cmp r0, 0
+ beq _080196B6
+ adds r0, r5, 0
+ adds r0, 0x9
+ ldrb r2, [r5, 0xC]
+ adds r1, r5, 0
+ movs r3, 0
+ b _080196C0
+_080196A2:
+ bl sub_801B128
+ cmp r0, 0
+ beq _080196B6
+ adds r0, r5, 0
+ adds r0, 0x9
+ ldrb r2, [r5, 0xC]
+ adds r1, r5, 0
+ movs r3, 0
+ b _080196C0
+_080196B6:
+ adds r0, r5, 0
+ adds r0, 0x9
+ ldrb r2, [r5, 0xC]
+ adds r1, r5, 0
+ movs r3, 0x1
+_080196C0:
+ bl sub_8018C4C
+ adds r1, r0, 0
+ cmp r1, 0x1
+ beq _080196E2
+ cmp r1, 0x1
+ bcc _080196DC
+ cmp r1, 0x2
+ beq _080196E8
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ beq _080196EE
+ b _08019922
+_080196DC:
+ movs r0, 0x1C
+ strb r0, [r5, 0x8]
+ b _08019922
+_080196E2:
+ movs r0, 0x1D
+ strb r0, [r5, 0x8]
+ b _08019922
+_080196E8:
+ movs r0, 0x16
+ strb r0, [r5, 0x8]
+ b _08019922
+_080196EE:
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0x1
+ bne _080196F8
+ bl sub_801CC80
+_080196F8:
+ movs r0, 0x14
+ strb r0, [r5, 0x8]
+ b _08019922
+_080196FE:
+ adds r0, r5, 0
+ adds r0, 0x9
+ ldrb r2, [r5, 0xC]
+ adds r1, r5, 0
+ bl sub_8018E50
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _0801971A
+ cmp r1, 0
+ ble _08019748
+ cmp r1, 0x1
+ beq _0801975E
+ b _08019922
+_0801971A:
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0
+ bne _08019758
+ bl sub_801B3F8
+ cmp r0, 0x1
+ bne _08019758
+ movs r0, 0x17
+ strb r0, [r5, 0x8]
+ b _08019922
+_0801972E:
+ adds r0, r5, 0
+ adds r0, 0x9
+ ldr r3, =gText_HaventReceivedGiftOkayToDiscard
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_8018B08
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0x1
+ beq _0801975E
+ cmp r1, 0x1
+ bcc _08019758
+_08019748:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0801975E
+ b _08019922
+ .pool
+_08019758:
+ movs r0, 0x18
+ strb r0, [r5, 0x8]
+ b _08019922
+_0801975E:
+ movs r0, 0x15
+ strb r0, [r5, 0x8]
+ b _08019922
+_08019764:
+ ldrb r0, [r5, 0xC]
+ movs r1, 0x1
+ bl sub_8018E20
+ cmp r0, 0
+ bne _08019772
+ b _08019922
+_08019772:
+ ldrb r0, [r5, 0xC]
+ bl sub_8018E08
+ movs r0, 0x19
+ strb r0, [r5, 0x8]
+ b _08019922
+_0801977E:
+ adds r0, r5, 0
+ adds r0, 0x9
+ bl mevent_save_game
+ cmp r0, 0
+ bne _0801978C
+ b _08019922
+_0801978C:
+ movs r0, 0x1A
+ strb r0, [r5, 0x8]
+ b _08019922
+_08019792:
+ adds r0, r5, 0
+ adds r0, 0x9
+ ldrb r1, [r5, 0xC]
+ bl mevent_message_was_thrown_away
+ b _080198F6
+_0801979E:
+ ldrb r0, [r5, 0xC]
+ movs r1, 0
+ bl sub_8018E20
+ cmp r0, 0
+ bne _080197AC
+ b _08019922
+_080197AC:
+ movs r0, 0
+ strb r0, [r5, 0x8]
+ b _08019922
+_080197B2:
+ ldrb r0, [r5, 0xC]
+ movs r1, 0x1
+ bl sub_8018E20
+ cmp r0, 0
+ bne _080197C0
+ b _08019922
+_080197C0:
+ movs r0, 0x3
+ strb r0, [r5, 0x8]
+ b _08019922
+_080197C6:
+ ldrb r0, [r5, 0xC]
+ movs r1, 0x1
+ bl sub_8018E20
+ cmp r0, 0
+ bne _080197D4
+ b _08019922
+_080197D4:
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0
+ beq _080197E0
+ cmp r0, 0x1
+ beq _080197E8
+ b _080197EE
+_080197E0:
+ movs r0, 0x15
+ bl sub_8014A00
+ b _080197EE
+_080197E8:
+ movs r0, 0x16
+ bl sub_8014A00
+_080197EE:
+ movs r0, 0x1
+ strb r0, [r5, 0xD]
+ movs r0, 0x1E
+ strb r0, [r5, 0x8]
+ b _08019922
+_080197F8:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08019810
+ movs r0, 0x1
+ bl sub_8018838
+ movs r0, 0x1F
+ strb r0, [r5, 0x8]
+ b _08019922
+ .pool
+_08019810:
+ ldr r0, =gSpecialVar_Result
+ ldrh r0, [r0]
+ cmp r0, 0x5
+ beq _0801981A
+ b _08019922
+_0801981A:
+ movs r0, 0x1
+ bl sub_8018838
+_08019820:
+ movs r0, 0x12
+ strb r0, [r5, 0x8]
+ b _08019922
+ .pool
+_0801982C:
+ ldr r0, =gStringVar1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r0, =gStringVar2
+ strb r1, [r0]
+ ldr r0, =gStringVar3
+ strb r1, [r0]
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0
+ bne _0801985C
+ ldr r0, =gText_SendingWonderCard
+ bl sub_8018884
+ bl mevent_srv_new_wcard
+ b _08019866
+ .pool
+_0801985C:
+ ldr r0, =gText_SendingWonderNews
+ bl sub_8018884
+ bl mevent_srv_init_wnews
+_08019866:
+ movs r0, 0x20
+ strb r0, [r5, 0x8]
+ b _08019922
+ .pool
+_08019870:
+ adds r0, r5, 0
+ bl sub_801D0C4
+ cmp r0, 0x3
+ bne _08019922
+ ldrh r0, [r5]
+ strb r0, [r5, 0xE]
+ movs r0, 0x21
+ strb r0, [r5, 0x8]
+ b _08019922
+_08019884:
+ bl task_add_05_task_del_08FA224_when_no_RfuFunc
+ ldr r0, =gStringVar1
+ ldr r1, =gLinkPlayers + 0x1C + 0x08 @ &gLinkPlayers[1].name
+ bl StringCopy
+ movs r0, 0x22
+ strb r0, [r5, 0x8]
+ b _08019922
+ .pool
+_080198A0:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08019922
+ bl sub_800E084
+ movs r0, 0x23
+ strb r0, [r5, 0x8]
+ b _08019922
+ .pool
+_080198B8:
+ adds r0, r5, 0
+ adds r0, 0x9
+ ldrb r2, [r5, 0xD]
+ ldrb r3, [r5, 0xE]
+ adds r1, r5, 0
+ bl sub_8019174
+ cmp r0, 0
+ beq _08019922
+ ldr r0, [r5, 0xC]
+ ldr r1, =0x00ffff00
+ ands r0, r1
+ ldr r1, =0x00030100
+ cmp r0, r1
+ bne _080198FA
+ movs r0, 0x3
+ bl sub_801DB68
+_080198DC:
+ movs r0, 0x11
+ strb r0, [r5, 0x8]
+ b _08019922
+ .pool
+_080198EC:
+ adds r0, r5, 0
+ adds r0, 0x9
+ ldr r1, =gText_CommunicationError
+ bl mevent_0814257C
+_080198F6:
+ cmp r0, 0
+ beq _08019922
+_080198FA:
+ movs r0, 0
+ strb r0, [r5, 0x8]
+_080198FE:
+ movs r1, 0
+ bl sub_80186EC
+ b _08019922
+ .pool
+_0801990C:
+ bl CloseLink
+ ldr r0, [r5, 0x10]
+ bl Free
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r0, =sub_80186A4
+ bl SetMainCallback2
+_08019922:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task00_mystery_gift
+
+ thumb_func_start sub_8019930
+sub_8019930: @ 8019930
+ ldr r0, =0x000001a9
+ bx lr
+ .pool
+ thumb_func_end sub_8019930
+
+ thumb_func_start bgid_upload_textbox_1
+bgid_upload_textbox_1: @ 8019938
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnkTextboxBorderGfx
+ movs r2, 0x80
+ lsls r2, 1
+ movs r3, 0
+ str r3, [sp]
+ bl copy_decompressed_tile_data_to_vram_autofree
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bgid_upload_textbox_1
+
+ thumb_func_start is_walking_or_running
+is_walking_or_running: @ 8019958
+ push {lr}
+ ldr r0, =gPlayerAvatar
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0x2
+ beq _08019966
+ cmp r0, 0
+ bne _08019970
+_08019966:
+ movs r0, 0x1
+ b _08019972
+ .pool
+_08019970:
+ movs r0, 0
+_08019972:
+ pop {r1}
+ bx r1
+ thumb_func_end is_walking_or_running
+
+ thumb_func_start sub_8019978
+sub_8019978: @ 8019978
+ ldr r3, =gUnknown_082F072C
+ movs r2, 0x7
+ ands r2, r1
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 1
+ adds r2, r1
+ adds r2, r3
+ ldrb r0, [r2]
+ bx lr
+ .pool
+ thumb_func_end sub_8019978
+
+ thumb_func_start sub_8019990
+sub_8019990: @ 8019990
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r4, =gUnknown_082F0740
+ mov r8, r4
+ lsls r0, 2
+ adds r4, r0, r4
+ movs r6, 0
+ ldrsh r5, [r4, r6]
+ ldr r6, =gUnknown_082F0760
+ lsls r1, 1
+ adds r4, r1, r6
+ ldrb r4, [r4]
+ lsls r4, 24
+ asrs r4, 24
+ adds r5, r4
+ adds r5, 0x7
+ str r5, [r2]
+ movs r2, 0x2
+ add r8, r2
+ add r0, r8
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ adds r6, 0x1
+ adds r1, r6
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r1
+ adds r0, 0x7
+ str r0, [r3]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8019990
+
+ thumb_func_start sub_80199E0
+sub_80199E0: @ 80199E0
+ push {r4-r7,lr}
+ mov r12, r3
+ ldr r7, =gUnknown_082F0740
+ lsls r5, r0, 2
+ adds r0, r5, r7
+ movs r4, 0
+ ldrsh r3, [r0, r4]
+ ldr r6, =gUnknown_082F0760
+ lsls r4, r1, 1
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r3, r0
+ adds r3, 0x7
+ cmp r3, r2
+ bne _08019A28
+ adds r0, r7, 0x2
+ adds r0, r5, r0
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r0, r6, 0x1
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r1, r0
+ adds r1, 0x7
+ cmp r1, r12
+ bne _08019A28
+ movs r0, 0x1
+ b _08019A2A
+ .pool
+_08019A28:
+ movs r0, 0
+_08019A2A:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80199E0
+
+ thumb_func_start sub_8019A30
+sub_8019A30: @ 8019A30
+ push {lr}
+ ldr r1, =0x000002bf
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8019A30
+
+ thumb_func_start flag_set_x63
+flag_set_x63: @ 8019A4C
+ push {lr}
+ ldr r1, =0x000002bf
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end flag_set_x63
+
+ thumb_func_start flag_clear_x63
+flag_clear_x63: @ 8019A64
+ push {lr}
+ ldr r1, =0x000002bf
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagClear
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end flag_clear_x63
+
+ thumb_func_start sub_8019A7C
+sub_8019A7C: @ 8019A7C
+ push {lr}
+ ldr r2, =0x00004010
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ bl VarSet
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8019A7C
+
+ thumb_func_start sub_8019A98
+sub_8019A98: @ 8019A98
+ push {lr}
+ ldr r1, =gUnknown_082F0774
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, =gSaveBlock1Ptr
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl show_sprite
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8019A98
+
+ thumb_func_start sub_8019AB8
+sub_8019AB8: @ 8019AB8
+ push {lr}
+ ldr r1, =gUnknown_082F0774
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, =gSaveBlock1Ptr
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl RemoveFieldObjectByLocalIdAndMap
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8019AB8
+
+ thumb_func_start sub_8019AD8
+sub_8019AD8: @ 8019AD8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r1, 0
+ ldr r1, =gUnknown_082F0774
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, =gSaveBlock1Ptr
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ bne _08019B30
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gMapObjects
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ bne _08019B30
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+ lsls r0, 24
+ cmp r0, 0
+ bne _08019B30
+ movs r0, 0x1
+ b _08019B32
+ .pool
+_08019B30:
+ movs r0, 0
+_08019B32:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8019AD8
+
+ thumb_func_start sub_8019B3C
+sub_8019B3C: @ 8019B3C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, =gUnknown_082F0774
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, =gSaveBlock1Ptr
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ bne _08019B9C
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gMapObjects
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ bne _08019B84
+ movs r0, 0
+ b _08019B9E
+ .pool
+_08019B84:
+ bl ScriptContext2_IsEnabled
+ lsls r0, 24
+ cmp r0, 0
+ bne _08019B96
+ adds r0, r4, 0
+ bl npc_sync_anim_pause_bits
+ b _08019B9C
+_08019B96:
+ adds r0, r4, 0
+ bl FreezeMapObject
+_08019B9C:
+ movs r0, 0x1
+_08019B9E:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8019B3C
+
+ thumb_func_start sub_8019BA8
+sub_8019BA8: @ 8019BA8
+ push {lr}
+ ldr r2, =gUnknown_02022C68
+ movs r1, 0
+ str r1, [r2]
+ ldr r1, =gUnknown_02022C64
+ str r0, [r1]
+ movs r1, 0
+ movs r2, 0x7
+_08019BB8:
+ strb r1, [r0]
+ strb r1, [r0, 0x1]
+ strb r1, [r0, 0x2]
+ strb r1, [r0, 0x3]
+ adds r0, 0x4
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08019BB8
+ bl sub_8019DF4
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8019BA8
+
+ thumb_func_start sub_8019BDC
+sub_8019BDC: @ 8019BDC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ cmp r0, 0
+ beq _08019BF0
+ cmp r0, 0x1
+ beq _08019C10
+ b _08019C2E
+_08019BF0:
+ ldr r1, =gUnknown_082F078C
+ adds r0, r4, 0
+ bl sub_8019AD8
+ cmp r0, 0x1
+ bne _08019C2E
+ adds r0, r4, 0
+ bl flag_set_x63
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _08019C2E
+ .pool
+_08019C10:
+ adds r0, r4, 0
+ bl sub_8019B3C
+ cmp r0, 0
+ beq _08019C2E
+ adds r0, r4, 0
+ bl sub_8019AB8
+ adds r0, r4, 0
+ bl flag_set_x63
+ movs r0, 0
+ strb r0, [r5]
+ movs r0, 0x1
+ b _08019C30
+_08019C2E:
+ movs r0, 0
+_08019C30:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8019BDC
+
+ thumb_func_start sub_8019C38
+sub_8019C38: @ 8019C38
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r5, r1, 0
+ adds r7, r2, 0
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r0, 0x2
+ beq _08019CD4
+ cmp r0, 0x2
+ bgt _08019C54
+ cmp r0, 0
+ beq _08019C5A
+ b _08019CE6
+_08019C54:
+ cmp r0, 0x3
+ beq _08019CBC
+ b _08019CE6
+_08019C5A:
+ bl is_walking_or_running
+ cmp r0, 0
+ beq _08019CE6
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ movs r0, 0
+ ldrsh r3, [r4, r0]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80199E0
+ cmp r0, 0x1
+ beq _08019CE6
+ mov r0, sp
+ adds r1, r4, 0
+ bl plaer_get_pos_including_state_based_drift
+ mov r0, sp
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ movs r0, 0
+ ldrsh r3, [r4, r0]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80199E0
+ cmp r0, 0x1
+ beq _08019CE6
+ ldrb r1, [r7, 0x1]
+ adds r0, r5, 0
+ bl sub_8019A7C
+ adds r0, r5, 0
+ bl sub_8019A98
+ adds r0, r5, 0
+ bl flag_clear_x63
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+_08019CBC:
+ ldr r1, =gUnknown_082F078E
+ adds r0, r5, 0
+ bl sub_8019AD8
+ cmp r0, 0x1
+ bne _08019CE6
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ b _08019CE6
+ .pool
+_08019CD4:
+ adds r0, r5, 0
+ bl sub_8019B3C
+ cmp r0, 0
+ beq _08019CE6
+ movs r0, 0
+ strb r0, [r6]
+ movs r0, 0x1
+ b _08019CE8
+_08019CE6:
+ movs r0, 0
+_08019CE8:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8019C38
+
+ thumb_func_start sub_8019CF0
+sub_8019CF0: @ 8019CF0
+ push {r4,lr}
+ ldr r3, =gUnknown_02022C64
+ lsls r0, 2
+ ldr r4, [r3]
+ adds r4, r0
+ movs r0, 0x1
+ strb r0, [r4, 0x3]
+ adds r0, r1, 0
+ adds r1, r2, 0
+ bl sub_8019978
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08019D18
+ movs r0, 0
+ b _08019D1A
+ .pool
+_08019D18:
+ movs r0, 0x1
+_08019D1A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8019CF0
+
+ thumb_func_start AGBAssert
+AGBAssert: @ 8019D20
+ push {lr}
+ ldr r1, =gUnknown_02022C64
+ lsls r0, 2
+ ldr r1, [r1]
+ adds r1, r0
+ movs r0, 0x2
+ strb r0, [r1, 0x3]
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ beq _08019D3C
+ movs r0, 0
+ b _08019D3E
+ .pool
+_08019D3C:
+ movs r0, 0x1
+_08019D3E:
+ pop {r1}
+ bx r1
+ thumb_func_end AGBAssert
+
+ thumb_func_start sub_8019D44
+sub_8019D44: @ 8019D44
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldrb r1, [r4]
+ cmp r1, 0x1
+ beq _08019DA6
+ cmp r1, 0x1
+ bgt _08019D5A
+ cmp r1, 0
+ beq _08019D64
+ b _08019DC6
+_08019D5A:
+ cmp r1, 0x2
+ beq _08019D70
+ cmp r1, 0x3
+ beq _08019DB4
+ b _08019DC6
+_08019D64:
+ ldrb r0, [r4, 0x3]
+ cmp r0, 0x1
+ bne _08019DC6
+ movs r0, 0x2
+ strb r0, [r4]
+ strb r1, [r4, 0x2]
+_08019D70:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8019F8C
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _08019D96
+ ldrb r0, [r4, 0x3]
+ cmp r0, 0x2
+ bne _08019D96
+ strb r1, [r4]
+ strb r1, [r4, 0x2]
+ adds r0, r5, 0
+ bl sub_8019AB8
+ adds r0, r5, 0
+ bl flag_set_x63
+ b _08019DC6
+_08019D96:
+ adds r0, r4, 0x2
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_8019C38
+ cmp r0, 0x1
+ bne _08019DC6
+ b _08019DC4
+_08019DA6:
+ ldrb r0, [r4, 0x3]
+ cmp r0, 0x2
+ bne _08019DC6
+ movs r1, 0
+ movs r0, 0x3
+ strb r0, [r4]
+ strb r1, [r4, 0x2]
+_08019DB4:
+ adds r0, r4, 0x2
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_8019BDC
+ cmp r0, 0x1
+ bne _08019DC6
+ movs r0, 0
+_08019DC4:
+ strb r0, [r4]
+_08019DC6:
+ movs r0, 0
+ strb r0, [r4, 0x3]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8019D44
+
+ thumb_func_start sub_8019DD0
+sub_8019DD0: @ 8019DD0
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, =gUnknown_02022C64
+_08019DD6:
+ lsls r0, r4, 2
+ ldr r1, [r5]
+ adds r1, r0
+ adds r0, r4, 0
+ bl sub_8019D44
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08019DD6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8019DD0
+
+ thumb_func_start sub_8019DF4
+sub_8019DF4: @ 8019DF4
+ push {r4,lr}
+ ldr r4, =sub_8019DD0
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08019E18
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ b _08019E1A
+ .pool
+_08019E18:
+ movs r0, 0x10
+_08019E1A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8019DF4
+
+ thumb_func_start sub_8019E20
+sub_8019E20: @ 8019E20
+ push {lr}
+ ldr r0, =sub_8019DD0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xF
+ bhi _08019E34
+ bl DestroyTask
+_08019E34:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8019E20
+
+ thumb_func_start sub_8019E3C
+sub_8019E3C: @ 8019E3C
+ push {r4,lr}
+ movs r4, 0
+_08019E40:
+ adds r0, r4, 0
+ bl sub_8019A30
+ cmp r0, 0
+ bne _08019E56
+ adds r0, r4, 0
+ bl sub_8019AB8
+ adds r0, r4, 0
+ bl flag_set_x63
+_08019E56:
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08019E40
+ ldr r1, =gUnknown_02022C64
+ movs r0, 0
+ str r0, [r1]
+ bl sub_8019E20
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8019E3C
+
+ thumb_func_start sub_8019E70
+sub_8019E70: @ 8019E70
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ str r0, [sp, 0x8]
+ mov r9, r1
+ movs r7, 0
+ mov r0, r9
+ lsls r0, 2
+ mov r8, r0
+ ldr r0, =gUnknown_082F0740
+ mov r2, r8
+ adds r1, r2, r0
+ ldrh r1, [r1]
+ mov r2, sp
+ strh r1, [r2, 0xC]
+ adds r0, 0x2
+ add r0, r8
+ ldrh r0, [r0]
+ mov r10, r0
+ ldr r6, =gUnknown_082F0760
+_08019E9E:
+ mov r5, r8
+ add r5, r9
+ adds r5, r7
+ adds r4, r5, 0
+ subs r4, 0x38
+ lsls r4, 24
+ lsrs r4, 24
+ movs r2, 0
+ ldrsb r2, [r6, r2]
+ mov r0, sp
+ ldrh r0, [r0, 0xC]
+ adds r2, r0, r2
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x1
+ ldrsb r3, [r6, r3]
+ add r3, r10
+ lsls r3, 16
+ asrs r3, 16
+ movs r0, 0x3
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r0, 0x41
+ adds r1, r4, 0
+ bl sprite_new
+ ldr r1, [sp, 0x8]
+ adds r5, r1, r5
+ strb r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8097C44
+ adds r6, 0x2
+ adds r7, 0x1
+ cmp r7, 0x4
+ ble _08019E9E
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8019E70
+
+ thumb_func_start sub_8019F04
+sub_8019F04: @ 8019F04
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r4, 0
+ ldr r6, =gSprites
+_08019F0C:
+ adds r0, r5, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+ adds r4, 0x1
+ cmp r4, 0x27
+ ble _08019F0C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8019F04
+
+ thumb_func_start sub_8019F2C
+sub_8019F2C: @ 8019F2C
+ push {r4-r7,lr}
+ sub sp, 0x8
+ movs r5, 0
+ add r7, sp, 0x4
+_08019F34:
+ movs r4, 0
+ adds r6, r5, 0x1
+_08019F38:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, sp
+ adds r3, r7, 0
+ bl sub_8019990
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ bl sub_8088B94
+ adds r4, 0x1
+ cmp r4, 0x4
+ ble _08019F38
+ adds r5, r6, 0
+ cmp r5, 0x7
+ ble _08019F34
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8019F2C
+
+ thumb_func_start sub_8019F64
+sub_8019F64: @ 8019F64
+ push {lr}
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _08019F78
+ ldr r0, =gUnknown_082F076F
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ b _08019F88
+ .pool
+_08019F78:
+ ldrb r1, [r2, 0xA]
+ movs r0, 0x7F
+ ands r0, r1
+ cmp r0, 0x45
+ beq _08019F86
+ movs r0, 0x4
+ b _08019F88
+_08019F86:
+ movs r0, 0x1
+_08019F88:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8019F64
+
+ thumb_func_start sub_8019F8C
+sub_8019F8C: @ 8019F8C
+ push {lr}
+ adds r2, r0, 0
+ lsls r0, r2, 2
+ adds r0, r2
+ adds r0, r1
+ subs r0, 0x38
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8097C8C
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8019F8C
+
+ thumb_func_start sub_8019FA4
+sub_8019FA4: @ 8019FA4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r9, r3
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r0, r5, 2
+ adds r0, r5
+ adds r7, r0, r6
+ adds r0, r5, 0
+ bl sub_8019F8C
+ cmp r0, 0x1
+ bne _08019FE2
+ adds r4, r7, 0
+ subs r4, 0x38
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8097C44
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8097CC4
+_08019FE2:
+ adds r0, r7, 0
+ subs r0, 0x38
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ bl sub_8097BB4
+ adds r0, r6, 0
+ adds r1, r5, 0
+ mov r2, r9
+ bl sub_8019F64
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_801A3B0
+ add r3, sp, 0x4
+ adds r0, r5, 0
+ adds r1, r6, 0
+ mov r2, sp
+ bl sub_8019990
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ movs r2, 0x1
+ bl sub_8088B94
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8019FA4
+
+ thumb_func_start sub_801A02C
+sub_801A02C: @ 801A02C
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r0, r4, 2
+ adds r0, r4
+ adds r0, r5
+ subs r0, 0x38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl sub_8097CC4
+ add r3, sp, 0x4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ mov r2, sp
+ bl sub_8019990
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ bl sub_8088B94
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801A02C
+
+ thumb_func_start sub_801A064
+sub_801A064: @ 801A064
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r7, r0, 0
+ mov r8, r1
+ mov r6, sp
+ adds r6, 0x2
+ mov r0, sp
+ adds r1, r6, 0
+ bl PlayerGetDestCoords
+ add r4, sp, 0x4
+ mov r5, sp
+ adds r5, 0x6
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl plaer_get_pos_including_state_based_drift
+ lsls r0, r7, 2
+ adds r0, r7
+ subs r0, 0x38
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8097C8C
+ mov r10, r6
+ mov r9, r4
+ adds r6, r5, 0
+ cmp r0, 0x1
+ bne _0801A0F0
+ mov r0, sp
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ mov r0, r10
+ movs r1, 0
+ ldrsh r3, [r0, r1]
+ adds r0, r7, 0
+ movs r1, 0
+ bl sub_80199E0
+ cmp r0, 0x1
+ beq _0801A15C
+ movs r0, 0
+ ldrsh r2, [r4, r0]
+ movs r1, 0
+ ldrsh r3, [r6, r1]
+ adds r0, r7, 0
+ movs r1, 0
+ bl sub_80199E0
+ cmp r0, 0x1
+ beq _0801A15C
+ mov r2, r8
+ ldrb r0, [r2, 0xB]
+ lsls r0, 31
+ lsrs r0, 31
+ ldrb r1, [r2, 0x2]
+ bl sub_8019978
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r7, 0
+ movs r1, 0
+ mov r3, r8
+ bl sub_8019FA4
+_0801A0F0:
+ movs r5, 0x1
+ mov r4, r8
+ adds r4, 0x4
+_0801A0F6:
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _0801A106
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_801A02C
+ b _0801A154
+_0801A106:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ mov r0, r10
+ movs r1, 0
+ ldrsh r3, [r0, r1]
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_80199E0
+ cmp r0, 0
+ bne _0801A154
+ mov r0, r9
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ movs r0, 0
+ ldrsh r3, [r6, r0]
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_80199E0
+ cmp r0, 0
+ bne _0801A154
+ ldrb r2, [r4]
+ lsrs r0, r2, 3
+ movs r1, 0x1
+ ands r0, r1
+ movs r1, 0x7
+ ands r1, r2
+ bl sub_8019978
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r7, 0
+ adds r1, r5, 0
+ mov r3, r8
+ bl sub_8019FA4
+_0801A154:
+ adds r4, 0x1
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _0801A0F6
+_0801A15C:
+ 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_801A064
+
+ thumb_func_start sub_801A16C
+sub_801A16C: @ 801A16C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldrb r0, [r4, 0xA]
+ lsls r0, 25
+ lsrs r0, 25
+ subs r0, 0x40
+ cmp r0, 0x14
+ bhi _0801A20E
+ lsls r0, 2
+ ldr r1, =_0801A18C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801A18C:
+ .4byte _0801A1E0
+ .4byte _0801A200
+ .4byte _0801A20E
+ .4byte _0801A20E
+ .4byte _0801A200
+ .4byte _0801A200
+ .4byte _0801A20E
+ .4byte _0801A20E
+ .4byte _0801A200
+ .4byte _0801A20E
+ .4byte _0801A20E
+ .4byte _0801A20E
+ .4byte _0801A20E
+ .4byte _0801A20E
+ .4byte _0801A20E
+ .4byte _0801A20E
+ .4byte _0801A20E
+ .4byte _0801A200
+ .4byte _0801A200
+ .4byte _0801A200
+ .4byte _0801A1E0
+_0801A1E0:
+ ldrb r1, [r4, 0xB]
+ lsls r1, 31
+ lsrs r1, 31
+ ldrb r2, [r4, 0x2]
+ adds r0, r5, 0
+ bl sub_8019CF0
+ movs r4, 0
+_0801A1F0:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_801A02C
+ adds r4, 0x1
+ cmp r4, 0x4
+ bls _0801A1F0
+ b _0801A20E
+_0801A200:
+ adds r0, r5, 0
+ bl AGBAssert
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_801A064
+_0801A20E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801A16C
+
+ thumb_func_start sub_801A214
+sub_801A214: @ 801A214
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl AGBAssert
+ movs r4, 0
+_0801A21E:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_801A02C
+ adds r4, 0x1
+ cmp r4, 0x4
+ ble _0801A21E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801A214
+
+ thumb_func_start sub_801A234
+sub_801A234: @ 801A234
+ push {r4,r5,lr}
+ ldr r2, =gUnknown_02022C68
+ movs r1, 0
+ str r1, [r2]
+ movs r5, 0
+ ldr r4, [r0]
+_0801A240:
+ ldrb r0, [r4, 0x1A]
+ movs r1, 0x3
+ ands r1, r0
+ cmp r1, 0x1
+ bne _0801A258
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_801A16C
+ b _0801A264
+ .pool
+_0801A258:
+ cmp r1, 0x2
+ bne _0801A264
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_801A214
+_0801A264:
+ adds r4, 0x20
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _0801A240
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801A234
+
+ thumb_func_start sub_801A274
+sub_801A274: @ 801A274
+ ldr r1, =gUnknown_02022C68
+ movs r0, 0x96
+ lsls r0, 1
+ str r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_801A274
+
+ thumb_func_start sub_801A284
+sub_801A284: @ 801A284
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, =gUnknown_02022C68
+ ldr r1, [r0]
+ adds r1, 0x1
+ str r1, [r0]
+ movs r0, 0x96
+ lsls r0, 1
+ cmp r1, r0
+ bls _0801A29E
+ adds r0, r2, 0
+ bl sub_801A234
+_0801A29E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801A284
+
+ thumb_func_start sub_801A2A8
+sub_801A2A8: @ 801A2A8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ adds r5, r0, 0
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ bl is_walking_or_running
+ cmp r0, 0
+ bne _0801A2F0
+ b _0801A396
+_0801A2C4:
+ ldr r4, =gUnknown_082F076A
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ ldrb r2, [r0]
+ adds r0, r6, 0
+ ldr r1, [sp, 0xC]
+ bl sub_801A3B0
+ ldr r0, [sp, 0x4]
+ strh r6, [r0]
+ mov r1, sp
+ ldrh r2, [r1, 0xC]
+ ldr r1, [sp, 0x8]
+ strh r2, [r1]
+ movs r0, 0x1
+ b _0801A398
+ .pool
+_0801A2F0:
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, =gUnknown_082F0740
+ adds r7, r5, 0
+ movs r1, 0
+ mov r10, r1
+ adds r2, r0, 0x2
+ str r2, [sp, 0x10]
+ str r0, [sp, 0x14]
+_0801A30E:
+ movs r6, 0
+ ldr r4, [sp, 0x14]
+ movs r0, 0
+ ldrsh r4, [r4, r0]
+ mov r9, r4
+ ldr r1, [sp, 0x10]
+ mov r8, r1
+ ldr r5, =gUnknown_082F0760
+_0801A31E:
+ mov r2, r10
+ adds r3, r2, r6
+ mov r0, sp
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ add r0, r9
+ adds r0, 0x7
+ cmp r1, r0
+ bne _0801A372
+ mov r1, sp
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ mov r4, r8
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r2, 0x1
+ ldrsb r2, [r5, r2]
+ adds r1, r2
+ adds r1, 0x7
+ cmp r0, r1
+ bne _0801A372
+ adds r0, r3, 0
+ subs r0, 0x38
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8097C8C
+ cmp r0, 0
+ bne _0801A372
+ adds r0, r4, 0
+ bl sub_8097D9C
+ cmp r0, 0
+ bne _0801A372
+ ldrb r1, [r7, 0x1A]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ beq _0801A2C4
+_0801A372:
+ adds r5, 0x2
+ adds r6, 0x1
+ cmp r6, 0x4
+ ble _0801A31E
+ adds r7, 0x20
+ movs r4, 0x5
+ add r10, r4
+ ldr r0, [sp, 0x10]
+ adds r0, 0x4
+ str r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ adds r1, 0x4
+ str r1, [sp, 0x14]
+ ldr r2, [sp, 0xC]
+ adds r2, 0x1
+ str r2, [sp, 0xC]
+ cmp r2, 0x7
+ ble _0801A30E
+_0801A396:
+ movs r0, 0
+_0801A398:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801A2A8
+
+ thumb_func_start sub_801A3B0
+sub_801A3B0: @ 801A3B0
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r3, r1, 0
+ lsls r1, r2, 24
+ lsrs r1, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ subs r0, 0x38
+ adds r0, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8097B78
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801A3B0
+
+ thumb_func_start sub_801A3D0
+sub_801A3D0: @ 801A3D0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ lsls r3, r4, 5
+ adds r3, r2
+ adds r2, r3, 0
+ bl sub_8019F64
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_801A3B0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801A3D0
+
+ thumb_func_start sub_801A3F4
+sub_801A3F4: @ 801A3F4
+ push {lr}
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801A414
+ bl RunTasks
+ bl RunTextPrinters
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+_0801A414:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801A3F4
+
+ thumb_func_start sub_801A418
+sub_801A418: @ 801A418
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801A418
+
+ thumb_func_start sub_801A42C
+sub_801A42C: @ 801A42C
+ push {lr}
+ ldr r0, =sub_801A43C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801A42C
+
+ thumb_func_start sub_801A43C
+sub_801A43C: @ 801A43C
+ push {r4,r5,lr}
+ sub sp, 0xC
+ movs r0, 0
+ movs r1, 0
+ bl SetGpuReg
+ ldr r5, =gUnknown_03000DAC
+ movs r0, 0x6C
+ bl AllocZeroed
+ str r0, [r5]
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_082F0D34
+ movs r0, 0
+ movs r2, 0x2
+ bl InitBgsFromTemplates
+ movs r4, 0x80
+ lsls r4, 4
+ adds r0, r4, 0
+ bl Alloc
+ adds r1, r0, 0
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ adds r0, r4, 0
+ bl Alloc
+ adds r1, r0, 0
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ ldr r1, =gWirelessInfoScreenGfx
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl copy_decompressed_tile_data_to_vram_autofree
+ ldr r1, =gWirelessInfoScreenTilemap
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl CopyToBgTilemapBuffer
+ ldr r0, =gUnknown_082F0D3C
+ bl InitWindows
+ bl DeactivateAllTextPrinters
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl ResetTasks
+ bl ScanlineEffect_Stop
+ bl m4aSoundVSyncOn
+ ldr r0, =sub_801A418
+ bl SetVBlankCallback
+ ldr r0, =sub_801A6C0
+ movs r1, 0
+ bl CreateTask
+ ldr r1, [r5]
+ adds r1, 0x60
+ strb r0, [r1]
+ bl sub_8013C40
+ ldr r1, [r5]
+ adds r1, 0x61
+ strb r0, [r1]
+ ldr r1, [r5]
+ movs r0, 0x1
+ str r0, [r1, 0x1C]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ ldr r0, =gWirelessInfoScreenPal
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ movs r0, 0xF0
+ bl sub_81978B0
+ bl UnkTextUtil_Reset
+ movs r0, 0x20
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0xF
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ ldr r0, =sub_801A3F4
+ bl SetMainCallback2
+ bl RunTasks
+ bl RunTextPrinters
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801A43C
+
+ thumb_func_start sub_801A584
+sub_801A584: @ 801A584
+ push {r4,lr}
+ bl FreeAllWindowBuffers
+ movs r4, 0
+_0801A58C:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl GetBgTilemapBuffer
+ bl Free
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _0801A58C
+ ldr r0, =gUnknown_03000DAC
+ ldr r0, [r0]
+ bl Free
+ ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801A584
+
+ thumb_func_start sub_801A5BC
+sub_801A5BC: @ 801A5BC
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _0801A5E4
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xE
+ bne _0801A5E0
+ movs r0, 0
+ strh r0, [r1]
+_0801A5E0:
+ movs r0, 0
+ strh r0, [r2]
+_0801A5E4:
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ adds r0, 0x2
+ lsls r0, 5
+ ldr r1, =gWirelessInfoScreenPal
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0x10
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801A5BC
+
+ thumb_func_start sub_801A600
+sub_801A600: @ 801A600
+ push {r4,r5,lr}
+ sub sp, 0x8
+ movs r0, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x1
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x2
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r5, =gUnknown_082F0D5C
+ ldr r4, [r5]
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0xC0
+ bl GetStringCenterAlignXOffset
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x6
+ str r0, [sp]
+ movs r0, 0x3
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl sub_801A8B0
+ movs r1, 0
+_0801A644:
+ adds r4, r1, 0x1
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r2, [r0]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 25
+ movs r1, 0x80
+ lsls r1, 20
+ adds r0, r1
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r1, 0x1
+ movs r3, 0
+ bl sub_801A8B0
+ adds r1, r4, 0
+ cmp r4, 0x2
+ ble _0801A644
+ ldr r1, =gUnknown_082F0D5C
+ adds r0, r4, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, [r0]
+ lsls r0, r4, 4
+ subs r0, r4
+ lsls r0, 25
+ movs r1, 0x80
+ lsls r1, 20
+ adds r0, r1
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r3, 0
+ bl sub_801A8B0
+ movs r0, 0
+ bl PutWindowTilemap
+ movs r0, 0
+ movs r1, 0x2
+ bl CopyWindowToVram
+ movs r0, 0x1
+ bl PutWindowTilemap
+ movs r0, 0x1
+ movs r1, 0x2
+ bl CopyWindowToVram
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801A600
+
+ thumb_func_start sub_801A6C0
+sub_801A6C0: @ 801A6C0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x5
+ bls _0801A6E2
+ b _0801A89C
+_0801A6E2:
+ lsls r0, 2
+ ldr r1, =_0801A6F4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801A6F4:
+ .4byte _0801A70C
+ .4byte _0801A728
+ .4byte _0801A74C
+ .4byte _0801A768
+ .4byte _0801A85C
+ .4byte _0801A884
+_0801A70C:
+ bl sub_801A600
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0801A89C
+ .pool
+_0801A728:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0
+ bl ShowBg
+ b _0801A86C
+_0801A74C:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0801A75A
+ b _0801A89C
+_0801A75A:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ b _0801A876
+ .pool
+_0801A768:
+ ldr r0, =gUnknown_03000DAC
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0x10
+ adds r2, r0, 0
+ adds r2, 0x20
+ adds r3, r0, 0
+ adds r3, 0x61
+ ldrb r3, [r3]
+ bl sub_801AA30
+ lsls r1, r5, 2
+ mov r8, r1
+ cmp r0, 0
+ beq _0801A7F8
+ movs r0, 0x2
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r4, 0
+ ldr r6, =gStringVar4
+ movs r7, 0x80
+ lsls r7, 20
+_0801A796:
+ ldr r0, =gUnknown_03000DAC
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ cmp r4, 0x3
+ beq _0801A7CC
+ lsrs r0, r7, 24
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0x1
+ adds r2, r6, 0
+ movs r3, 0xC
+ bl sub_801A8B0
+ b _0801A7DE
+ .pool
+_0801A7CC:
+ movs r0, 0x62
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ movs r1, 0x1
+ adds r2, r6, 0
+ movs r3, 0xC
+ bl sub_801A8B0
+_0801A7DE:
+ movs r2, 0xF0
+ lsls r2, 21
+ adds r7, r2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0801A796
+ movs r0, 0x2
+ bl PutWindowTilemap
+ movs r0, 0x2
+ movs r1, 0x3
+ bl CopyWindowToVram
+_0801A7F8:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801A80C
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801A836
+_0801A80C:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, =gTasks
+ ldr r0, =gUnknown_03000DAC
+ ldr r0, [r0]
+ adds r0, 0x61
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0xFF
+ strh r1, [r0, 0x26]
+ mov r0, r8
+ adds r1, r0, r5
+ lsls r1, 3
+ adds r1, r2
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_0801A836:
+ mov r2, r8
+ adds r1, r2, r5
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r1, r0
+ adds r0, r1, 0
+ adds r0, 0xE
+ adds r1, 0x10
+ bl sub_801A5BC
+ b _0801A89C
+ .pool
+_0801A85C:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_0801A86C:
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+_0801A876:
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _0801A89C
+ .pool
+_0801A884:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0801A89C
+ ldr r0, =sub_801A584
+ bl SetMainCallback2
+ adds r0, r5, 0
+ bl DestroyTask
+_0801A89C:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801A6C0
+
+ thumb_func_start sub_801A8B0
+sub_801A8B0: @ 801A8B0
+ push {r4-r7,lr}
+ sub sp, 0x18
+ mov r12, r2
+ ldr r2, [sp, 0x2C]
+ ldr r4, [sp, 0x30]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r3, 24
+ lsrs r5, r3, 24
+ lsls r2, 24
+ lsrs r3, r2, 24
+ lsls r4, 24
+ lsrs r0, r4, 24
+ cmp r0, 0x4
+ bhi _0801A93A
+ lsls r0, 2
+ ldr r1, =_0801A8E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801A8E0:
+ .4byte _0801A8F4
+ .4byte _0801A902
+ .4byte _0801A910
+ .4byte _0801A91E
+ .4byte _0801A92C
+_0801A8F4:
+ add r1, sp, 0x14
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ movs r0, 0x3
+ b _0801A938
+_0801A902:
+ add r1, sp, 0x14
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ movs r0, 0x3
+ b _0801A938
+_0801A910:
+ add r1, sp, 0x14
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x4
+ strb r0, [r1, 0x1]
+ movs r0, 0x5
+ b _0801A938
+_0801A91E:
+ add r1, sp, 0x14
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x7
+ strb r0, [r1, 0x1]
+ movs r0, 0x6
+ b _0801A938
+_0801A92C:
+ add r1, sp, 0x14
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ movs r0, 0x2
+_0801A938:
+ strb r0, [r1, 0x2]
+_0801A93A:
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ add r0, sp, 0x14
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp, 0xC]
+ mov r0, r12
+ str r0, [sp, 0x10]
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl AddTextPrinterParameterized2
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801A8B0
+
+ thumb_func_start sub_801A960
+sub_801A960: @ 801A960
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r12, r0
+ adds r7, r1, 0
+ ldrb r0, [r0, 0xA]
+ lsls r0, 25
+ lsrs r0, 25
+ mov r8, r0
+ movs r4, 0
+ ldr r0, =gUnknown_082F0D70
+ mov r9, r0
+ movs r1, 0x1
+ add r1, r9
+ mov r10, r1
+ mov r3, r12
+ adds r3, 0x4
+ str r3, [sp]
+_0801A98A:
+ lsls r0, r4, 1
+ adds r2, r0, r4
+ mov r3, r9
+ adds r1, r2, r3
+ adds r5, r0, 0
+ adds r6, r4, 0x1
+ ldrb r1, [r1]
+ cmp r8, r1
+ bne _0801A9EE
+ mov r0, r12
+ ldrb r1, [r0, 0x1A]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0801A9EE
+ mov r0, r9
+ adds r0, 0x2
+ adds r3, r2, r0
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _0801A9DC
+ movs r2, 0
+ movs r1, 0
+ ldr r3, [sp]
+_0801A9BA:
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801A9C4
+ adds r2, 0x1
+_0801A9C4:
+ adds r1, 0x1
+ cmp r1, 0x3
+ ble _0801A9BA
+ adds r2, 0x1
+ adds r0, r5, r4
+ add r0, r10
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r7
+ b _0801A9E8
+ .pool
+_0801A9DC:
+ mov r1, r10
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r7
+ ldrb r2, [r3]
+_0801A9E8:
+ ldr r0, [r1]
+ adds r0, r2
+ str r0, [r1]
+_0801A9EE:
+ adds r4, r6, 0
+ cmp r4, 0x1E
+ bls _0801A98A
+ mov r0, r8
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801A960
+
+ thumb_func_start sub_801AA08
+sub_801AA08: @ 801AA08
+ push {r4,lr}
+ movs r4, 0
+ adds r3, r1, 0
+ adds r2, r0, 0
+_0801AA10:
+ ldr r1, [r2]
+ ldr r0, [r3]
+ cmp r1, r0
+ beq _0801AA1C
+ movs r0, 0x1
+ b _0801AA28
+_0801AA1C:
+ adds r3, 0x4
+ adds r2, 0x4
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0801AA10
+ movs r0, 0
+_0801AA28:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801AA08
+
+ thumb_func_start sub_801AA30
+sub_801AA30: @ 801AA30
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ adds r6, r0, 0
+ mov r9, r1
+ adds r5, r2, 0
+ lsls r4, r3, 24
+ lsrs r4, 24
+ movs r0, 0
+ mov r8, r0
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r7, r0, r1
+ movs r4, 0
+_0801AA5E:
+ lsls r1, r4, 5
+ ldr r0, [r7]
+ adds r0, r1
+ mov r1, sp
+ bl sub_801A960
+ adds r1, r0, 0
+ ldr r0, [r5]
+ cmp r1, r0
+ beq _0801AA78
+ str r1, [r5]
+ movs r2, 0x1
+ mov r8, r2
+_0801AA78:
+ adds r5, 0x4
+ adds r4, 0x1
+ cmp r4, 0xF
+ ble _0801AA5E
+ mov r0, sp
+ mov r1, r9
+ bl sub_801AA08
+ cmp r0, 0
+ bne _0801AA9C
+ mov r3, r8
+ cmp r3, 0x1
+ beq _0801AAC4
+ movs r0, 0
+ b _0801AAC6
+ .pool
+_0801AA9C:
+ adds r1, r6, 0
+ mov r0, sp
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r0, [r0]
+ str r0, [r1]
+ mov r1, r9
+ mov r0, sp
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r0, [r6]
+ ldr r1, [r6, 0x4]
+ adds r0, r1
+ ldr r1, [r6, 0x8]
+ adds r0, r1
+ ldr r1, [r6, 0xC]
+ adds r0, r1
+ str r0, [r6, 0xC]
+_0801AAC4:
+ movs r0, 0x1
+_0801AAC6:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801AA30
+
+ thumb_func_start sub_801AAD4
+sub_801AAD4: @ 801AAD4
+ push {r4-r7,lr}
+ movs r0, 0xA
+ bl sub_8014210
+ movs r4, 0
+ movs r7, 0x64
+ ldr r6, =gPlayerParty
+ ldr r5, =gEnemyParty
+_0801AAE4:
+ ldr r0, =gUnknown_0203CEF8
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r1, r0, 0
+ muls r1, r7
+ adds r1, r6
+ adds r0, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r5, 0x64
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _0801AAE4
+ ldr r4, =gPlayerParty
+ movs r0, 0xFA
+ lsls r0, 1
+ adds r5, r4, r0
+_0801AB0A:
+ adds r0, r4, 0
+ bl ZeroMonData
+ adds r4, 0x64
+ cmp r4, r5
+ ble _0801AB0A
+ ldr r4, =gPlayerParty
+ movs r5, 0
+ adds r6, r4, 0
+ adds r6, 0x64
+_0801AB1E:
+ ldr r1, =gEnemyParty
+ adds r1, r5, r1
+ adds r0, r4, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r4, 0x64
+ adds r5, 0x64
+ cmp r4, r6
+ ble _0801AB1E
+ movs r0, 0x32
+ bl IncrementGameStat
+ bl CalculatePlayerPartyCount
+ ldr r0, =gTrainerBattleOpponent_A
+ movs r2, 0xC0
+ lsls r2, 4
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldr r0, =CB2_InitBattle
+ bl SetMainCallback2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801AAD4
+
+ thumb_func_start sub_801AB68
+sub_801AB68: @ 801AB68
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ adds r5, r0, 0
+ adds r7, r1, 0
+ adds r6, r2, 0
+ ldr r4, [sp, 0x38]
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0
+ mov r9, r0
+ movs r1, 0x1
+ mov r10, r1
+ ldr r0, =gUnknown_082F0DE4
+ mov r8, r0
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ orrs r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ str r3, [sp, 0x14]
+ bl FillWindowPixelBuffer
+ mov r1, r9
+ str r1, [sp]
+ mov r0, r10
+ str r0, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ lsls r4, 24
+ asrs r4, 24
+ str r4, [sp, 0xC]
+ str r7, [sp, 0x10]
+ adds r0, r5, 0
+ movs r1, 0x1
+ adds r2, r6, 0
+ ldr r3, [sp, 0x14]
+ bl AddTextPrinterParameterized2
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801AB68
+
+ thumb_func_start sub_801ABDC
+sub_801ABDC: @ 801ABDC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r5, r2, 0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0801ABF4
+ cmp r0, 0x1
+ beq _0801AC22
+ b _0801AC36
+_0801ABF4:
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0xD
+ bl sub_8098858
+ str r5, [sp]
+ movs r0, 0
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_801AB68
+ movs r0, 0
+ bl PutWindowTilemap
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _0801AC36
+_0801AC22:
+ movs r0, 0
+ bl IsTextPrinterActive
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ bne _0801AC36
+ strh r0, [r4]
+ movs r0, 0x1
+ b _0801AC38
+_0801AC36:
+ movs r0, 0
+_0801AC38:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801ABDC
+
+ thumb_func_start sub_801AC40
+sub_801AC40: @ 801AC40
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801AC40
+
+ thumb_func_start sub_801AC54
+sub_801AC54: @ 801AC54
+ push {r4,lr}
+ sub sp, 0xC
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x33
+ bls _0801AC6A
+ b _0801AFAE
+_0801AC6A:
+ lsls r0, 2
+ ldr r1, =_0801AC7C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801AC7C:
+ .4byte _0801AD4C
+ .4byte _0801ADFC
+ .4byte _0801AE24
+ .4byte _0801AE48
+ .4byte _0801AE98
+ .4byte _0801AFAE
+ .4byte _0801AF7C
+ .4byte _0801AF58
+ .4byte _0801AF7C
+ .4byte _0801AF98
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AF24
+ .4byte _0801AF40
+_0801AD4C:
+ movs r0, 0
+ movs r1, 0
+ bl SetGpuReg
+ ldr r4, =gUnknown_02022C6C
+ movs r0, 0x4
+ bl AllocZeroed
+ str r0, [r4]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_082F0DD0
+ movs r0, 0
+ movs r2, 0x1
+ bl InitBgsFromTemplates
+ bl reset_temp_tile_data_buffers
+ ldr r0, =gUnknown_082F0DD4
+ bl InitWindows
+ lsls r0, 16
+ cmp r0, 0
+ bne _0801AD8C
+ b _0801AFC2
+_0801AD8C:
+ bl DeactivateAllTextPrinters
+ movs r0, 0
+ bl ClearWindowTilemap
+ movs r0, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ movs r0, 0x1E
+ str r0, [sp]
+ movs r0, 0x14
+ str r0, [sp, 0x4]
+ movs r0, 0xF
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0xD0
+ bl sub_809882C
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0xD0
+ bl box_border_load_tiles_and_pal
+ bl sub_819789C
+ ldr r0, =sub_801AC40
+ bl SetVBlankCallback
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _0801AF8A
+ .pool
+_0801ADFC:
+ ldr r0, =gUnknown_02022C6C
+ ldr r0, [r0]
+ ldr r1, =gText_CommStandbyAwaitingOtherPlayer
+ movs r2, 0
+ bl sub_801ABDC
+ cmp r0, 0
+ bne _0801AE0E
+ b _0801AFAE
+_0801AE0E:
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+ b _0801AF8A
+ .pool
+_0801AE24:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r0, 0
+ bl ShowBg
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _0801AF8A
+ .pool
+_0801AE48:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801AE54
+ b _0801AFAE
+_0801AE54:
+ ldr r4, =gBlockSendBuffer
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x20
+ bl memset
+ ldr r0, =gUnknown_0203CEF8
+ ldrb r1, [r0]
+ ldrb r0, [r0, 0x1]
+ cmn r1, r0
+ bne _0801AE78
+ movs r0, 0x52
+ b _0801AE7A
+ .pool
+_0801AE78:
+ movs r0, 0x51
+_0801AE7A:
+ strb r0, [r4]
+ ldr r1, =gBlockSendBuffer
+ movs r0, 0
+ movs r2, 0x20
+ bl SendBlock
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+ b _0801AF8A
+ .pool
+_0801AE98:
+ bl GetBlockReceivedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _0801AEA6
+ b _0801AFAE
+_0801AEA6:
+ ldr r1, =gBlockRecvBuffer
+ ldrh r0, [r1]
+ cmp r0, 0x51
+ bne _0801AEE0
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, 0x51
+ bne _0801AEE0
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, =gMain
+ movs r1, 0x87
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x32
+ b _0801AF16
+ .pool
+_0801AEE0:
+ bl sub_800AC34
+ ldr r4, =gBlockRecvBuffer
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 16
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, 0x52
+ bne _0801AF0C
+ ldr r0, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r0, r2
+ movs r1, 0x6
+ b _0801AF16
+ .pool
+_0801AF0C:
+ ldr r0, =gMain
+ movs r1, 0x87
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x8
+_0801AF16:
+ strb r1, [r0]
+ bl ResetBlockReceivedFlags
+ b _0801AFAE
+ .pool
+_0801AF24:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801AFAE
+ bl sub_800ADF8
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+ b _0801AF8A
+ .pool
+_0801AF40:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801AFAE
+ ldr r0, =sub_801AAD4
+ bl SetMainCallback2
+ b _0801AFAE
+ .pool
+_0801AF58:
+ ldr r0, =gUnknown_02022C6C
+ ldr r0, [r0]
+ ldr r1, =gText_RefusedBattle
+ movs r2, 0x1
+ bl sub_801ABDC
+ cmp r0, 0
+ beq _0801AFAE
+ ldr r0, =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ b _0801AFAE
+ .pool
+_0801AF7C:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0801AFAE
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r2, r0
+_0801AF8A:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0801AFAE
+ .pool
+_0801AF98:
+ ldr r0, =gUnknown_02022C6C
+ ldr r0, [r0]
+ ldr r1, =gText_BattleWasRefused
+ movs r2, 0x1
+ bl sub_801ABDC
+ cmp r0, 0
+ beq _0801AFAE
+ ldr r0, =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+_0801AFAE:
+ bl RunTasks
+ bl RunTextPrinters
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+_0801AFC2:
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801AC54
+
+ thumb_func_start sub_801AFD8
+sub_801AFD8: @ 801AFD8
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r0, =0x0000322c
+ adds r1, r0
+ ldr r2, =0x050000db
+ mov r0, sp
+ bl CpuSet
+ bl sub_801B180
+ bl sub_811F8BC
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801AFD8
+
+ thumb_func_start sub_801B00C
+sub_801B00C: @ 801B00C
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003230
+ adds r0, r1
+ bx lr
+ .pool
+ thumb_func_end sub_801B00C
+
+ thumb_func_start sav1_get_mevent_buffer_1
+sav1_get_mevent_buffer_1: @ 801B020
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x000033f0
+ adds r0, r1
+ bx lr
+ .pool
+ thumb_func_end sav1_get_mevent_buffer_1
+
+ thumb_func_start sav1_get_mevent_buffer_2
+sav1_get_mevent_buffer_2: @ 801B034
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ movs r1, 0xD5
+ lsls r1, 6
+ adds r0, r1
+ bx lr
+ .pool
+ thumb_func_end sav1_get_mevent_buffer_2
+
+ thumb_func_start sub_801B044
+sub_801B044: @ 801B044
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x0000356c
+ adds r0, r1
+ bx lr
+ .pool
+ thumb_func_end sub_801B044
+
+ thumb_func_start sub_801B058
+sub_801B058: @ 801B058
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003564
+ adds r0, r1
+ bx lr
+ .pool
+ thumb_func_end sub_801B058
+
+ thumb_func_start sub_801B06C
+sub_801B06C: @ 801B06C
+ push {lr}
+ bl sub_801B14C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801B06C
+
+ thumb_func_start sub_801B078
+sub_801B078: @ 801B078
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ bl sub_801B114
+ cmp r0, 0
+ beq _0801B0C4
+ bl sub_801B14C
+ ldr r4, =gSaveBlock1Ptr
+ ldr r0, [r4]
+ ldr r5, =0x00003230
+ adds r0, r5
+ movs r6, 0xDE
+ lsls r6, 1
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl memcpy
+ ldr r0, [r4]
+ adds r0, r5
+ adds r1, r6, 0
+ bl CalcCRC16WithTable
+ ldr r1, [r4]
+ ldr r2, =0x0000322c
+ adds r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [r1]
+ movs r0, 0x1
+ b _0801B0C6
+ .pool
+_0801B0C4:
+ movs r0, 0
+_0801B0C6:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B078
+
+ thumb_func_start sub_801B0CC
+sub_801B0CC: @ 801B0CC
+ push {r4,lr}
+ ldr r4, =gSaveBlock1Ptr
+ ldr r0, [r4]
+ ldr r1, =0x00003230
+ adds r0, r1
+ movs r1, 0xDE
+ lsls r1, 1
+ bl CalcCRC16WithTable
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, [r4]
+ ldr r2, =0x0000322c
+ adds r1, r4, r2
+ ldr r1, [r1]
+ cmp r0, r1
+ bne _0801B10C
+ ldr r1, =0x00003230
+ adds r0, r4, r1
+ bl sub_801B114
+ cmp r0, 0
+ beq _0801B10C
+ movs r0, 0x1
+ b _0801B10E
+ .pool
+_0801B10C:
+ movs r0, 0
+_0801B10E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B0CC
+
+ thumb_func_start sub_801B114
+sub_801B114: @ 801B114
+ push {lr}
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0801B120
+ movs r0, 0x1
+ b _0801B122
+_0801B120:
+ movs r0, 0
+_0801B122:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B114
+
+ thumb_func_start sub_801B128
+sub_801B128: @ 801B128
+ push {lr}
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003230
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ beq _0801B144
+ movs r0, 0x1
+ b _0801B146
+ .pool
+_0801B144:
+ movs r0, 0
+_0801B146:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B128
+
+ thumb_func_start sub_801B14C
+sub_801B14C: @ 801B14C
+ push {r4,lr}
+ sub sp, 0x4
+ movs r4, 0
+ str r4, [sp]
+ bl sub_801B00C
+ adds r1, r0, 0
+ ldr r2, =0x0500006f
+ mov r0, sp
+ bl CpuSet
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x0000322c
+ adds r0, r1
+ str r4, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801B14C
+
+ thumb_func_start sub_801B180
+sub_801B180: @ 801B180
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ bl sub_801B044
+ adds r1, r0, 0
+ ldr r2, =0x05000001
+ mov r0, sp
+ bl CpuSet
+ bl sub_801DBC0
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801B180
+
+ thumb_func_start sub_801B1A4
+sub_801B1A4: @ 801B1A4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003230
+ adds r4, r0, r1
+ bl sub_801B0CC
+ cmp r0, 0
+ bne _0801B1C4
+_0801B1B8:
+ movs r0, 0
+ b _0801B1DC
+ .pool
+_0801B1C4:
+ movs r2, 0
+ ldr r3, =0x000001bb
+_0801B1C8:
+ adds r0, r4, r2
+ adds r1, r5, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0801B1B8
+ adds r2, 0x1
+ cmp r2, r3
+ bls _0801B1C8
+ movs r0, 0x1
+_0801B1DC:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801B1A4
+
+ thumb_func_start sub_801B1E8
+sub_801B1E8: @ 801B1E8
+ push {lr}
+ bl sub_801B330
+ bl sub_801B368
+ bl sub_801B9F8
+ bl ClearRamScript
+ bl sub_809D4D8
+ bl sub_809D570
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000bec
+ adds r0, r1
+ bl sub_816534C
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801B1E8
+
+ thumb_func_start sub_801B21C
+sub_801B21C: @ 801B21C
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ bl sub_801B2CC
+ cmp r0, 0
+ beq _0801B274
+ bl sub_801B1E8
+ ldr r4, =gSaveBlock1Ptr
+ ldr r0, [r4]
+ ldr r5, =0x000033f0
+ adds r0, r5
+ movs r6, 0xA6
+ lsls r6, 1
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl memcpy
+ ldr r0, [r4]
+ adds r0, r5
+ adds r1, r6, 0
+ bl CalcCRC16WithTable
+ ldr r1, [r4]
+ ldr r3, =0x000033ec
+ adds r2, r1, r3
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [r2]
+ movs r0, 0xD5
+ lsls r0, 6
+ adds r2, r1, r0
+ adds r1, r5
+ ldrh r0, [r1, 0x2]
+ strh r0, [r2, 0x6]
+ movs r0, 0x1
+ b _0801B276
+ .pool
+_0801B274:
+ movs r0, 0
+_0801B276:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B21C
+
+ thumb_func_start sub_801B27C
+sub_801B27C: @ 801B27C
+ push {r4,r5,lr}
+ ldr r5, =gSaveBlock1Ptr
+ ldr r0, [r5]
+ ldr r1, =0x000033ec
+ adds r4, r0, r1
+ adds r1, 0x4
+ adds r0, r1
+ movs r1, 0xA6
+ lsls r1, 1
+ bl CalcCRC16WithTable
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [r4]
+ cmp r1, r0
+ bne _0801B2C4
+ ldr r0, [r5]
+ ldr r1, =0x000033f0
+ adds r0, r1
+ bl sub_801B2CC
+ cmp r0, 0
+ beq _0801B2C4
+ bl sub_80991F8
+ cmp r0, 0
+ beq _0801B2C4
+ movs r0, 0x1
+ b _0801B2C6
+ .pool
+_0801B2C4:
+ movs r0, 0
+_0801B2C6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B27C
+
+ thumb_func_start sub_801B2CC
+sub_801B2CC: @ 801B2CC
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _0801B302
+ ldrb r1, [r2, 0x8]
+ lsls r0, r1, 30
+ lsrs r0, 30
+ cmp r0, 0x2
+ bhi _0801B302
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B2F0
+ cmp r0, 0x40
+ beq _0801B2F0
+ cmp r0, 0x80
+ bne _0801B302
+_0801B2F0:
+ lsls r0, r1, 26
+ lsrs r0, 28
+ cmp r0, 0x7
+ bhi _0801B302
+ ldrb r0, [r2, 0x9]
+ cmp r0, 0x7
+ bhi _0801B302
+ movs r0, 0x1
+ b _0801B304
+_0801B302:
+ movs r0, 0
+_0801B304:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B2CC
+
+ thumb_func_start sub_801B308
+sub_801B308: @ 801B308
+ push {lr}
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x000033f0
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B328
+ movs r0, 0x1
+ b _0801B32A
+ .pool
+_0801B328:
+ movs r0, 0
+_0801B32A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B308
+
+ thumb_func_start sub_801B330
+sub_801B330: @ 801B330
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r5, 0
+ str r5, [sp]
+ ldr r4, =gSaveBlock1Ptr
+ ldr r1, [r4]
+ ldr r0, =0x000033f0
+ adds r1, r0
+ ldr r2, =0x05000053
+ mov r0, sp
+ bl CpuSet
+ ldr r0, [r4]
+ ldr r1, =0x000033ec
+ adds r0, r1
+ str r5, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801B330
+
+ thumb_func_start sub_801B368
+sub_801B368: @ 801B368
+ push {r4,lr}
+ sub sp, 0x4
+ movs r4, 0
+ str r4, [sp]
+ bl sav1_get_mevent_buffer_2
+ adds r1, r0, 0
+ ldr r2, =0x05000009
+ mov r0, sp
+ bl CpuSet
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x0000353c
+ adds r0, r1
+ str r4, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801B368
+
+ thumb_func_start sub_801B39C
+sub_801B39C: @ 801B39C
+ push {lr}
+ bl sub_801B27C
+ cmp r0, 0
+ bne _0801B3AA
+ movs r0, 0
+ b _0801B3B4
+_0801B3AA:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x000033f0
+ adds r0, r1
+ ldrh r0, [r0]
+_0801B3B4:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801B39C
+
+ thumb_func_start sub_801B3C0
+sub_801B3C0: @ 801B3C0
+ push {lr}
+ adds r2, r0, 0
+ ldrb r1, [r2, 0x8]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0x40
+ bne _0801B3D4
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+_0801B3D4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801B3C0
+
+ thumb_func_start sub_801B3D8
+sub_801B3D8: @ 801B3D8
+ push {lr}
+ lsls r0, 16
+ ldr r1, =0xfc180000
+ adds r0, r1
+ lsrs r0, 16
+ cmp r0, 0x13
+ bls _0801B3F0
+ movs r0, 0
+ b _0801B3F2
+ .pool
+_0801B3F0:
+ movs r0, 0x1
+_0801B3F2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B3D8
+
+ thumb_func_start sub_801B3F8
+sub_801B3F8: @ 801B3F8
+ push {r4,lr}
+ bl sub_801B39C
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_801B3D8
+ cmp r0, 0
+ beq _0801B430
+ ldr r1, =gUnknown_082F0DE8
+ ldr r2, =0xfffffc18
+ adds r0, r4, r2
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0801B430
+ movs r0, 0x1
+ b _0801B432
+ .pool
+_0801B430:
+ movs r0, 0
+_0801B432:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B3F8
+
+ thumb_func_start sub_801B438
+sub_801B438: @ 801B438
+ push {lr}
+ movs r3, 0
+ cmp r3, r1
+ bge _0801B45A
+ adds r2, r0, 0
+ adds r2, 0x8
+_0801B444:
+ ldrh r0, [r2, 0xE]
+ cmp r0, 0
+ beq _0801B452
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _0801B452
+ adds r3, 0x1
+_0801B452:
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bne _0801B444
+_0801B45A:
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B438
+
+ thumb_func_start sub_801B460
+sub_801B460: @ 801B460
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r1, 0
+ cmp r1, r2
+ bge _0801B49A
+ ldrh r6, [r4, 0x2]
+ movs r0, 0x16
+ adds r0, r5
+ mov r12, r0
+_0801B474:
+ lsls r3, r1, 1
+ mov r7, r12
+ ldrh r0, [r7]
+ cmp r0, r6
+ beq _0801B48C
+ adds r0, r5, 0
+ adds r0, 0x8
+ adds r0, r3
+ ldrh r0, [r0]
+ ldrh r3, [r4]
+ cmp r0, r3
+ bne _0801B490
+_0801B48C:
+ movs r0, 0x1
+ b _0801B49C
+_0801B490:
+ movs r7, 0x2
+ add r12, r7
+ adds r1, 0x1
+ cmp r1, r2
+ blt _0801B474
+_0801B49A:
+ movs r0, 0
+_0801B49C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B460
+
+ thumb_func_start sub_801B4A4
+sub_801B4A4: @ 801B4A4
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ beq _0801B4C4
+ ldrh r1, [r1]
+ cmp r1, 0
+ beq _0801B4C4
+ ldr r0, =0x0000019b
+ cmp r1, r0
+ bhi _0801B4C4
+ movs r0, 0x1
+ b _0801B4C6
+ .pool
+_0801B4C4:
+ movs r0, 0
+_0801B4C6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B4A4
+
+ thumb_func_start sub_801B4CC
+sub_801B4CC: @ 801B4CC
+ push {lr}
+ bl sub_801B27C
+ cmp r0, 0
+ beq _0801B500
+ ldr r0, =gSaveBlock1Ptr
+ ldr r3, [r0]
+ ldr r0, =0x000033f0
+ adds r2, r3, r0
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0801B500
+ movs r1, 0xD5
+ lsls r1, 6
+ adds r0, r3, r1
+ ldrb r1, [r2, 0x9]
+ bl sub_801B438
+ b _0801B502
+ .pool
+_0801B500:
+ movs r0, 0
+_0801B502:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B4CC
+
+ thumb_func_start sub_801B508
+sub_801B508: @ 801B508
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, =gSaveBlock1Ptr
+ ldr r0, [r6]
+ ldr r1, =0x000033f0
+ adds r0, r1
+ ldrb r4, [r0, 0x9]
+ adds r0, r5, 0
+ bl sub_801B4A4
+ cmp r0, 0
+ beq _0801B572
+ ldr r0, [r6]
+ movs r1, 0xD5
+ lsls r1, 6
+ adds r0, r1
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_801B460
+ cmp r0, 0
+ beq _0801B54C
+ b _0801B572
+ .pool
+_0801B540:
+ ldrh r0, [r5, 0x2]
+ strh r0, [r1]
+ ldrh r0, [r5]
+ strh r0, [r2]
+ movs r0, 0x1
+ b _0801B574
+_0801B54C:
+ movs r3, 0
+ cmp r3, r4
+ bge _0801B572
+ ldr r0, [r6]
+ ldr r6, =0x00003548
+ adds r2, r0, r6
+ adds r6, 0xE
+ adds r1, r0, r6
+_0801B55C:
+ ldrh r0, [r2, 0xE]
+ cmp r0, 0
+ bne _0801B568
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _0801B540
+_0801B568:
+ adds r2, 0x2
+ adds r1, 0x2
+ adds r3, 0x1
+ cmp r3, r4
+ blt _0801B55C
+_0801B572:
+ movs r0, 0
+_0801B574:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801B508
+
+ thumb_func_start sub_801B580
+sub_801B580: @ 801B580
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r0, 0
+ str r0, [sp]
+ ldr r2, =0x05000019
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuSet
+ ldr r0, =0x00000101
+ str r0, [r5]
+ movs r0, 0x1
+ strh r0, [r5, 0x4]
+ str r0, [r5, 0x8]
+ cmp r4, 0
+ beq _0801B5C0
+ movs r0, 0x5
+ strh r0, [r5, 0xC]
+ ldr r0, =0x00000201
+ b _0801B5C8
+ .pool
+_0801B5C0:
+ movs r0, 0x4
+ strh r0, [r5, 0xC]
+ movs r0, 0x80
+ lsls r0, 2
+_0801B5C8:
+ str r0, [r5, 0x10]
+ bl sub_801B27C
+ cmp r0, 0
+ beq _0801B5FC
+ bl sav1_get_mevent_buffer_1
+ ldrh r0, [r0]
+ strh r0, [r5, 0x14]
+ bl sav1_get_mevent_buffer_2
+ adds r1, r5, 0
+ adds r1, 0x20
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ bl sav1_get_mevent_buffer_1
+ ldrb r1, [r0, 0x9]
+ adds r0, r5, 0
+ adds r0, 0x44
+ strb r1, [r0]
+ b _0801B5FE
+_0801B5FC:
+ strh r0, [r5, 0x14]
+_0801B5FE:
+ adds r4, r5, 0
+ adds r4, 0x4C
+ ldr r0, =gSaveBlock2Ptr
+ mov r8, r0
+ adds r6, r5, 0
+ adds r6, 0x45
+ adds r7, r5, 0
+ adds r7, 0x50
+ movs r1, 0x5C
+ adds r1, r5
+ mov r9, r1
+ movs r2, 0x60
+ adds r2, r5
+ mov r10, r2
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r3, =0x00003564
+ adds r2, r0, r3
+ adds r1, r5, 0
+ adds r1, 0x16
+ movs r3, 0x3
+_0801B628:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0801B628
+ mov r0, r8
+ ldr r1, [r0]
+ adds r1, 0xA
+ adds r0, r4, 0
+ bl CopyUnalignedWord
+ mov r2, r8
+ ldr r1, [r2]
+ adds r0, r6, 0
+ bl StringCopy
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r3, =0x00002bb0
+ adds r2, r0, r3
+ adds r1, r7, 0
+ movs r3, 0x5
+_0801B658:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0801B658
+ ldr r1, =RomHeaderGameCode
+ mov r0, r9
+ movs r2, 0x4
+ bl memcpy
+ ldr r0, =RomHeaderSoftwareVersion
+ ldrb r0, [r0]
+ mov r4, r10
+ strb r0, [r4]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801B580
+
+ thumb_func_start sub_801B6A0
+sub_801B6A0: @ 801B6A0
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r4, r1, 0
+ ldr r1, [r2]
+ ldr r0, =0x00000101
+ cmp r1, r0
+ bne _0801B6DC
+ ldrh r1, [r2, 0x4]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B6DC
+ ldr r0, [r2, 0x8]
+ ands r0, r3
+ cmp r0, 0
+ beq _0801B6DC
+ cmp r4, 0
+ bne _0801B6E4
+ ldrh r1, [r2, 0xC]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B6DC
+ ldr r0, [r2, 0x10]
+ movs r1, 0xE0
+ lsls r1, 2
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B6E4
+_0801B6DC:
+ movs r0, 0
+ b _0801B6E6
+ .pool
+_0801B6E4:
+ movs r0, 0x1
+_0801B6E6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B6A0
+
+ thumb_func_start sub_801B6EC
+sub_801B6EC: @ 801B6EC
+ push {lr}
+ ldrh r1, [r1, 0x14]
+ cmp r1, 0
+ bne _0801B6F8
+ movs r0, 0
+ b _0801B704
+_0801B6F8:
+ ldrh r0, [r0]
+ cmp r0, r1
+ beq _0801B702
+ movs r0, 0x2
+ b _0801B704
+_0801B702:
+ movs r0, 0x1
+_0801B704:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B6EC
+
+ thumb_func_start sub_801B708
+sub_801B708: @ 801B708
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ adds r5, r4, 0
+ adds r5, 0x20
+ adds r4, 0x44
+ ldrb r1, [r4]
+ adds r0, r5, 0
+ bl sub_801B438
+ ldrb r2, [r4]
+ subs r4, r2, r0
+ cmp r4, 0
+ bne _0801B728
+ movs r0, 0x1
+ b _0801B742
+_0801B728:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_801B460
+ cmp r0, 0
+ beq _0801B738
+ movs r0, 0x3
+ b _0801B742
+_0801B738:
+ cmp r4, 0x1
+ beq _0801B740
+ movs r0, 0x2
+ b _0801B742
+_0801B740:
+ movs r0, 0x4
+_0801B742:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B708
+
+ thumb_func_start sub_801B748
+sub_801B748: @ 801B748
+ push {r4,lr}
+ movs r3, 0
+ adds r2, r0, 0
+ adds r2, 0x16
+_0801B750:
+ ldrh r0, [r2]
+ ldrh r4, [r1]
+ cmp r0, r4
+ beq _0801B75C
+ movs r0, 0
+ b _0801B768
+_0801B75C:
+ adds r1, 0x2
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _0801B750
+ movs r0, 0x1
+_0801B768:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B748
+
+ thumb_func_start sub_801B770
+sub_801B770: @ 801B770
+ push {lr}
+ adds r2, r0, 0
+ adds r2, 0x20
+ adds r0, 0x44
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ bl sub_801B438
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B770
+
+ thumb_func_start sub_801B784
+sub_801B784: @ 801B784
+ push {lr}
+ adds r2, r0, 0
+ cmp r1, 0x4
+ bhi _0801B7D0
+ lsls r0, r1, 2
+ ldr r1, =_0801B79C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801B79C:
+ .4byte _0801B7B0
+ .4byte _0801B7B4
+ .4byte _0801B7B8
+ .4byte _0801B7BC
+ .4byte _0801B7C8
+_0801B7B0:
+ ldrh r0, [r2, 0x20]
+ b _0801B7D2
+_0801B7B4:
+ ldrh r0, [r2, 0x22]
+ b _0801B7D2
+_0801B7B8:
+ ldrh r0, [r2, 0x24]
+ b _0801B7D2
+_0801B7BC:
+ adds r0, r2, 0
+ bl sub_801B770
+ lsls r0, 16
+ lsrs r0, 16
+ b _0801B7D2
+_0801B7C8:
+ adds r0, r2, 0
+ adds r0, 0x44
+ ldrb r0, [r0]
+ b _0801B7D2
+_0801B7D0:
+ movs r0, 0
+_0801B7D2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B784
+
+ thumb_func_start sub_801B7D8
+sub_801B7D8: @ 801B7D8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r2, =gSaveBlock1Ptr
+ ldr r0, [r2]
+ ldr r1, =0x000033f0
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x3
+ ands r0, r1
+ adds r3, r2, 0
+ cmp r0, 0x2
+ bne _0801B850
+ movs r2, 0
+ cmp r4, 0x4
+ bhi _0801B83A
+ lsls r0, r4, 2
+ ldr r1, =_0801B80C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801B80C:
+ .4byte _0801B820
+ .4byte _0801B828
+ .4byte _0801B834
+ .4byte _0801B83A
+ .4byte _0801B83A
+_0801B820:
+ ldr r0, [r3]
+ movs r1, 0xD5
+ lsls r1, 6
+ b _0801B838
+_0801B828:
+ ldr r0, [r3]
+ ldr r1, =0x00003542
+ b _0801B838
+ .pool
+_0801B834:
+ ldr r0, [r3]
+ ldr r1, =0x00003544
+_0801B838:
+ adds r2, r0, r1
+_0801B83A:
+ cmp r2, 0
+ beq _0801B850
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, =0x000003e7
+ cmp r0, r1
+ bls _0801B850
+ strh r1, [r2]
+_0801B850:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801B7D8
+
+ thumb_func_start mevent_081445C0
+mevent_081445C0: @ 801B860
+ push {lr}
+ cmp r0, 0x4
+ bhi _0801B938
+ lsls r0, 2
+ ldr r1, =_0801B874
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801B874:
+ .4byte _0801B888
+ .4byte _0801B8AC
+ .4byte _0801B8D0
+ .4byte _0801B8F4
+ .4byte _0801B918
+_0801B888:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ ldr r1, =0x000033f0
+ adds r0, r2, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ bne _0801B938
+ movs r1, 0xD5
+ lsls r1, 6
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ b _0801B93A
+ .pool
+_0801B8AC:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ ldr r1, =0x000033f0
+ adds r0, r2, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ bne _0801B938
+ movs r1, 0xD5
+ lsls r1, 6
+ adds r0, r2, r1
+ ldrh r0, [r0, 0x2]
+ b _0801B93A
+ .pool
+_0801B8D0:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ ldr r1, =0x000033f0
+ adds r0, r2, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ bne _0801B938
+ movs r1, 0xD5
+ lsls r1, 6
+ adds r0, r2, r1
+ ldrh r0, [r0, 0x4]
+ b _0801B93A
+ .pool
+_0801B8F4:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x000033f0
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0801B938
+ bl sub_801B4CC
+ lsls r0, 16
+ lsrs r0, 16
+ b _0801B93A
+ .pool
+_0801B918:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x000033f0
+ adds r2, r0, r1
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0801B938
+ ldrb r0, [r2, 0x9]
+ b _0801B93A
+ .pool
+_0801B938:
+ movs r0, 0
+_0801B93A:
+ pop {r1}
+ bx r1
+ thumb_func_end mevent_081445C0
+
+ thumb_func_start sub_801B940
+sub_801B940: @ 801B940
+ ldr r1, =gUnknown_02022C70
+ movs r0, 0
+ str r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_801B940
+
+ thumb_func_start sub_801B94C
+sub_801B94C: @ 801B94C
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ adds r4, r0, 0
+ ldr r5, =gUnknown_02022C70
+ movs r0, 0
+ str r0, [r5]
+ cmp r4, 0
+ beq _0801B98A
+ bl sub_801B27C
+ cmp r0, 0
+ beq _0801B988
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x000033f0
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r4
+ bne _0801B988
+ movs r0, 0x1
+ str r0, [r5]
+ b _0801B98A
+ .pool
+_0801B988:
+ movs r0, 0
+_0801B98A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B94C
+
+ thumb_func_start sub_801B990
+sub_801B990: @ 801B990
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, =gUnknown_02022C70
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801B9EC
+ cmp r2, 0x1
+ beq _0801B9DC
+ cmp r2, 0x1
+ bcc _0801B9C0
+ cmp r2, 0x2
+ bne _0801B9EC
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ ldr r0, =0x00003584
+ adds r2, r0
+ movs r0, 0x2
+ b _0801B9CA
+ .pool
+_0801B9C0:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ ldr r0, =0x00003570
+ adds r2, r0
+ movs r0, 0
+_0801B9CA:
+ movs r3, 0x5
+ bl sub_801BA8C
+ b _0801B9EC
+ .pool
+_0801B9DC:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ ldr r0, =0x00003570
+ adds r2, r0
+ movs r0, 0x1
+ movs r3, 0x5
+ bl sub_801BA8C
+_0801B9EC:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801B990
+
+ thumb_func_start sub_801B9F8
+sub_801B9F8: @ 801B9F8
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r0, =0x00003570
+ adds r1, r0
+ ldr r2, =0x0500000a
+ mov r0, sp
+ bl CpuSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801B9F8
+
+ thumb_func_start sub_801BA24
+sub_801BA24: @ 801BA24
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r1, 0
+ cmp r1, r2
+ bge _0801BA46
+ ldr r0, [r4]
+ cmp r0, r5
+ beq _0801BA46
+ adds r3, r4, 0
+_0801BA38:
+ adds r3, 0x4
+ adds r1, 0x1
+ cmp r1, r2
+ bge _0801BA46
+ ldr r0, [r3]
+ cmp r0, r5
+ bne _0801BA38
+_0801BA46:
+ cmp r1, r2
+ bne _0801BA68
+ subs r3, r1, 0x1
+ cmp r3, 0
+ ble _0801BA62
+ lsls r0, r3, 2
+ subs r0, 0x4
+ adds r2, r0, r4
+_0801BA56:
+ ldr r0, [r2]
+ str r0, [r2, 0x4]
+ subs r2, 0x4
+ subs r3, 0x1
+ cmp r3, 0
+ bgt _0801BA56
+_0801BA62:
+ str r5, [r4]
+ movs r0, 0x1
+ b _0801BA84
+_0801BA68:
+ adds r3, r1, 0
+ cmp r3, 0
+ ble _0801BA80
+ lsls r0, r3, 2
+ subs r0, 0x4
+ adds r2, r0, r4
+_0801BA74:
+ ldr r0, [r2]
+ str r0, [r2, 0x4]
+ subs r2, 0x4
+ subs r3, 0x1
+ cmp r3, 0
+ bgt _0801BA74
+_0801BA80:
+ str r5, [r4]
+ movs r0, 0
+_0801BA84:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801BA24
+
+ thumb_func_start sub_801BA8C
+sub_801BA8C: @ 801BA8C
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ adds r1, r2, 0
+ adds r2, r3, 0
+ bl sub_801BA24
+ cmp r0, 0
+ beq _0801BAA4
+ adds r0, r4, 0
+ bl sub_801B7D8
+_0801BAA4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801BA8C
+
+ thumb_func_start sub_801BAAC
+sub_801BAAC: @ 801BAAC
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ cmp r5, 0
+ beq _0801BAC8
+ cmp r6, 0
+ beq _0801BAC8
+ ldr r7, =gUnknown_02022C74
+ ldr r0, =0x0000145c
+ bl AllocZeroed
+ str r0, [r7]
+ cmp r0, 0
+ bne _0801BAD4
+_0801BAC8:
+ movs r0, 0
+ b _0801BB3E
+ .pool
+_0801BAD4:
+ movs r4, 0xA6
+ lsls r4, 1
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl memcpy
+ ldr r1, [r7]
+ adds r1, r4
+ adds r0, r6, 0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r2, [r7]
+ ldrb r1, [r2, 0x8]
+ lsls r0, r1, 26
+ lsrs r0, 28
+ cmp r0, 0x7
+ bls _0801BB06
+ movs r0, 0x3D
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x8]
+_0801BB06:
+ ldr r2, [r7]
+ ldrb r1, [r2, 0x8]
+ lsls r0, r1, 30
+ lsrs r0, 30
+ cmp r0, 0x2
+ bls _0801BB1A
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x8]
+_0801BB1A:
+ ldr r1, [r7]
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0x7
+ bls _0801BB26
+ movs r0, 0
+ strb r0, [r1, 0x9]
+_0801BB26:
+ ldr r0, [r7]
+ movs r1, 0xB8
+ lsls r1, 1
+ adds r2, r0, r1
+ ldrb r0, [r0, 0x8]
+ lsls r0, 26
+ lsrs r0, 28
+ lsls r0, 4
+ ldr r1, =gUnknown_082F1D60
+ adds r0, r1
+ str r0, [r2]
+ movs r0, 0x1
+_0801BB3E:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801BAAC
+
+ thumb_func_start sub_801BB48
+sub_801BB48: @ 801BB48
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C74
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0801BB64
+ ldr r2, =0x0000145c
+ movs r1, 0
+ bl memset
+ ldr r0, [r4]
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+_0801BB64:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801BB48
+
+ thumb_func_start sub_801BB74
+sub_801BB74: @ 801BB74
+ push {r4-r6,lr}
+ sub sp, 0x24
+ ldr r5, =gUnknown_02022C74
+ ldr r0, [r5]
+ cmp r0, 0
+ bne _0801BB8C
+ movs r0, 0x1
+ negs r0, r0
+ b _0801BD98
+ .pool
+_0801BB8C:
+ movs r4, 0xBA
+ lsls r4, 1
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bls _0801BB9A
+ b _0801BD70
+_0801BB9A:
+ lsls r0, 2
+ ldr r1, =_0801BBA8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801BBA8:
+ .4byte _0801BBC8
+ .4byte _0801BBDA
+ .4byte _0801BBE8
+ .4byte _0801BC8C
+ .4byte _0801BD14
+ .4byte _0801BD1A
+ .4byte _0801BD34
+ .4byte _0801BD3A
+_0801BBC8:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _0801BD86
+_0801BBDA:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801BBE6
+ b _0801BD86
+_0801BBE6:
+ b _0801BD96
+_0801BBE8:
+ movs r5, 0x1E
+ str r5, [sp]
+ movs r4, 0x14
+ str r4, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x2
+ bl CopyBgTilemapBufferToVram
+ ldr r5, =gUnknown_02022C74
+ ldr r0, [r5]
+ movs r1, 0xB8
+ lsls r1, 1
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, [r0, 0x4]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0x8
+ bl decompress_and_copy_tile_data_to_vram
+ ldr r4, =gUnknown_082F0E1C
+ adds r0, r4, 0
+ bl AddWindow
+ ldr r1, [r5]
+ movs r2, 0xBB
+ lsls r2, 1
+ adds r1, r2
+ strh r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x8
+ bl AddWindow
+ ldr r1, [r5]
+ movs r2, 0xBC
+ lsls r2, 1
+ adds r1, r2
+ strh r0, [r1]
+ adds r4, 0x10
+ adds r0, r4, 0
+ bl AddWindow
+ ldr r1, [r5]
+ movs r2, 0xBD
+ lsls r2, 1
+ adds r1, r2
+ strh r0, [r1]
+ b _0801BD86
+ .pool
+_0801BC8C:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ beq _0801BC9A
+ b _0801BD96
+_0801BC9A:
+ movs r0, 0x1
+ bl stdpal_get
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r2, =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r5, =gUnknown_02022C74
+ ldr r0, [r5]
+ movs r4, 0xB8
+ lsls r4, 1
+ adds r0, r4
+ ldr r0, [r0]
+ ldr r0, [r0, 0xC]
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, [r5]
+ adds r4, r1, r4
+ ldr r0, [r4]
+ ldr r0, [r0, 0x8]
+ ldr r4, =0x0000045c
+ adds r1, r4
+ bl LZ77UnCompWram
+ ldr r1, [r5]
+ adds r1, r4
+ movs r2, 0x1E
+ str r2, [sp]
+ movs r0, 0x14
+ str r0, [sp, 0x4]
+ str r6, [sp, 0x8]
+ str r6, [sp, 0xC]
+ str r2, [sp, 0x10]
+ str r0, [sp, 0x14]
+ movs r0, 0x1
+ str r0, [sp, 0x18]
+ movs r0, 0x8
+ str r0, [sp, 0x1C]
+ str r6, [sp, 0x20]
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl CopyRectToBgTilemapBufferRect
+ movs r0, 0x2
+ bl CopyBgTilemapBufferToVram
+ b _0801BD86
+ .pool
+_0801BD14:
+ bl sub_801BEF8
+ b _0801BD86
+_0801BD1A:
+ movs r0, 0
+ bl sub_801C178
+ movs r0, 0x1
+ bl sub_801C178
+ movs r0, 0x2
+ bl sub_801C178
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ b _0801BD86
+_0801BD34:
+ bl sub_80D2F04
+ b _0801BD86
+_0801BD3A:
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ ldr r2, =gPaletteFade
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ bl sub_801C4C0
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ bl UpdatePaletteFade
+ b _0801BD86
+ .pool
+_0801BD70:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _0801BD96
+ ldr r0, [r5]
+ adds r0, r4
+ strb r1, [r0]
+ movs r0, 0x1
+ b _0801BD98
+_0801BD86:
+ ldr r0, =gUnknown_02022C74
+ ldr r1, [r0]
+ movs r0, 0xBA
+ lsls r0, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0801BD96:
+ movs r0, 0
+_0801BD98:
+ add sp, 0x24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801BB74
+
+ thumb_func_start sub_801BDA4
+sub_801BDA4: @ 801BDA4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r2, r0, 0
+ ldr r5, =gUnknown_02022C74
+ ldr r0, [r5]
+ cmp r0, 0
+ bne _0801BDBC
+ movs r0, 0x1
+ negs r0, r0
+ b _0801BEEC
+ .pool
+_0801BDBC:
+ movs r4, 0xBA
+ lsls r4, 1
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bls _0801BDCA
+ b _0801BEC4
+_0801BDCA:
+ lsls r0, 2
+ ldr r1, =_0801BDD8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801BDD8:
+ .4byte _0801BDF0
+ .4byte _0801BE02
+ .4byte _0801BE0E
+ .4byte _0801BE56
+ .4byte _0801BE94
+ .4byte _0801BE9E
+_0801BDF0:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _0801BEDA
+_0801BE02:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801BEDA
+ b _0801BEEA
+_0801BE0E:
+ movs r5, 0x1E
+ str r5, [sp]
+ movs r4, 0x14
+ str r4, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x2
+ bl CopyBgTilemapBufferToVram
+ b _0801BEDA
+_0801BE56:
+ movs r0, 0x1
+ bl HideBg
+ movs r0, 0x2
+ bl HideBg
+ ldr r4, =gUnknown_02022C74
+ ldr r0, [r4]
+ movs r1, 0xBD
+ lsls r1, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl RemoveWindow
+ ldr r0, [r4]
+ movs r1, 0xBC
+ lsls r1, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl RemoveWindow
+ ldr r0, [r4]
+ movs r1, 0xBB
+ lsls r1, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl RemoveWindow
+ b _0801BEDA
+ .pool
+_0801BE94:
+ bl sub_801C61C
+ bl sub_80D2F9C
+ b _0801BEDA
+_0801BE9E:
+ ldr r0, =gUnknown_02022C60
+ ldrb r0, [r0]
+ adds r1, r2, 0
+ bl sub_80186EC
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _0801BEDA
+ .pool
+_0801BEC4:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _0801BEEA
+ ldr r0, [r5]
+ adds r0, r4
+ strb r1, [r0]
+ movs r0, 0x1
+ b _0801BEEC
+_0801BEDA:
+ ldr r0, =gUnknown_02022C74
+ ldr r1, [r0]
+ movs r0, 0xBA
+ lsls r0, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0801BEEA:
+ movs r0, 0
+_0801BEEC:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801BDA4
+
+ thumb_func_start sub_801BEF8
+sub_801BEF8: @ 801BEF8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r5, 0
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0x6
+ bl memset
+ ldr r4, =gUnknown_02022C74
+ ldr r1, [r4]
+ ldr r2, =0x0000018b
+ adds r0, r1, r2
+ adds r1, 0xA
+ movs r2, 0x28
+ bl memcpy
+ ldr r0, [r4]
+ ldr r3, =0x000001b3
+ adds r1, r0, r3
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, [r4]
+ movs r2, 0xDA
+ lsls r2, 1
+ adds r0, r1, r2
+ adds r1, 0x32
+ movs r2, 0x28
+ bl memcpy
+ ldr r0, [r4]
+ movs r3, 0xEE
+ lsls r3, 1
+ adds r0, r3
+ movs r1, 0x1
+ negs r1, r1
+ strb r1, [r0]
+ ldr r1, [r4]
+ ldr r0, [r1, 0x4]
+ ldr r2, =0x000f423f
+ cmp r0, r2
+ bls _0801BF54
+ str r2, [r1, 0x4]
+_0801BF54:
+ ldr r1, [r4]
+ ldr r2, =0x000001dd
+ adds r0, r1, r2
+ ldr r1, [r1, 0x4]
+ movs r2, 0
+ movs r3, 0x6
+ bl ConvertIntToDecimalStringN
+ adds r6, r4, 0
+_0801BF66:
+ ldr r2, [r6]
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r4, r1, r5
+ adds r0, r4, r2
+ movs r3, 0xF2
+ lsls r3, 1
+ adds r0, r3
+ adds r1, r2
+ adds r1, 0x5A
+ movs r2, 0x28
+ bl memcpy
+ ldr r1, [r6]
+ movs r0, 0x83
+ lsls r0, 2
+ adds r1, r0
+ adds r1, r4
+ movs r2, 0x1
+ negs r2, r2
+ adds r7, r2, 0
+ movs r0, 0xFF
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _0801BF66
+ ldr r6, =gUnknown_02022C74
+ ldr r1, [r6]
+ movs r3, 0xA2
+ lsls r3, 2
+ adds r0, r1, r3
+ adds r1, 0xFA
+ movs r2, 0x28
+ bl memcpy
+ ldr r0, [r6]
+ movs r4, 0xAC
+ lsls r4, 2
+ adds r0, r4
+ movs r1, 0x1
+ negs r1, r1
+ adds r4, r1, 0
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r1, [r6]
+ ldrb r0, [r1, 0x8]
+ lsls r0, 30
+ lsrs r0, 30
+ cmp r0, 0x1
+ beq _0801C018
+ cmp r0, 0x1
+ bgt _0801BFF0
+ cmp r0, 0
+ beq _0801BFF6
+ b _0801C168
+ .pool
+_0801BFF0:
+ cmp r0, 0x2
+ beq _0801C028
+ b _0801C168
+_0801BFF6:
+ ldr r2, =0x000002b1
+ adds r0, r1, r2
+ movs r3, 0x91
+ lsls r3, 1
+ adds r1, r3
+ movs r2, 0x28
+ bl memcpy
+ ldr r1, [r6]
+ ldr r0, =0x000002d9
+ adds r1, r0
+ b _0801C01C
+ .pool
+_0801C018:
+ ldr r2, =0x000002b1
+ adds r1, r2
+_0801C01C:
+ ldrb r0, [r1]
+ orrs r0, r4
+ strb r0, [r1]
+ b _0801C168
+ .pool
+_0801C028:
+ ldr r3, =0x000002b1
+ adds r0, r1, r3
+ ldrb r1, [r0]
+ orrs r1, r7
+ strb r1, [r0]
+ mov r3, sp
+ ldr r1, [r6]
+ movs r4, 0xA6
+ lsls r4, 1
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ ldr r2, =0x000003e7
+ cmp r0, r2
+ bls _0801C046
+ adds r0, r2, 0
+_0801C046:
+ strh r0, [r3]
+ mov r3, sp
+ movs r4, 0xA7
+ lsls r4, 1
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ cmp r0, r2
+ bls _0801C058
+ adds r0, r2, 0
+_0801C058:
+ strh r0, [r3, 0x2]
+ mov r3, sp
+ movs r4, 0xA8
+ lsls r4, 1
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ cmp r0, r2
+ bls _0801C06A
+ adds r0, r2, 0
+_0801C06A:
+ strh r0, [r3, 0x4]
+ movs r5, 0
+_0801C06E:
+ lsls r4, r5, 1
+ adds r4, r5
+ lsls r4, 4
+ movs r0, 0xB7
+ lsls r0, 2
+ adds r4, r0
+ ldr r0, [r6]
+ adds r0, r4
+ adds r0, 0x2A
+ movs r1, 0xFF
+ movs r2, 0x4
+ bl memset
+ ldr r0, [r6]
+ adds r0, r4
+ adds r0, 0x1
+ movs r1, 0xFF
+ movs r2, 0x29
+ bl memset
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x7
+ bls _0801C06E
+ movs r5, 0
+ movs r6, 0
+ ldr r1, =gUnknown_02022C74
+ mov r8, r1
+ movs r2, 0x91
+ lsls r2, 1
+ mov r10, r2
+ ldr r7, =0x00000175
+ movs r3, 0xB7
+ lsls r3, 2
+ mov r9, r3
+_0801C0B6:
+ mov r4, r8
+ ldr r2, [r4]
+ mov r0, r10
+ adds r1, r2, r0
+ adds r0, r1, r5
+ ldrb r3, [r0]
+ cmp r3, 0xF7
+ beq _0801C0F8
+ ldr r1, =0x00000175
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 4
+ adds r0, r6, r0
+ ldr r4, =0x000002dd
+ adds r1, r2, r4
+ adds r1, r0
+ strb r3, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _0801C15E
+ .pool
+_0801C0F8:
+ adds r0, r5, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ cmp r3, 0x2
+ bls _0801C108
+ adds r0, r5, 0x2
+ lsls r0, 16
+ b _0801C15C
+_0801C108:
+ adds r0, r2, r7
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 4
+ add r0, r9
+ adds r0, r2, r0
+ adds r0, 0x2A
+ lsls r1, r3, 1
+ add r1, sp
+ ldrh r1, [r1]
+ movs r2, 0x2
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ mov r0, r8
+ ldr r1, [r0]
+ adds r0, r1, r7
+ ldrb r2, [r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 4
+ adds r0, r1, r0
+ adds r4, r5, 0x2
+ add r1, r10
+ adds r1, r4
+ ldrb r1, [r1]
+ add r0, r9
+ strb r1, [r0]
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, r7
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r2]
+ adds r0, r7
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bhi _0801C168
+ movs r6, 0
+ lsls r0, r4, 16
+_0801C15C:
+ lsrs r5, r0, 16
+_0801C15E:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x27
+ bls _0801C0B6
+_0801C168:
+ 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_801BEF8
+
+ thumb_func_start sub_801C178
+sub_801C178: @ 801C178
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r8, r4
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r7, =gUnknown_02022C74
+ ldr r0, [r7]
+ lsls r1, r4, 1
+ movs r2, 0xBB
+ lsls r2, 1
+ adds r0, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r6, r0, 24
+ lsrs r5, r6, 24
+ adds r0, r5, 0
+ bl PutWindowTilemap
+ adds r0, r5, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ cmp r4, 0x1
+ beq _0801C2A0
+ cmp r4, 0x1
+ bgt _0801C1C4
+ cmp r4, 0
+ beq _0801C1D0
+ mov r9, r6
+ b _0801C498
+ .pool
+_0801C1C4:
+ mov r0, r8
+ cmp r0, 0x2
+ bne _0801C1CC
+ b _0801C304
+_0801C1CC:
+ mov r9, r6
+ b _0801C498
+_0801C1D0:
+ ldr r2, [r7]
+ movs r1, 0xB8
+ lsls r1, 1
+ mov r10, r1
+ adds r0, r2, r1
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 28
+ lsrs r0, 28
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r0, =gUnknown_082F0E10
+ mov r8, r0
+ add r1, r8
+ str r1, [sp]
+ ldr r1, [sp, 0xC]
+ str r1, [sp, 0x4]
+ ldr r0, =0x0000018b
+ adds r2, r0
+ str r2, [sp, 0x8]
+ adds r0, r5, 0
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0x1
+ bl box_print
+ ldr r4, [r7]
+ movs r1, 0xDA
+ lsls r1, 1
+ mov r9, r1
+ add r4, r9
+ movs r0, 0x3
+ movs r1, 0x2
+ bl GetFontAttribute
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0x3
+ adds r1, r4, 0
+ bl GetStringWidth
+ movs r1, 0xA0
+ subs r1, r0
+ cmp r1, 0
+ bge _0801C22E
+ movs r1, 0
+_0801C22E:
+ lsls r2, r1, 24
+ lsrs r2, 24
+ ldr r3, [r7]
+ mov r1, r10
+ adds r0, r3, r1
+ ldr r0, [r0]
+ ldrb r1, [r0]
+ lsls r1, 28
+ lsrs r1, 28
+ lsls r0, r1, 1
+ adds r0, r1
+ add r0, r8
+ str r0, [sp]
+ ldr r0, [sp, 0xC]
+ str r0, [sp, 0x4]
+ add r3, r9
+ str r3, [sp, 0x8]
+ adds r0, r5, 0
+ movs r1, 0x3
+ movs r3, 0x11
+ bl box_print
+ ldr r2, [r7]
+ ldr r0, [r2, 0x4]
+ mov r9, r6
+ cmp r0, 0
+ bne _0801C266
+ b _0801C498
+_0801C266:
+ mov r1, r10
+ adds r0, r2, r1
+ ldr r0, [r0]
+ ldrb r1, [r0]
+ lsls r1, 28
+ lsrs r1, 28
+ lsls r0, r1, 1
+ adds r0, r1
+ add r0, r8
+ str r0, [sp]
+ ldr r0, [sp, 0xC]
+ str r0, [sp, 0x4]
+ ldr r1, =0x000001dd
+ adds r0, r2, r1
+ str r0, [sp, 0x8]
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0xA6
+ movs r3, 0x11
+ bl box_print
+ b _0801C498
+ .pool
+_0801C2A0:
+ mov r9, r6
+_0801C2A2:
+ ldr r2, [sp, 0xC]
+ lsls r4, r2, 24
+ asrs r4, 24
+ lsls r3, r4, 4
+ adds r3, 0x2
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, =gUnknown_02022C74
+ ldr r2, [r0]
+ movs r1, 0xB8
+ lsls r1, 1
+ adds r0, r2, r1
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsrs r0, 4
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r0, =gUnknown_082F0E10
+ adds r1, r0
+ str r1, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0xF2
+ lsls r1, 1
+ adds r0, r1
+ adds r2, r0
+ str r2, [sp, 0x8]
+ mov r2, r9
+ lsrs r0, r2, 24
+ movs r1, 0x3
+ movs r2, 0
+ bl box_print
+ adds r4, 0x1
+ lsls r4, 24
+ lsrs r0, r4, 24
+ str r0, [sp, 0xC]
+ asrs r4, 24
+ cmp r4, 0x3
+ ble _0801C2A2
+ b _0801C498
+ .pool
+_0801C304:
+ ldr r4, =gUnknown_082F0E18
+ ldr r2, [r7]
+ ldrb r0, [r2, 0x8]
+ lsls r0, 30
+ lsrs r0, 30
+ adds r0, r4
+ ldrb r3, [r0]
+ movs r1, 0xB8
+ lsls r1, 1
+ adds r0, r2, r1
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ lsls r0, 28
+ lsrs r0, 28
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r0, =gUnknown_082F0E10
+ mov r10, r0
+ add r1, r10
+ str r1, [sp]
+ ldr r1, [sp, 0xC]
+ str r1, [sp, 0x4]
+ movs r1, 0xA2
+ lsls r1, 2
+ adds r0, r2, r1
+ str r0, [sp, 0x8]
+ adds r0, r5, 0
+ movs r1, 0x3
+ movs r2, 0
+ bl box_print
+ ldr r2, [r7]
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ beq _0801C398
+ lsls r0, r1, 30
+ lsrs r0, 30
+ adds r0, r4
+ ldrb r3, [r0]
+ adds r3, 0x10
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0xB8
+ lsls r1, 1
+ adds r0, r2, r1
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x1]
+ lsls r1, 28
+ lsrs r1, 28
+ lsls r0, r1, 1
+ adds r0, r1
+ add r0, r10
+ str r0, [sp]
+ ldr r0, [sp, 0xC]
+ str r0, [sp, 0x4]
+ ldr r1, =0x000002b1
+ adds r0, r2, r1
+ str r0, [sp, 0x8]
+ adds r0, r5, 0
+ movs r1, 0x3
+ movs r2, 0
+ bl box_print
+ mov r9, r6
+ b _0801C498
+ .pool
+_0801C398:
+ movs r2, 0
+ mov r8, r2
+ lsls r0, r1, 30
+ lsrs r0, 30
+ adds r0, r4
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+ movs r0, 0x3
+ movs r1, 0x2
+ bl GetFontAttribute
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, [r7]
+ ldr r1, =0x00000175
+ adds r0, r1
+ mov r9, r6
+ ldr r1, [sp, 0xC]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bge _0801C498
+ str r5, [sp, 0x10]
+ lsls r0, r4, 24
+ lsrs r0, 24
+ str r0, [sp, 0x14]
+ mov r10, r2
+_0801C3CE:
+ mov r0, r8
+ lsls r2, r0, 24
+ lsrs r2, 24
+ ldr r3, [r7]
+ movs r1, 0xB8
+ lsls r1, 1
+ adds r0, r3, r1
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x1]
+ lsls r1, 28
+ lsrs r1, 28
+ lsls r0, r1, 1
+ adds r0, r1
+ ldr r1, =gUnknown_082F0E10
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ ldr r1, [sp, 0xC]
+ lsls r0, r1, 24
+ asrs r6, r0, 24
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r5, r0, 4
+ movs r0, 0xB7
+ lsls r0, 2
+ adds r4, r5, r0
+ adds r3, r4
+ adds r3, 0x1
+ str r3, [sp, 0x8]
+ ldr r0, [sp, 0x10]
+ movs r1, 0x3
+ ldr r3, [sp, 0x14]
+ bl box_print
+ ldr r1, [r7]
+ adds r0, r1, r5
+ ldr r2, =0x00000306
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _0801C482
+ adds r1, r4
+ adds r1, 0x1
+ movs r0, 0x3
+ mov r2, r10
+ bl GetStringWidth
+ add r8, r0
+ mov r0, r8
+ lsls r2, r0, 24
+ lsrs r2, 24
+ ldr r3, [r7]
+ movs r1, 0xB8
+ lsls r1, 1
+ adds r0, r3, r1
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x1]
+ lsls r1, 28
+ lsrs r1, 28
+ lsls r0, r1, 1
+ adds r0, r1
+ ldr r1, =gUnknown_082F0E10
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ adds r3, r4
+ adds r3, 0x2A
+ str r3, [sp, 0x8]
+ ldr r0, [sp, 0x10]
+ movs r1, 0x3
+ ldr r3, [sp, 0x14]
+ bl box_print
+ ldr r1, [r7]
+ adds r1, r4
+ adds r1, 0x2A
+ movs r0, 0x3
+ mov r2, r10
+ bl GetStringWidth
+ ldr r1, [r7]
+ adds r1, r5
+ movs r2, 0xB7
+ lsls r2, 2
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r0, r1
+ add r8, r0
+_0801C482:
+ adds r1, r6, 0x1
+ lsls r1, 24
+ lsrs r0, r1, 24
+ str r0, [sp, 0xC]
+ asrs r1, 24
+ ldr r0, [r7]
+ ldr r2, =0x00000175
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r1, r0
+ blt _0801C3CE
+_0801C498:
+ mov r1, r9
+ lsrs r0, r1, 24
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801C178
+
+ thumb_func_start sub_801C4C0
+sub_801C4C0: @ 801C4C0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r7, 0
+ ldr r4, =gUnknown_02022C74
+ ldr r0, [r4]
+ movs r1, 0xBE
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r0, [r4]
+ movs r2, 0xA9
+ lsls r2, 1
+ adds r1, r0, r2
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _0801C52C
+ bl sub_80D2E84
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, =SpriteCallbackDummy
+ str r7, [sp]
+ str r7, [sp, 0x4]
+ movs r2, 0xDC
+ movs r3, 0x14
+ bl sub_80D2D78
+ ldr r1, [r4]
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r1, r2
+ strb r0, [r1]
+ ldr r2, =gSprites
+ ldr r0, [r4]
+ movs r1, 0xBE
+ lsls r1, 1
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+_0801C52C:
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0
+ beq _0801C5EE
+ ldrb r1, [r1, 0x8]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0801C5EE
+ ldr r0, =gUnknown_082F1D00
+ bl LoadCompressedObjectPicUsingHeap
+ ldr r0, [r4]
+ movs r2, 0xB8
+ lsls r2, 1
+ adds r0, r2
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ lsrs r0, 4
+ lsls r0, 3
+ ldr r1, =gUnknown_082F1D08
+ adds r0, r1
+ bl LoadSpritePalette
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x9]
+ cmp r7, r0
+ bcs _0801C5EE
+ adds r6, r4, 0
+ ldr r0, =0x0000017d
+ mov r10, r0
+ movs r1, 0
+ mov r9, r1
+ movs r2, 0xFF
+ mov r8, r2
+_0801C572:
+ ldr r1, [r6]
+ lsls r4, r7, 1
+ add r1, r10
+ adds r1, r4
+ ldrb r0, [r1]
+ mov r2, r8
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, [r6]
+ movs r0, 0xBF
+ lsls r0, 1
+ adds r1, r0
+ adds r1, r4
+ ldrb r0, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+ lsls r1, r7, 5
+ movs r0, 0xD8
+ subs r5, r0, r1
+ ldr r0, =gUnknown_082F1D48
+ adds r1, r5, 0
+ movs r2, 0x90
+ movs r3, 0x8
+ bl CreateSprite
+ ldr r1, [r6]
+ add r1, r10
+ adds r1, r4
+ strb r0, [r1]
+ ldr r0, [r6]
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r1
+ adds r1, r0, r4
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _0801C5E0
+ bl sub_80D2E84
+ lsls r0, 16
+ lsrs r0, 16
+ mov r2, r9
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ ldr r1, =SpriteCallbackDummy
+ adds r2, r5, 0
+ movs r3, 0x88
+ bl sub_80D2D78
+ ldr r1, [r6]
+ movs r2, 0xBF
+ lsls r2, 1
+ adds r1, r2
+ adds r1, r4
+ strb r0, [r1]
+_0801C5E0:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x9]
+ cmp r7, r0
+ bcc _0801C572
+_0801C5EE:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801C4C0
+
+ thumb_func_start sub_801C61C
+sub_801C61C: @ 801C61C
+ push {r4-r7,lr}
+ movs r5, 0
+ ldr r4, =gUnknown_02022C74
+ ldr r0, [r4]
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _0801C640
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl sub_80D2EF8
+_0801C640:
+ ldr r0, [r4]
+ ldrb r2, [r0, 0x9]
+ cmp r2, 0
+ beq _0801C6B4
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0801C6B4
+ cmp r5, r2
+ bcs _0801C6A4
+ adds r6, r4, 0
+ ldr r7, =gSprites
+_0801C65A:
+ ldr r0, [r6]
+ lsls r4, r5, 1
+ ldr r1, =0x0000017d
+ adds r0, r1
+ adds r1, r0, r4
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _0801C678
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ bl DestroySprite
+_0801C678:
+ ldr r0, [r6]
+ movs r2, 0xBF
+ lsls r2, 1
+ adds r0, r2
+ adds r1, r0, r4
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _0801C696
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ bl sub_80D2EF8
+_0801C696:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x9]
+ cmp r5, r0
+ bcc _0801C65A
+_0801C6A4:
+ movs r4, 0x80
+ lsls r4, 8
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+_0801C6B4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801C61C
+
+ thumb_func_start sub_801C6C8
+sub_801C6C8: @ 801C6C8
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _0801C6DE
+ ldr r5, =gUnknown_02022C78
+ ldr r0, =0x000013a4
+ bl AllocZeroed
+ str r0, [r5]
+ cmp r0, 0
+ bne _0801C6EC
+_0801C6DE:
+ movs r0, 0
+ b _0801C71C
+ .pool
+_0801C6EC:
+ movs r6, 0xDE
+ lsls r6, 1
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl memcpy
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0x7
+ bls _0801C704
+ movs r0, 0
+ strb r0, [r1, 0x3]
+_0801C704:
+ ldr r2, [r5]
+ adds r3, r2, r6
+ ldrb r0, [r2, 0x3]
+ lsls r0, 4
+ ldr r1, =gUnknown_082F24C8
+ adds r0, r1
+ str r0, [r3]
+ ldr r0, =0x000001c1
+ adds r1, r2, r0
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r0, 0x1
+_0801C71C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801C6C8
+
+ thumb_func_start sub_801C72C
+sub_801C72C: @ 801C72C
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C78
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0801C748
+ ldr r2, =0x000013a4
+ movs r1, 0
+ bl memset
+ ldr r0, [r4]
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+_0801C748:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801C72C
+
+ thumb_func_start sub_801C758
+sub_801C758: @ 801C758
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ ldr r5, =gUnknown_02022C78
+ ldr r0, [r5]
+ cmp r0, 0
+ bne _0801C778
+ movs r0, 0x1
+ negs r0, r0
+ b _0801CA3A
+ .pool
+_0801C778:
+ movs r4, 0xE0
+ lsls r4, 1
+ adds r0, r4
+ ldrb r0, [r0]
+ lsrs r0, 1
+ cmp r0, 0x6
+ bls _0801C788
+ b _0801CA04
+_0801C788:
+ lsls r0, 2
+ ldr r1, =_0801C798
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801C798:
+ .4byte _0801C7B4
+ .4byte _0801C7C6
+ .4byte _0801C82C
+ .4byte _0801C8D4
+ .4byte _0801C990
+ .4byte _0801C996
+ .4byte _0801C9A8
+_0801C7B4:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _0801CA1E
+_0801C7C6:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801C7D2
+ b _0801CA38
+_0801C7D2:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x40
+ movs r1, 0xF0
+ bl SetGpuReg
+ ldr r1, =0x00001a98
+ movs r0, 0x44
+ bl SetGpuReg
+ movs r0, 0x48
+ movs r1, 0x1F
+ bl SetGpuReg
+ movs r0, 0x4A
+ movs r1, 0x1B
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ bl SetGpuRegBits
+ b _0801CA1E
+ .pool
+_0801C82C:
+ movs r5, 0x1E
+ str r5, [sp]
+ movs r4, 0x14
+ str r4, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x2
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x3
+ bl CopyBgTilemapBufferToVram
+ ldr r5, =gUnknown_02022C78
+ ldr r0, [r5]
+ movs r1, 0xDE
+ lsls r1, 1
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, [r0, 0x4]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0x8
+ bl decompress_and_copy_tile_data_to_vram
+ ldr r4, =gUnknown_082F1DE8
+ adds r0, r4, 0
+ bl AddWindow
+ ldr r1, [r5]
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r1, r2
+ strh r0, [r1]
+ adds r4, 0x8
+ adds r0, r4, 0
+ bl AddWindow
+ ldr r1, [r5]
+ movs r3, 0xE5
+ lsls r3, 1
+ adds r1, r3
+ strh r0, [r1]
+ b _0801CA1E
+ .pool
+_0801C8D4:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0
+ beq _0801C8E2
+ b _0801CA38
+_0801C8E2:
+ movs r0, 0x1
+ bl stdpal_get
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r2, =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, =gUnknown_02022C78
+ mov r8, r0
+ ldr r0, [r0]
+ movs r4, 0xDE
+ lsls r4, 1
+ adds r0, r4
+ ldr r0, [r0]
+ ldr r0, [r0, 0xC]
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ mov r2, r8
+ ldr r1, [r2]
+ adds r4, r1, r4
+ ldr r0, [r4]
+ ldr r0, [r0, 0x8]
+ movs r6, 0xE9
+ lsls r6, 2
+ adds r1, r6
+ bl LZ77UnCompWram
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r6
+ movs r4, 0x1E
+ str r4, [sp]
+ movs r5, 0x3
+ str r5, [sp, 0x4]
+ str r7, [sp, 0x8]
+ str r7, [sp, 0xC]
+ str r4, [sp, 0x10]
+ str r5, [sp, 0x14]
+ movs r0, 0x1
+ mov r10, r0
+ str r0, [sp, 0x18]
+ movs r2, 0x8
+ mov r9, r2
+ str r2, [sp, 0x1C]
+ str r7, [sp, 0x20]
+ movs r2, 0
+ movs r3, 0
+ bl CopyRectToBgTilemapBufferRect
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r6
+ str r4, [sp]
+ movs r0, 0x17
+ str r0, [sp, 0x4]
+ str r7, [sp, 0x8]
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ str r0, [sp, 0x14]
+ mov r0, r10
+ str r0, [sp, 0x18]
+ mov r2, r9
+ str r2, [sp, 0x1C]
+ str r7, [sp, 0x20]
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0x3
+ bl CopyRectToBgTilemapBufferRect
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x3
+ bl CopyBgTilemapBufferToVram
+ b _0801CA1E
+ .pool
+_0801C990:
+ bl sub_801CDCC
+ b _0801CA1E
+_0801C996:
+ bl sub_801CE7C
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x2
+ bl CopyBgTilemapBufferToVram
+ b _0801CA1E
+_0801C9A8:
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ movs r0, 0x3
+ bl ShowBg
+ ldr r2, =gPaletteFade
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ ldr r4, =gUnknown_02022C78
+ ldr r1, [r4]
+ movs r3, 0xE5
+ lsls r3, 2
+ adds r0, r1, r3
+ movs r2, 0xE3
+ lsls r2, 1
+ adds r1, r2
+ bl AddScrollIndicatorArrowPair
+ ldr r1, [r4]
+ ldr r3, =0x000001c1
+ adds r2, r1, r3
+ movs r1, 0
+ strb r0, [r2]
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ bl UpdatePaletteFade
+ b _0801CA1E
+ .pool
+_0801CA04:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801CA38
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r2, [r0]
+ movs r1, 0x1
+ ands r1, r2
+ strb r1, [r0]
+ movs r0, 0x1
+ b _0801CA3A
+_0801CA1E:
+ ldr r0, =gUnknown_02022C78
+ ldr r2, [r0]
+ movs r0, 0xE0
+ lsls r0, 1
+ adds r2, r0
+ ldrb r3, [r2]
+ lsrs r1, r3, 1
+ adds r1, 0x1
+ lsls r1, 1
+ movs r0, 0x1
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+_0801CA38:
+ movs r0, 0
+_0801CA3A:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801C758
+
+ thumb_func_start sub_801CA50
+sub_801CA50: @ 801CA50
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r2, r0, 0
+ ldr r5, =gUnknown_02022C78
+ ldr r0, [r5]
+ cmp r0, 0
+ bne _0801CA68
+ movs r0, 0x1
+ negs r0, r0
+ b _0801CC2A
+ .pool
+_0801CA68:
+ movs r4, 0xE0
+ lsls r4, 1
+ adds r0, r4
+ ldrb r0, [r0]
+ lsrs r0, 1
+ cmp r0, 0x5
+ bls _0801CA78
+ b _0801CBF4
+_0801CA78:
+ lsls r0, 2
+ ldr r1, =_0801CA88
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801CA88:
+ .4byte _0801CAA0
+ .4byte _0801CAB2
+ .4byte _0801CAF4
+ .4byte _0801CB54
+ .4byte _0801CB84
+ .4byte _0801CBC0
+_0801CAA0:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _0801CC0E
+_0801CAB2:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801CABE
+ b _0801CC28
+_0801CABE:
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x40
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x44
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x48
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ movs r1, 0
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ bl ClearGpuRegBits
+ b _0801CC0E
+_0801CAF4:
+ movs r4, 0x1E
+ str r4, [sp]
+ movs r5, 0x14
+ str r5, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ str r4, [sp]
+ movs r5, 0x18
+ str r5, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x2
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x3
+ bl CopyBgTilemapBufferToVram
+ b _0801CC0E
+_0801CB54:
+ movs r0, 0x1
+ bl HideBg
+ movs r0, 0x2
+ bl HideBg
+ ldr r4, =gUnknown_02022C78
+ ldr r0, [r4]
+ movs r1, 0xE5
+ lsls r1, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl RemoveWindow
+ ldr r0, [r4]
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r0, r2
+ ldrb r0, [r0]
+ bl RemoveWindow
+ b _0801CC0E
+ .pool
+_0801CB84:
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ ldr r4, =gUnknown_02022C78
+ ldr r0, [r4]
+ ldr r2, =0x000001c1
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _0801CC0E
+ bl RemoveScrollIndicatorArrowPair
+ ldr r0, [r4]
+ ldr r2, =0x000001c1
+ adds r1, r0, r2
+ movs r0, 0xFF
+ strb r0, [r1]
+ b _0801CC0E
+ .pool
+_0801CBC0:
+ ldr r0, =gUnknown_02022C60
+ ldrb r0, [r0]
+ adds r1, r2, 0
+ bl sub_80186EC
+ movs r0, 0x3
+ bl sub_8018798
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x3
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _0801CC0E
+ .pool
+_0801CBF4:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801CC28
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r2, [r0]
+ movs r1, 0x1
+ ands r1, r2
+ strb r1, [r0]
+ movs r0, 0x1
+ b _0801CC2A
+_0801CC0E:
+ ldr r0, =gUnknown_02022C78
+ ldr r2, [r0]
+ movs r0, 0xE0
+ lsls r0, 1
+ adds r2, r0
+ ldrb r3, [r2]
+ lsrs r1, r3, 1
+ adds r1, 0x1
+ lsls r1, 1
+ movs r0, 0x1
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+_0801CC28:
+ movs r0, 0
+_0801CC2A:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801CA50
+
+ thumb_func_start sub_801CC38
+sub_801CC38: @ 801CC38
+ push {r4,r5,lr}
+ ldr r4, =gUnknown_02022C78
+ ldr r2, [r4]
+ movs r5, 0xE0
+ lsls r5, 1
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801CC72
+ ldr r0, =0x000001c1
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _0801CC72
+ bl RemoveScrollIndicatorArrowPair
+ ldr r0, [r4]
+ ldr r2, =0x000001c1
+ adds r1, r0, r2
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r1]
+_0801CC72:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801CC38
+
+ thumb_func_start sub_801CC80
+sub_801CC80: @ 801CC80
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C78
+ ldr r2, [r4]
+ movs r1, 0xE0
+ lsls r1, 1
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CCC0
+ movs r3, 0xE5
+ lsls r3, 2
+ adds r0, r2, r3
+ movs r3, 0xE3
+ lsls r3, 1
+ adds r1, r2, r3
+ bl AddScrollIndicatorArrowPair
+ ldr r1, [r4]
+ ldr r2, =0x000001c1
+ adds r1, r2
+ strb r0, [r1]
+ ldr r1, [r4]
+ movs r3, 0xE0
+ lsls r3, 1
+ adds r1, r3
+ ldrb r2, [r1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+_0801CCC0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801CC80
+
+ thumb_func_start sub_801CCD0
+sub_801CCD0: @ 801CCD0
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r3, r4, 0
+ ldr r2, =gUnknown_02022C78
+ ldr r0, [r2]
+ mov r12, r0
+ movs r0, 0xE1
+ lsls r0, 1
+ add r0, r12
+ ldrb r1, [r0]
+ movs r5, 0x1
+ adds r0, r5, 0
+ ands r0, r1
+ adds r6, r2, 0
+ cmp r0, 0
+ beq _0801CD00
+ bl sub_801CFA4
+_0801CCF6:
+ movs r0, 0xFF
+ b _0801CDC6
+ .pool
+_0801CD00:
+ cmp r4, 0x2
+ beq _0801CD1C
+ cmp r4, 0x2
+ bgt _0801CD0E
+ cmp r4, 0x1
+ beq _0801CD18
+ b _0801CCF6
+_0801CD0E:
+ cmp r3, 0x40
+ beq _0801CD20
+ cmp r3, 0x80
+ beq _0801CD50
+ b _0801CCF6
+_0801CD18:
+ movs r0, 0
+ b _0801CDC6
+_0801CD1C:
+ movs r0, 0x1
+ b _0801CDC6
+_0801CD20:
+ movs r0, 0xE3
+ lsls r0, 1
+ add r0, r12
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0801CCF6
+ movs r0, 0xE0
+ lsls r0, 1
+ add r0, r12
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0801CCF6
+ ldr r2, =0x000001c3
+ add r2, r12
+ ldrb r1, [r2]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ b _0801CD7E
+ .pool
+_0801CD50:
+ movs r0, 0xE3
+ lsls r0, 1
+ add r0, r12
+ movs r1, 0xE2
+ lsls r1, 1
+ add r1, r12
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _0801CCF6
+ movs r0, 0xE0
+ lsls r0, 1
+ add r0, r12
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0801CCF6
+ ldr r2, =0x000001c3
+ add r2, r12
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+_0801CD7E:
+ strb r0, [r2]
+ ldr r2, [r6]
+ movs r4, 0xE1
+ lsls r4, 1
+ adds r2, r4
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r3, [r6]
+ adds r3, r4
+ ldrb r1, [r3]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ ldr r1, [r6]
+ adds r4, 0x1
+ adds r1, r4
+ ldrb r3, [r1]
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ beq _0801CDC4
+ movs r0, 0x3
+ b _0801CDC6
+ .pool
+_0801CDC4:
+ movs r0, 0x2
+_0801CDC6:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801CCD0
+
+ thumb_func_start sub_801CDCC
+sub_801CDCC: @ 801CDCC
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r4, =gUnknown_02022C78
+ ldr r1, [r4]
+ movs r2, 0xE7
+ lsls r2, 1
+ adds r0, r1, r2
+ adds r1, 0x4
+ movs r2, 0x28
+ bl memcpy
+ ldr r0, [r4]
+ movs r3, 0xFB
+ lsls r3, 1
+ adds r1, r0, r3
+ movs r0, 0xFF
+ strb r0, [r1]
+ adds r6, r4, 0
+_0801CDF0:
+ ldr r2, [r6]
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r4, r1, r5
+ adds r0, r4, r2
+ ldr r3, =0x000001f7
+ adds r0, r3
+ adds r1, r2
+ adds r1, 0x2C
+ movs r2, 0x28
+ bl memcpy
+ ldr r0, [r6]
+ ldr r1, =0x0000021f
+ adds r0, r1
+ adds r0, r4
+ movs r1, 0xFF
+ strb r1, [r0]
+ cmp r5, 0x7
+ bls _0801CE34
+ ldr r1, [r6]
+ ldr r2, =0x000001f7
+ adds r0, r1, r2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _0801CE34
+ movs r3, 0xE2
+ lsls r3, 1
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0801CE34:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x9
+ bls _0801CDF0
+ ldr r2, =gUnknown_02022C78
+ ldr r1, [r2]
+ movs r4, 0xE5
+ lsls r4, 2
+ adds r1, r4
+ ldr r0, =gUnknown_082F1DF8
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r2, [r2]
+ movs r5, 0xE2
+ lsls r5, 1
+ adds r0, r2, r5
+ ldrh r1, [r0]
+ movs r3, 0xE7
+ lsls r3, 2
+ adds r0, r2, r3
+ strh r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801CDCC
+
+ thumb_func_start sub_801CE7C
+sub_801CE7C: @ 801CE7C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ movs r5, 0
+ ldr r6, =gUnknown_02022C78
+ ldr r0, [r6]
+ movs r7, 0xE4
+ lsls r7, 1
+ adds r0, r7
+ ldrb r0, [r0]
+ bl PutWindowTilemap
+ ldr r0, [r6]
+ movs r4, 0xE5
+ lsls r4, 1
+ adds r0, r4
+ ldrb r0, [r0]
+ bl PutWindowTilemap
+ ldr r0, [r6]
+ adds r0, r7
+ ldrb r0, [r0]
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r4, [r6]
+ movs r0, 0xE7
+ lsls r0, 1
+ mov r8, r0
+ add r4, r8
+ movs r0, 0x3
+ movs r1, 0x2
+ bl GetFontAttribute
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0x3
+ adds r1, r4, 0
+ bl GetStringWidth
+ movs r1, 0xE0
+ subs r1, r0
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ cmp r1, 0
+ bge _0801CEEC
+ movs r1, 0
+_0801CEEC:
+ ldr r4, [r6]
+ adds r0, r4, r7
+ ldrb r0, [r0]
+ lsls r2, r1, 24
+ lsrs r2, 24
+ movs r3, 0xDE
+ lsls r3, 1
+ adds r1, r4, r3
+ ldr r1, [r1]
+ ldrb r1, [r1]
+ lsls r1, 28
+ lsrs r1, 28
+ lsls r3, r1, 1
+ adds r3, r1
+ ldr r1, =gUnknown_082F1DE0
+ adds r3, r1
+ str r3, [sp]
+ str r5, [sp, 0x4]
+ add r4, r8
+ str r4, [sp, 0x8]
+ movs r1, 0x3
+ movs r3, 0x6
+ bl box_print
+_0801CF1C:
+ ldr r6, =gUnknown_02022C78
+ ldr r4, [r6]
+ movs r1, 0xE5
+ lsls r1, 1
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r3, r5, 4
+ adds r3, 0x2
+ lsls r3, 24
+ lsrs r3, 24
+ movs r2, 0xDE
+ lsls r2, 1
+ adds r1, r4, r2
+ ldr r1, [r1]
+ ldrb r1, [r1]
+ lsrs r1, 4
+ lsls r2, r1, 1
+ adds r2, r1
+ ldr r1, =gUnknown_082F1DE0
+ adds r2, r1
+ str r2, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r5
+ ldr r2, =0x000001f7
+ adds r1, r2
+ adds r4, r1
+ str r4, [sp, 0x8]
+ movs r1, 0x3
+ movs r2, 0
+ bl box_print
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x9
+ bls _0801CF1C
+ ldr r0, [r6]
+ movs r3, 0xE4
+ lsls r3, 1
+ adds r0, r3
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r0, [r6]
+ movs r1, 0xE5
+ lsls r1, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801CE7C
+
+ thumb_func_start sub_801CFA4
+sub_801CFA4: @ 801CFA4
+ push {r4-r6,lr}
+ ldr r0, =gUnknown_02022C78
+ ldr r1, [r0]
+ movs r2, 0xE1
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsrs r4, r0, 1
+ lsls r4, 8
+ ldr r6, =0x000001c3
+ adds r0, r1, r6
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CFE4
+ movs r0, 0x2
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl ChangeBgY
+ movs r0, 0x3
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl ChangeBgY
+ b _0801CFF8
+ .pool
+_0801CFE4:
+ movs r0, 0x2
+ adds r1, r4, 0
+ movs r2, 0x2
+ bl ChangeBgY
+ movs r0, 0x3
+ adds r1, r4, 0
+ movs r2, 0x2
+ bl ChangeBgY
+_0801CFF8:
+ ldr r3, =gUnknown_02022C78
+ ldr r0, [r3]
+ ldr r2, =0x000001c3
+ adds r5, r0, r2
+ ldrb r4, [r5]
+ lsrs r1, r4, 1
+ movs r6, 0xE1
+ lsls r6, 1
+ adds r0, r6
+ ldrb r0, [r0]
+ lsrs r0, 1
+ adds r1, r0
+ lsls r1, 1
+ movs r6, 0x1
+ adds r0, r6, 0
+ ands r0, r4
+ orrs r0, r1
+ strb r0, [r5]
+ ldr r1, [r3]
+ adds r2, r1, r2
+ ldrb r2, [r2]
+ lsrs r0, r2, 1
+ cmp r0, 0xF
+ bls _0801D070
+ adds r0, r6, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _0801D044
+ movs r0, 0xE3
+ lsls r0, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ b _0801D04E
+ .pool
+_0801D044:
+ movs r2, 0xE3
+ lsls r2, 1
+ adds r1, r2
+ ldrh r0, [r1]
+ subs r0, 0x1
+_0801D04E:
+ strh r0, [r1]
+ ldr r0, [r3]
+ movs r6, 0xE1
+ lsls r6, 1
+ adds r2, r0, r6
+ ldrb r1, [r2]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, [r3]
+ ldr r1, =0x000001c3
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ strb r0, [r2]
+_0801D070:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801CFA4
+
+ thumb_func_start mevent_srv_init_wnews
+mevent_srv_init_wnews: @ 801D07C
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C7C
+ movs r0, 0x60
+ bl AllocZeroed
+ str r0, [r4]
+ ldr r1, =gUnknown_082F298C
+ movs r2, 0
+ movs r3, 0x1
+ bl mevent_srv_init_common
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end mevent_srv_init_wnews
+
+ thumb_func_start mevent_srv_new_wcard
+mevent_srv_new_wcard: @ 801D0A0
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C7C
+ movs r0, 0x60
+ bl AllocZeroed
+ str r0, [r4]
+ ldr r1, =gUnknown_082F29EC
+ movs r2, 0
+ movs r3, 0x1
+ bl mevent_srv_init_common
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end mevent_srv_new_wcard
+
+ thumb_func_start sub_801D0C4
+sub_801D0C4: @ 801D0C4
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r4, =gUnknown_02022C7C
+ ldr r0, [r4]
+ cmp r0, 0
+ bne _0801D0D8
+ movs r0, 0x3
+ b _0801D0F8
+ .pool
+_0801D0D8:
+ bl mevent_dispatch_08145600
+ adds r5, r0, 0
+ cmp r5, 0x3
+ bne _0801D0F6
+ ldr r0, [r4]
+ ldr r1, [r0, 0x4]
+ strh r1, [r6]
+ bl mevent_srv_free_resources
+ ldr r0, [r4]
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+_0801D0F6:
+ adds r0, r5, 0
+_0801D0F8:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801D0C4
+
+ thumb_func_start mevent_srv_init_common
+mevent_srv_init_common: @ 801D100
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ mov r9, r3
+ movs r5, 0
+ str r5, [r4]
+ str r5, [r4, 0x8]
+ movs r0, 0xA6
+ lsls r0, 1
+ bl AllocZeroed
+ str r0, [r4, 0x18]
+ movs r0, 0xDE
+ lsls r0, 1
+ bl AllocZeroed
+ str r0, [r4, 0x1C]
+ movs r0, 0x80
+ lsls r0, 3
+ bl AllocZeroed
+ str r0, [r4, 0x14]
+ movs r0, 0x64
+ bl AllocZeroed
+ str r0, [r4, 0x20]
+ str r6, [r4, 0x10]
+ str r5, [r4, 0xC]
+ adds r4, 0x38
+ adds r0, r4, 0
+ mov r1, r8
+ mov r2, r9
+ bl sub_801D8D8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end mevent_srv_init_common
+
+ thumb_func_start mevent_srv_free_resources
+mevent_srv_free_resources: @ 801D158
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, [r4, 0x18]
+ bl Free
+ ldr r0, [r4, 0x1C]
+ bl Free
+ ldr r0, [r4, 0x14]
+ bl Free
+ ldr r0, [r4, 0x20]
+ bl Free
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end mevent_srv_free_resources
+
+ thumb_func_start mevent_srv_814501C
+mevent_srv_814501C: @ 801D17C
+ push {lr}
+ adds r0, 0x38
+ bl sub_801D904
+ pop {r0}
+ bx r0
+ thumb_func_end mevent_srv_814501C
+
+ thumb_func_start sub_801D188
+sub_801D188: @ 801D188
+ push {lr}
+ cmp r0, 0
+ bne _0801D190
+ adds r0, r1, 0
+_0801D190:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801D188
+
+ thumb_func_start sub_801D194
+sub_801D194: @ 801D194
+ push {lr}
+ cmp r1, r0
+ bcs _0801D19E
+ movs r0, 0
+ b _0801D1A8
+_0801D19E:
+ cmp r1, r0
+ beq _0801D1A6
+ movs r0, 0x2
+ b _0801D1A8
+_0801D1A6:
+ movs r0, 0x1
+_0801D1A8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801D194
+
+ thumb_func_start sub_801D1AC
+sub_801D1AC: @ 801D1AC
+ movs r1, 0x4
+ str r1, [r0, 0x8]
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_801D1AC
+
+ thumb_func_start sub_801D1B4
+sub_801D1B4: @ 801D1B4
+ movs r0, 0x3
+ bx lr
+ thumb_func_end sub_801D1B4
+
+ thumb_func_start sub_801D1B8
+sub_801D1B8: @ 801D1B8
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x38
+ bl sub_801D8C0
+ cmp r0, 0
+ beq _0801D1CA
+ movs r0, 0x4
+ str r0, [r4, 0x8]
+_0801D1CA:
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801D1B8
+
+ thumb_func_start sub_801D1D4
+sub_801D1D4: @ 801D1D4
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x38
+ bl sub_801D8CC
+ cmp r0, 0
+ beq _0801D1E6
+ movs r0, 0x4
+ str r0, [r4, 0x8]
+_0801D1E6:
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801D1D4
+
+ thumb_func_start sub_801D1F0
+sub_801D1F0: @ 801D1F0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, [r5, 0xC]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, [r5, 0x10]
+ adds r3, r2, r1
+ adds r0, 0x1
+ str r0, [r5, 0xC]
+ ldr r0, [r3]
+ cmp r0, 0x1E
+ bls _0801D20C
+ b _0801D464
+_0801D20C:
+ lsls r0, 2
+ ldr r1, =_0801D21C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801D21C:
+ .4byte _0801D298
+ .4byte _0801D2A2
+ .4byte _0801D2A8
+ .4byte _0801D2E2
+ .4byte _0801D2D8
+ .4byte _0801D2BA
+ .4byte _0801D2C6
+ .4byte _0801D2EC
+ .4byte _0801D300
+ .4byte _0801D308
+ .4byte _0801D31E
+ .4byte _0801D32E
+ .4byte _0801D33A
+ .4byte _0801D360
+ .4byte _0801D348
+ .4byte _0801D390
+ .4byte _0801D378
+ .4byte _0801D3DC
+ .4byte _0801D3A8
+ .4byte _0801D3C0
+ .4byte _0801D3CE
+ .4byte _0801D406
+ .4byte _0801D3EA
+ .4byte _0801D3F8
+ .4byte _0801D40E
+ .4byte _0801D418
+ .4byte _0801D422
+ .4byte _0801D43C
+ .4byte _0801D450
+ .4byte _0801D458
+ .4byte _0801D2CC
+_0801D298:
+ movs r0, 0x1
+ str r0, [r5, 0x8]
+ ldr r0, [r3, 0x4]
+ str r0, [r5, 0x4]
+ b _0801D464
+_0801D2A2:
+ movs r0, 0x3
+ str r0, [r5, 0x8]
+ b _0801D464
+_0801D2A8:
+ adds r0, r5, 0
+ adds r0, 0x38
+ ldr r1, [r3, 0x4]
+ ldr r2, [r5, 0x14]
+ bl sub_801D928
+ movs r0, 0x2
+ str r0, [r5, 0x8]
+ b _0801D464
+_0801D2BA:
+ ldr r0, [r5, 0x20]
+ ldr r1, [r5, 0x14]
+ movs r2, 0x64
+ bl memcpy
+ b _0801D464
+_0801D2C6:
+ ldr r0, [r5, 0x20]
+ movs r1, 0
+ b _0801D2D0
+_0801D2CC:
+ ldr r0, [r5, 0x20]
+ movs r1, 0x1
+_0801D2D0:
+ bl sub_801B6A0
+ str r0, [r5, 0x4]
+ b _0801D464
+_0801D2D8:
+ ldr r1, [r5, 0x4]
+ ldr r0, [r3, 0x4]
+ cmp r1, r0
+ beq _0801D2E2
+ b _0801D464
+_0801D2E2:
+ movs r0, 0
+ str r0, [r5, 0xC]
+ ldr r0, [r3, 0x8]
+ str r0, [r5, 0x10]
+ b _0801D464
+_0801D2EC:
+ ldr r0, [r3, 0x8]
+ ldr r1, [r5, 0x18]
+ bl sub_801D188
+ adds r2, r0, 0
+ ldr r1, [r5, 0x20]
+ bl sub_801B6EC
+ str r0, [r5, 0x4]
+ b _0801D464
+_0801D300:
+ ldr r0, [r5, 0x14]
+ ldr r0, [r0]
+ str r0, [r5, 0x4]
+ b _0801D464
+_0801D308:
+ ldr r0, [r3, 0x8]
+ adds r1, r5, 0
+ adds r1, 0x34
+ bl sub_801D188
+ adds r2, r0, 0
+ ldr r1, [r5, 0x20]
+ bl sub_801B708
+ str r0, [r5, 0x4]
+ b _0801D464
+_0801D31E:
+ ldr r0, [r5, 0x20]
+ ldr r1, [r3, 0x4]
+ bl sub_801B784
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [r5, 0x4]
+ b _0801D464
+_0801D32E:
+ ldr r0, [r5, 0x20]
+ ldr r1, [r3, 0x8]
+ bl sub_801B748
+ str r0, [r5, 0x4]
+ b _0801D464
+_0801D33A:
+ ldr r0, [r3, 0x8]
+ ldr r1, [r5, 0x14]
+ ldr r1, [r1]
+ bl sub_801D194
+ str r0, [r5, 0x4]
+ b _0801D464
+_0801D348:
+ ldr r0, [r3, 0x8]
+ ldr r1, [r5, 0x1C]
+ bl sub_801D188
+ adds r2, r0, 0
+ movs r3, 0xDE
+ lsls r3, 1
+ adds r0, r5, 0
+ movs r1, 0x17
+ bl mevent_srv_814501C
+ b _0801D464
+_0801D360:
+ ldr r0, [r3, 0x8]
+ ldr r1, [r5, 0x18]
+ bl sub_801D188
+ adds r2, r0, 0
+ movs r3, 0xA6
+ lsls r3, 1
+ adds r0, r5, 0
+ movs r1, 0x16
+ bl mevent_srv_814501C
+ b _0801D464
+_0801D378:
+ ldr r0, [r3, 0x8]
+ adds r1, r5, 0
+ adds r1, 0x34
+ bl sub_801D188
+ adds r2, r0, 0
+ adds r0, r5, 0
+ movs r1, 0x18
+ movs r3, 0x4
+ bl mevent_srv_814501C
+ b _0801D464
+_0801D390:
+ ldr r2, [r3, 0x8]
+ cmp r2, 0
+ bne _0801D39C
+ ldr r2, [r5, 0x24]
+ ldr r3, [r5, 0x28]
+ b _0801D39E
+_0801D39C:
+ ldr r3, [r3, 0x4]
+_0801D39E:
+ adds r0, r5, 0
+ movs r1, 0x19
+ bl mevent_srv_814501C
+ b _0801D464
+_0801D3A8:
+ ldr r2, [r3, 0x8]
+ cmp r2, 0
+ bne _0801D3B4
+ ldr r2, [r5, 0x2C]
+ ldr r3, [r5, 0x30]
+ b _0801D3B6
+_0801D3B4:
+ ldr r3, [r3, 0x4]
+_0801D3B6:
+ adds r0, r5, 0
+ movs r1, 0x10
+ bl mevent_srv_814501C
+ b _0801D464
+_0801D3C0:
+ ldr r2, [r3, 0x8]
+ adds r0, r5, 0
+ movs r1, 0x1A
+ movs r3, 0xBC
+ bl mevent_srv_814501C
+ b _0801D464
+_0801D3CE:
+ ldr r2, [r3, 0x8]
+ ldr r3, [r3, 0x4]
+ adds r0, r5, 0
+ movs r1, 0x15
+ bl mevent_srv_814501C
+ b _0801D464
+_0801D3DC:
+ ldr r2, [r3, 0x8]
+ ldr r3, [r3, 0x4]
+ adds r0, r5, 0
+ movs r1, 0x1C
+ bl mevent_srv_814501C
+ b _0801D464
+_0801D3EA:
+ ldr r0, [r5, 0x18]
+ ldr r1, [r3, 0x8]
+ movs r2, 0xA6
+ lsls r2, 1
+ bl memcpy
+ b _0801D464
+_0801D3F8:
+ ldr r0, [r5, 0x1C]
+ ldr r1, [r3, 0x8]
+ movs r2, 0xDE
+ lsls r2, 1
+ bl memcpy
+ b _0801D464
+_0801D406:
+ ldr r0, [r3, 0x8]
+ ldr r0, [r0]
+ str r0, [r5, 0x34]
+ b _0801D464
+_0801D40E:
+ ldr r0, [r3, 0x8]
+ str r0, [r5, 0x24]
+ ldr r0, [r3, 0x4]
+ str r0, [r5, 0x28]
+ b _0801D464
+_0801D418:
+ ldr r0, [r3, 0x8]
+ str r0, [r5, 0x2C]
+ ldr r0, [r3, 0x4]
+ str r0, [r5, 0x30]
+ b _0801D464
+_0801D422:
+ ldr r4, [r5, 0x18]
+ bl sav1_get_mevent_buffer_1
+ adds r1, r0, 0
+ movs r2, 0xA6
+ lsls r2, 1
+ adds r0, r4, 0
+ bl memcpy
+ ldr r0, [r5, 0x18]
+ bl sub_801B3C0
+ b _0801D464
+_0801D43C:
+ ldr r4, [r5, 0x1C]
+ bl sub_801B00C
+ adds r1, r0, 0
+ movs r2, 0xDE
+ lsls r2, 1
+ adds r0, r4, 0
+ bl memcpy
+ b _0801D464
+_0801D450:
+ bl sub_8099244
+ str r0, [r5, 0x24]
+ b _0801D464
+_0801D458:
+ ldr r2, [r3, 0x8]
+ ldr r3, [r3, 0x4]
+ adds r0, r5, 0
+ movs r1, 0x1B
+ bl mevent_srv_814501C
+_0801D464:
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801D1F0
+
+ thumb_func_start mevent_dispatch_08145600
+mevent_dispatch_08145600: @ 801D46C
+ push {lr}
+ ldr r2, =gUnknown_082F2548
+ ldr r1, [r0, 0x8]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end mevent_dispatch_08145600
+
+ thumb_func_start sub_801D484
+sub_801D484: @ 801D484
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, =gUnknown_02022C80
+ movs r0, 0x50
+ bl AllocZeroed
+ str r0, [r4]
+ movs r1, 0x1
+ movs r2, 0
+ bl mevent_srv_ish_init
+ ldr r0, [r4]
+ str r5, [r0, 0x4C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801D484
+
+ thumb_func_start sub_801D4A8
+sub_801D4A8: @ 801D4A8
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r4, =gUnknown_02022C80
+ ldr r0, [r4]
+ cmp r0, 0
+ bne _0801D4BC
+ movs r0, 0x6
+ b _0801D4DC
+ .pool
+_0801D4BC:
+ bl mevent_srv_ish_exec
+ adds r5, r0, 0
+ cmp r5, 0x6
+ bne _0801D4DA
+ ldr r0, [r4]
+ ldr r1, [r0, 0x4]
+ strh r1, [r6]
+ bl sub_801D55C
+ ldr r0, [r4]
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+_0801D4DA:
+ adds r0, r5, 0
+_0801D4DC:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801D4A8
+
+ thumb_func_start sub_801D4E4
+sub_801D4E4: @ 801D4E4
+ ldr r0, =gUnknown_02022C80
+ ldr r1, [r0]
+ ldr r0, [r1, 0xC]
+ adds r0, 0x1
+ str r0, [r1, 0xC]
+ bx lr
+ .pool
+ thumb_func_end sub_801D4E4
+
+ thumb_func_start sub_801D4F4
+sub_801D4F4: @ 801D4F4
+ ldr r0, =gUnknown_02022C80
+ ldr r0, [r0]
+ ldr r0, [r0, 0x20]
+ bx lr
+ .pool
+ thumb_func_end sub_801D4F4
+
+ thumb_func_start sub_801D500
+sub_801D500: @ 801D500
+ ldr r1, =gUnknown_02022C80
+ ldr r1, [r1]
+ str r0, [r1, 0x4]
+ bx lr
+ .pool
+ thumb_func_end sub_801D500
+
+ thumb_func_start mevent_srv_ish_init
+mevent_srv_ish_init: @ 801D50C
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ movs r0, 0
+ str r0, [r4]
+ str r0, [r4, 0x8]
+ str r0, [r4, 0xC]
+ movs r5, 0x80
+ lsls r5, 3
+ adds r0, r5, 0
+ bl AllocZeroed
+ str r0, [r4, 0x14]
+ adds r0, r5, 0
+ bl AllocZeroed
+ str r0, [r4, 0x18]
+ adds r0, r5, 0
+ bl AllocZeroed
+ str r0, [r4, 0x1C]
+ movs r0, 0x40
+ bl AllocZeroed
+ str r0, [r4, 0x20]
+ adds r4, 0x24
+ adds r0, r4, 0
+ adds r1, r6, 0
+ mov r2, r8
+ bl sub_801D8D8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end mevent_srv_ish_init
+
+ thumb_func_start sub_801D55C
+sub_801D55C: @ 801D55C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, [r4, 0x14]
+ bl Free
+ ldr r0, [r4, 0x18]
+ bl Free
+ ldr r0, [r4, 0x1C]
+ bl Free
+ ldr r0, [r4, 0x20]
+ bl Free
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801D55C
+
+ thumb_func_start sub_801D580
+sub_801D580: @ 801D580
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, [r4, 0x1C]
+ ldr r1, [r4, 0x18]
+ movs r2, 0x80
+ lsls r2, 3
+ bl memcpy
+ movs r0, 0
+ str r0, [r4, 0x10]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801D580
+
+ thumb_func_start sub_801D59C
+sub_801D59C: @ 801D59C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r5, r2, 0
+ movs r0, 0
+ str r0, [sp]
+ ldr r1, [r4, 0x14]
+ ldr r2, =0x05000100
+ mov r0, sp
+ bl CpuSet
+ ldr r2, [r4, 0x14]
+ str r5, [r2]
+ adds r4, 0x24
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r3, 0x4
+ bl sub_801D904
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801D59C
+
+ thumb_func_start sub_801D5D0
+sub_801D5D0: @ 801D5D0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, [r4, 0x1C]
+ ldr r1, =gUnknown_082F2598
+ movs r2, 0x80
+ lsls r2, 3
+ bl memcpy
+ movs r1, 0
+ str r1, [r4, 0x10]
+ movs r0, 0x4
+ str r0, [r4, 0x8]
+ str r1, [r4, 0xC]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801D5D0
+
+ thumb_func_start sub_801D5F8
+sub_801D5F8: @ 801D5F8
+ movs r0, 0x6
+ bx lr
+ thumb_func_end sub_801D5F8
+
+ thumb_func_start sub_801D5FC
+sub_801D5FC: @ 801D5FC
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x24
+ bl sub_801D8C0
+ cmp r0, 0
+ beq _0801D612
+ movs r0, 0x4
+ str r0, [r4, 0x8]
+ movs r0, 0
+ str r0, [r4, 0xC]
+_0801D612:
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801D5FC
+
+ thumb_func_start sub_801D61C
+sub_801D61C: @ 801D61C
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x24
+ bl sub_801D8CC
+ cmp r0, 0
+ beq _0801D632
+ movs r0, 0x4
+ str r0, [r4, 0x8]
+ movs r0, 0
+ str r0, [r4, 0xC]
+_0801D632:
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801D61C
+
+ thumb_func_start sub_801D63C
+sub_801D63C: @ 801D63C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, [r4, 0x10]
+ lsls r2, r0, 3
+ ldr r1, [r4, 0x1C]
+ adds r2, r1, r2
+ adds r0, 0x1
+ str r0, [r4, 0x10]
+ ldr r0, [r2]
+ cmp r0, 0x15
+ bls _0801D654
+ b _0801D804
+_0801D654:
+ lsls r0, 2
+ ldr r1, =_0801D664
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801D664:
+ .4byte _0801D804
+ .4byte _0801D6BC
+ .4byte _0801D6C4
+ .4byte _0801D6D4
+ .4byte _0801D70E
+ .4byte _0801D716
+ .4byte _0801D6FE
+ .4byte _0801D708
+ .4byte _0801D764
+ .4byte _0801D790
+ .4byte _0801D788
+ .4byte _0801D72C
+ .4byte _0801D742
+ .4byte _0801D758
+ .4byte _0801D77C
+ .4byte _0801D7B8
+ .4byte _0801D7BC
+ .4byte _0801D7C4
+ .4byte _0801D7D0
+ .4byte _0801D6EA
+ .4byte _0801D6D8
+ .4byte _0801D7F0
+_0801D6BC:
+ ldr r0, [r2, 0x4]
+ str r0, [r4, 0x4]
+ movs r0, 0x1
+ b _0801D7FE
+_0801D6C4:
+ adds r0, r4, 0
+ adds r0, 0x24
+ ldr r1, [r2, 0x4]
+ ldr r2, [r4, 0x18]
+ bl sub_801D928
+ movs r0, 0x2
+ b _0801D7FE
+_0801D6D4:
+ movs r0, 0x3
+ b _0801D7FE
+_0801D6D8:
+ adds r0, r4, 0
+ adds r0, 0x24
+ ldr r2, [r4, 0x14]
+ movs r1, 0x14
+ movs r3, 0
+ bl sub_801D904
+ movs r0, 0x3
+ b _0801D7FE
+_0801D6EA:
+ ldrb r0, [r2, 0x4]
+ bl GetGameStat
+ adds r2, r0, 0
+ adds r0, r4, 0
+ movs r1, 0x12
+ bl sub_801D59C
+ movs r0, 0x3
+ b _0801D7FE
+_0801D6FE:
+ ldr r0, [r4, 0x4]
+ cmp r0, 0
+ beq _0801D706
+ b _0801D804
+_0801D706:
+ b _0801D70E
+_0801D708:
+ ldr r0, [r4, 0x4]
+ cmp r0, 0x1
+ bne _0801D804
+_0801D70E:
+ adds r0, r4, 0
+ bl sub_801D580
+ b _0801D804
+_0801D716:
+ ldr r0, [r4, 0x20]
+ ldr r1, [r4, 0x18]
+ movs r2, 0x40
+ bl memcpy
+ movs r0, 0x5
+ str r0, [r4, 0x8]
+ movs r0, 0
+ str r0, [r4, 0xC]
+ movs r0, 0x2
+ b _0801D806
+_0801D72C:
+ ldr r0, [r4, 0x20]
+ ldr r1, [r4, 0x18]
+ movs r2, 0x40
+ bl memcpy
+ movs r0, 0x5
+ str r0, [r4, 0x8]
+ movs r0, 0
+ str r0, [r4, 0xC]
+ movs r0, 0x3
+ b _0801D806
+_0801D742:
+ ldr r0, [r4, 0x20]
+ ldr r1, [r4, 0x18]
+ movs r2, 0x40
+ bl memcpy
+ movs r0, 0x5
+ str r0, [r4, 0x8]
+ movs r0, 0
+ str r0, [r4, 0xC]
+ movs r0, 0x5
+ b _0801D806
+_0801D758:
+ movs r0, 0x5
+ str r0, [r4, 0x8]
+ movs r0, 0
+ str r0, [r4, 0xC]
+ movs r0, 0x4
+ b _0801D806
+_0801D764:
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x4C]
+ bl sub_801B580
+ adds r0, r4, 0
+ adds r0, 0x24
+ ldr r2, [r4, 0x14]
+ movs r1, 0x11
+ movs r3, 0x64
+ bl sub_801D904
+ b _0801D804
+_0801D77C:
+ ldr r2, [r4, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x13
+ bl sub_801D59C
+ b _0801D804
+_0801D788:
+ ldr r0, [r4, 0x18]
+ bl sub_801B21C
+ b _0801D804
+_0801D790:
+ ldr r0, [r4, 0x18]
+ bl sub_801B1A4
+ cmp r0, 0
+ bne _0801D7AC
+ ldr r0, [r4, 0x18]
+ bl sub_801B078
+ adds r0, r4, 0
+ movs r1, 0x13
+ movs r2, 0
+ bl sub_801D59C
+ b _0801D804
+_0801D7AC:
+ adds r0, r4, 0
+ movs r1, 0x13
+ movs r2, 0x1
+ bl sub_801D59C
+ b _0801D804
+_0801D7B8:
+ movs r0, 0x6
+ b _0801D7FE
+_0801D7BC:
+ ldr r0, [r4, 0x18]
+ bl sub_801B508
+ b _0801D804
+_0801D7C4:
+ ldr r0, [r4, 0x18]
+ movs r1, 0xFA
+ lsls r1, 2
+ bl sub_80992A0
+ b _0801D804
+_0801D7D0:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000bec
+ adds r0, r1
+ ldr r1, [r4, 0x18]
+ movs r2, 0xBC
+ bl memcpy
+ bl ValidateEReaderTrainer
+ b _0801D804
+ .pool
+_0801D7F0:
+ ldr r0, =0x0201c000
+ ldr r1, [r4, 0x18]
+ movs r2, 0x80
+ lsls r2, 3
+ bl memcpy
+ movs r0, 0x7
+_0801D7FE:
+ str r0, [r4, 0x8]
+ movs r0, 0
+ str r0, [r4, 0xC]
+_0801D804:
+ movs r0, 0x1
+_0801D806:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801D63C
+
+ thumb_func_start sub_801D810
+sub_801D810: @ 801D810
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, [r1, 0xC]
+ cmp r0, 0
+ beq _0801D822
+ movs r0, 0x4
+ str r0, [r1, 0x8]
+ movs r0, 0
+ str r0, [r1, 0xC]
+_0801D822:
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801D810
+
+ thumb_func_start sub_801D828
+sub_801D828: @ 801D828
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, [r4, 0xC]
+ cmp r0, 0
+ beq _0801D838
+ cmp r0, 0x1
+ beq _0801D846
+ b _0801D858
+_0801D838:
+ ldr r0, [r4, 0x18]
+ bl sub_8153870
+ ldr r0, [r4, 0xC]
+ adds r0, 0x1
+ str r0, [r4, 0xC]
+ b _0801D858
+_0801D846:
+ adds r0, r4, 0x4
+ bl sub_8153884
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _0801D858
+ movs r0, 0x4
+ str r0, [r4, 0x8]
+ str r1, [r4, 0xC]
+_0801D858:
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801D828
+
+ thumb_func_start sub_801D860
+sub_801D860: @ 801D860
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r3, =0x0201c000
+ adds r0, r4, 0x4
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ ldr r2, =gSaveBlock1Ptr
+ ldr r2, [r2]
+ bl _call_via_r3
+ cmp r0, 0x1
+ bne _0801D880
+ movs r0, 0x4
+ str r0, [r4, 0x8]
+ movs r0, 0
+ str r0, [r4, 0xC]
+_0801D880:
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801D860
+
+ thumb_func_start mevent_srv_ish_exec
+mevent_srv_ish_exec: @ 801D894
+ push {r4,r5,lr}
+ sub sp, 0x20
+ mov r2, sp
+ ldr r1, =gUnknown_082F255C
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldm r1!, {r3,r4}
+ stm r2!, {r3,r4}
+ ldr r1, [r0, 0x8]
+ lsls r1, 2
+ add r1, sp
+ ldr r1, [r1]
+ bl _call_via_r1
+ add sp, 0x20
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end mevent_srv_ish_exec
+
+ thumb_func_start sub_801D8C0
+sub_801D8C0: @ 801D8C0
+ push {lr}
+ ldr r1, [r0, 0x20]
+ bl _call_via_r1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801D8C0
+
+ thumb_func_start sub_801D8CC
+sub_801D8CC: @ 801D8CC
+ push {lr}
+ ldr r1, [r0, 0x24]
+ bl _call_via_r1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801D8CC
+
+ thumb_func_start sub_801D8D8
+sub_801D8D8: @ 801D8D8
+ movs r3, 0
+ strb r1, [r0, 0x4]
+ strb r2, [r0, 0x5]
+ str r3, [r0]
+ strh r3, [r0, 0x12]
+ strh r3, [r0, 0x14]
+ strh r3, [r0, 0x10]
+ strh r3, [r0, 0xA]
+ strh r3, [r0, 0xC]
+ strh r3, [r0, 0x8]
+ str r3, [r0, 0x1C]
+ str r3, [r0, 0x18]
+ ldr r1, =sub_801DA5C
+ str r1, [r0, 0x24]
+ ldr r1, =sub_801D988
+ str r1, [r0, 0x20]
+ bx lr
+ .pool
+ thumb_func_end sub_801D8D8
+
+ thumb_func_start sub_801D904
+sub_801D904: @ 801D904
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ str r0, [r4]
+ strh r1, [r4, 0xE]
+ strh r0, [r4, 0x10]
+ strh r0, [r4, 0x12]
+ cmp r3, 0
+ beq _0801D91A
+ strh r3, [r4, 0x14]
+ b _0801D920
+_0801D91A:
+ movs r0, 0x80
+ lsls r0, 3
+ strh r0, [r4, 0x14]
+_0801D920:
+ str r2, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801D904
+
+ thumb_func_start sub_801D928
+sub_801D928: @ 801D928
+ movs r3, 0
+ str r3, [r0]
+ strh r1, [r0, 0x6]
+ strh r3, [r0, 0x8]
+ strh r3, [r0, 0xA]
+ strh r3, [r0, 0xC]
+ str r2, [r0, 0x18]
+ bx lr
+ thumb_func_end sub_801D928
+
+ thumb_func_start sub_801D938
+sub_801D938: @ 801D938
+ push {lr}
+ adds r3, r0, 0
+ adds r0, r1, 0
+ lsls r3, 8
+ ldr r1, =gBlockRecvBuffer
+ adds r3, r1
+ adds r1, r3, 0
+ bl memcpy
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801D938
+
+ thumb_func_start sub_801D954
+sub_801D954: @ 801D954
+ push {r4,lr}
+ adds r4, r0, 0
+ bl GetBlockReceivedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ asrs r0, r4
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D96E
+ movs r0, 0
+ b _0801D970
+_0801D96E:
+ movs r0, 0x1
+_0801D970:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801D954
+
+ thumb_func_start sub_801D978
+sub_801D978: @ 801D978
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl ResetBlockReceivedFlag
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801D978
+
+ thumb_func_start sub_801D988
+sub_801D988: @ 801D988
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ ldr r6, [r5]
+ cmp r6, 0x1
+ beq _0801D9EC
+ cmp r6, 0x1
+ bgt _0801D99E
+ cmp r6, 0
+ beq _0801D9A4
+ b _0801DA52
+_0801D99E:
+ cmp r6, 0x2
+ beq _0801DA38
+ b _0801DA52
+_0801D9A4:
+ ldrb r0, [r5, 0x5]
+ bl sub_801D954
+ cmp r0, 0
+ beq _0801DA52
+ ldrb r0, [r5, 0x5]
+ mov r4, sp
+ mov r1, sp
+ movs r2, 0x8
+ bl sub_801D938
+ ldrh r1, [r4, 0x4]
+ strh r1, [r5, 0xC]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0xA]
+ lsls r1, 16
+ movs r0, 0x80
+ lsls r0, 19
+ cmp r1, r0
+ bls _0801D9D2
+_0801D9CC:
+ bl sub_8010198
+ b _0801DA52
+_0801D9D2:
+ mov r1, sp
+ ldrh r0, [r5, 0x6]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _0801D9CC
+ strh r6, [r5, 0x8]
+ ldrb r0, [r5, 0x5]
+ bl sub_801D978
+ ldr r0, [r5]
+ adds r0, 0x1
+ str r0, [r5]
+ b _0801DA52
+_0801D9EC:
+ ldrb r0, [r5, 0x5]
+ bl sub_801D954
+ cmp r0, 0
+ beq _0801DA52
+ ldrh r0, [r5, 0x8]
+ lsls r1, r0, 6
+ subs r1, r0
+ lsls r3, r1, 2
+ ldrh r0, [r5, 0xC]
+ subs r2, r0, r3
+ cmp r2, 0xFC
+ bhi _0801DA1E
+ ldrb r0, [r5, 0x5]
+ ldr r1, [r5, 0x18]
+ adds r1, r3
+ bl sub_801D938
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ ldr r0, [r5]
+ adds r0, 0x1
+ str r0, [r5]
+ b _0801DA30
+_0801DA1E:
+ ldrb r0, [r5, 0x5]
+ ldr r1, [r5, 0x18]
+ adds r1, r3
+ movs r2, 0xFC
+ bl sub_801D938
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+_0801DA30:
+ ldrb r0, [r5, 0x5]
+ bl sub_801D978
+ b _0801DA52
+_0801DA38:
+ ldr r0, [r5, 0x18]
+ ldrh r1, [r5, 0xC]
+ bl CalcCRC16WithTable
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r5, 0xA]
+ cmp r0, r1
+ bne _0801D9CC
+ movs r0, 0
+ str r0, [r5]
+ movs r0, 0x1
+ b _0801DA54
+_0801DA52:
+ movs r0, 0
+_0801DA54:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801D988
+
+ thumb_func_start sub_801DA5C
+sub_801DA5C: @ 801DA5C
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r5, [r4]
+ cmp r5, 0x1
+ beq _0801DAC8
+ cmp r5, 0x1
+ bgt _0801DA72
+ cmp r5, 0
+ beq _0801DA7C
+ b _0801DB5E
+_0801DA72:
+ cmp r5, 0x2
+ beq _0801DB1C
+ cmp r5, 0x3
+ beq _0801DB46
+ b _0801DB5E
+_0801DA7C:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801DB5E
+ ldrh r1, [r4, 0xE]
+ ldr r2, =0xffff0000
+ ldr r0, [sp]
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp]
+ ldrh r1, [r4, 0x14]
+ ldr r0, [sp, 0x4]
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ ldr r0, [r4, 0x1C]
+ bl CalcCRC16WithTable
+ lsls r0, 16
+ ldr r2, =0x0000ffff
+ ldr r1, [sp]
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp]
+ lsrs r1, 16
+ strh r1, [r4, 0x12]
+ strh r5, [r4, 0x10]
+ movs r0, 0
+ mov r1, sp
+ movs r2, 0x8
+ bl SendBlock
+ b _0801DB3E
+ .pool
+_0801DAC8:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801DB5E
+ ldrb r0, [r4, 0x4]
+ bl sub_801D954
+ cmp r0, 0
+ beq _0801DB5E
+ ldrb r0, [r4, 0x4]
+ bl sub_801D978
+ ldrh r1, [r4, 0x10]
+ lsls r0, r1, 6
+ subs r0, r1
+ lsls r3, r0, 2
+ ldrh r0, [r4, 0x14]
+ subs r0, r3
+ cmp r0, 0xFC
+ bhi _0801DB08
+ ldr r1, [r4, 0x1C]
+ adds r1, r3
+ lsls r2, r0, 16
+ lsrs r2, 16
+ movs r0, 0
+ bl SendBlock
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ b _0801DB3E
+_0801DB08:
+ ldr r1, [r4, 0x1C]
+ adds r1, r3
+ movs r0, 0
+ movs r2, 0xFC
+ bl SendBlock
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ b _0801DB5E
+_0801DB1C:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801DB5E
+ ldr r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x14]
+ bl CalcCRC16WithTable
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r4, 0x12]
+ cmp r0, r1
+ beq _0801DB3E
+ bl sub_8010198
+ b _0801DB5E
+_0801DB3E:
+ ldr r0, [r4]
+ adds r0, 0x1
+ str r0, [r4]
+ b _0801DB5E
+_0801DB46:
+ ldrb r0, [r4, 0x4]
+ bl sub_801D954
+ cmp r0, 0
+ beq _0801DB5E
+ ldrb r0, [r4, 0x4]
+ bl sub_801D978
+ movs r0, 0
+ str r0, [r4]
+ movs r0, 0x1
+ b _0801DB60
+_0801DB5E:
+ movs r0, 0
+_0801DB60:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801DA5C
+
+ thumb_func_start sub_801DB68
+sub_801DB68: @ 801DB68
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_801B044
+ adds r5, r0, 0
+ movs r0, 0x3
+ adds r1, r4, 0
+ ands r1, r0
+ ldrb r2, [r5]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5]
+ cmp r4, 0x2
+ bhi _0801DB8E
+ cmp r4, 0x1
+ bcs _0801DB94
+ b _0801DBB8
+_0801DB8E:
+ cmp r4, 0x3
+ beq _0801DBA6
+ b _0801DBB8
+_0801DB94:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF
+ bl __umodsi3
+ adds r0, 0x10
+ b _0801DBB6
+_0801DBA6:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF
+ bl __umodsi3
+ adds r0, 0x1
+_0801DBB6:
+ strb r0, [r5, 0x1]
+_0801DBB8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801DB68
+
+ thumb_func_start sub_801DBC0
+sub_801DBC0: @ 801DBC0
+ push {lr}
+ bl sub_801B044
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0, 0x1]
+ ldr r0, =0x0000402e
+ bl VarSet
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801DBC0
+
+ thumb_func_start sub_801DBDC
+sub_801DBDC: @ 801DBDC
+ push {r4,lr}
+ ldr r0, =0x0000402e
+ bl GetVarPointer
+ adds r4, r0, 0
+ bl sub_801B044
+ adds r2, r0, 0
+ ldr r0, [r2]
+ lsls r0, 24
+ lsrs r0, 29
+ cmp r0, 0x4
+ bls _0801DC10
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ lsls r0, 16
+ ldr r1, =0x01f30000
+ cmp r0, r1
+ bls _0801DC10
+ ldrb r0, [r2]
+ movs r1, 0x1F
+ ands r1, r0
+ strb r1, [r2]
+ movs r0, 0
+ strh r0, [r4]
+_0801DC10:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801DBDC
+
+ thumb_func_start sub_801DC20
+sub_801DC20: @ 801DC20
+ push {r4-r6,lr}
+ ldr r6, =gSpecialVar_Result
+ bl sub_801B044
+ adds r4, r0, 0
+ bl IsMysteryEventEnabled
+ cmp r0, 0
+ beq _0801DC3A
+ bl sub_801B0CC
+ cmp r0, 0
+ bne _0801DC44
+_0801DC3A:
+ movs r0, 0
+ b _0801DCA6
+ .pool
+_0801DC44:
+ adds r0, r4, 0
+ bl sub_801DD44
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x6
+ bhi _0801DCA4
+ lsls r0, r5, 2
+ ldr r1, =_0801DC60
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801DC60:
+ .4byte _0801DCA4
+ .4byte _0801DC7C
+ .4byte _0801DC7C
+ .4byte _0801DCA4
+ .4byte _0801DC86
+ .4byte _0801DC96
+ .4byte _0801DCA4
+_0801DC7C:
+ adds r0, r4, 0
+ bl sub_801DCAC
+ strh r0, [r6]
+ b _0801DCA4
+_0801DC86:
+ adds r0, r4, 0
+ bl sub_801DCAC
+ strh r0, [r6]
+ adds r0, r4, 0
+ bl sub_801DCD8
+ b _0801DCA4
+_0801DC96:
+ adds r0, r4, 0
+ bl sub_801DCAC
+ strh r0, [r6]
+ adds r0, r4, 0
+ bl sub_801DCCC
+_0801DCA4:
+ adds r0, r5, 0
+_0801DCA6:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801DC20
+
+ thumb_func_start sub_801DCAC
+sub_801DCAC: @ 801DCAC
+ push {r4,lr}
+ ldrb r2, [r0]
+ movs r1, 0x4
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r4, [r0, 0x1]
+ adds r4, 0x84
+ movs r1, 0
+ strb r1, [r0, 0x1]
+ bl sub_801DD10
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801DCAC
+
+ thumb_func_start sub_801DCCC
+sub_801DCCC: @ 801DCCC
+ ldrb r2, [r0]
+ movs r1, 0x1D
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ bx lr
+ thumb_func_end sub_801DCCC
+
+ thumb_func_start sub_801DCD8
+sub_801DCD8: @ 801DCD8
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, [r3]
+ lsls r0, 27
+ lsrs r0, 29
+ adds r0, 0x1
+ movs r1, 0x7
+ ands r0, r1
+ lsls r0, 2
+ ldrb r1, [r3]
+ movs r4, 0x1D
+ negs r4, r4
+ adds r2, r4, 0
+ ands r2, r1
+ orrs r2, r0
+ strb r2, [r3]
+ ldr r0, [r3]
+ lsls r0, 27
+ lsrs r0, 29
+ cmp r0, 0x4
+ bls _0801DD0A
+ ands r2, r4
+ movs r0, 0x10
+ orrs r2, r0
+ strb r2, [r3]
+_0801DD0A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801DCD8
+
+ thumb_func_start sub_801DD10
+sub_801DD10: @ 801DD10
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, [r3]
+ lsls r0, 24
+ lsrs r0, 29
+ adds r0, 0x1
+ lsls r0, 5
+ ldrb r1, [r3]
+ movs r4, 0x1F
+ adds r2, r4, 0
+ ands r2, r1
+ orrs r2, r0
+ strb r2, [r3]
+ ldr r0, [r3]
+ lsls r0, 24
+ lsrs r0, 29
+ cmp r0, 0x5
+ bls _0801DD3C
+ ands r2, r4
+ movs r0, 0xA0
+ orrs r2, r0
+ strb r2, [r3]
+_0801DD3C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801DD10
+
+ thumb_func_start sub_801DD44
+sub_801DD44: @ 801DD44
+ push {lr}
+ adds r2, r0, 0
+ ldrb r1, [r2]
+ movs r0, 0xE0
+ ands r0, r1
+ cmp r0, 0xA0
+ bne _0801DD56
+ movs r0, 0x6
+ b _0801DD92
+_0801DD56:
+ ldr r1, [r2]
+ lsls r0, r1, 30
+ lsrs r0, 30
+ cmp r0, 0x1
+ beq _0801DD78
+ cmp r0, 0x1
+ bgt _0801DD6A
+ cmp r0, 0
+ beq _0801DD74
+ b _0801DD90
+_0801DD6A:
+ cmp r0, 0x2
+ beq _0801DD7C
+ cmp r0, 0x3
+ beq _0801DD80
+ b _0801DD90
+_0801DD74:
+ movs r0, 0x3
+ b _0801DD92
+_0801DD78:
+ movs r0, 0x1
+ b _0801DD92
+_0801DD7C:
+ movs r0, 0x2
+ b _0801DD92
+_0801DD80:
+ lsls r0, r1, 27
+ lsrs r0, 29
+ cmp r0, 0x2
+ bhi _0801DD8C
+ movs r0, 0x4
+ b _0801DD92
+_0801DD8C:
+ movs r0, 0x5
+ b _0801DD92
+_0801DD90:
+ movs r0, 0
+_0801DD92:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801DD44
+
+ thumb_func_start sub_801DD98
+sub_801DD98: @ 801DD98
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C84
+ movs r0, 0xDE
+ lsls r0, 1
+ bl Alloc
+ str r0, [r4]
+ bl sub_801DDD0
+ ldr r1, =gKeyRepeatStartDelay
+ movs r0, 0x14
+ strh r0, [r1]
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r0, =c2_081284E0
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801DD98
+
+ thumb_func_start sub_801DDD0
+sub_801DDD0: @ 801DDD0
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ movs r0, 0
+ strh r0, [r4, 0x4]
+ strh r0, [r4, 0x6]
+ strb r5, [r4, 0x10]
+ strb r5, [r4, 0x11]
+ strb r5, [r4, 0x12]
+ strb r5, [r4, 0x14]
+ strb r5, [r4, 0x15]
+ strb r5, [r4, 0x16]
+ movs r0, 0xFF
+ strb r0, [r4, 0x1A]
+ bl GetLinkPlayerCount
+ strb r0, [r4, 0xD]
+ bl GetMultiplayerId
+ strb r0, [r4, 0x13]
+ strb r5, [r4, 0x17]
+ strb r5, [r4, 0x18]
+ movs r1, 0xC8
+ lsls r1, 1
+ adds r0, r4, r1
+ bl sub_801EF1C
+ ldr r7, =gSaveBlock1Ptr
+ ldr r6, =0x00003c88
+ adds r4, 0xB9
+ movs r5, 0x9
+_0801DE0E:
+ ldr r1, [r7]
+ adds r1, r6
+ adds r0, r4, 0
+ bl StringCopy
+ adds r6, 0x15
+ adds r4, 0x15
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0801DE0E
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801DDD0
+
+ thumb_func_start sub_801DE30
+sub_801DE30: @ 801DE30
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C84
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xE]
+ bl DestroyTask
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xF]
+ bl DestroyTask
+ ldr r0, [r4]
+ bl Free
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801DE30
+
+ thumb_func_start c2_081284E0
+c2_081284E0: @ 801DE54
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r0, =gMain
+ movs r1, 0x87
+ lsls r1, 3
+ adds r6, r0, r1
+ ldrb r0, [r6]
+ cmp r0, 0x1
+ beq _0801DE8C
+ cmp r0, 0x1
+ bgt _0801DE74
+ cmp r0, 0
+ beq _0801DE7A
+ b _0801DF04
+ .pool
+_0801DE74:
+ cmp r0, 0x2
+ beq _0801DEC8
+ b _0801DF04
+_0801DE7A:
+ bl ResetTasks
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl sub_801F4D0
+ b _0801DEBC
+_0801DE8C:
+ bl sub_801F5B8
+ bl sub_801F534
+ adds r5, r0, 0
+ cmp r5, 0
+ bne _0801DF04
+ movs r4, 0x1
+ negs r4, r4
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ str r5, [sp]
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, =sub_801DF20
+ bl SetVBlankCallback
+_0801DEBC:
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ b _0801DF04
+ .pool
+_0801DEC8:
+ bl UpdatePaletteFade
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DF04
+ ldr r0, =sub_801DF38
+ bl SetMainCallback2
+ ldr r0, =sub_801DF54
+ movs r1, 0x8
+ bl CreateTask
+ ldr r4, =gUnknown_02022C84
+ ldr r1, [r4]
+ strb r0, [r1, 0xE]
+ ldr r0, =sub_801F2B4
+ movs r1, 0x7
+ bl CreateTask
+ ldr r1, [r4]
+ strb r0, [r1, 0xF]
+ bl sub_800E0E8
+ movs r0, 0xE8
+ movs r1, 0x96
+ bl CreateWirelessStatusIndicatorSprite
+_0801DF04:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end c2_081284E0
+
+ thumb_func_start sub_801DF20
+sub_801DF20: @ 801DF20
+ push {lr}
+ bl TransferPlttBuffer
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl ScanlineEffect_InitHBlankDmaTransfer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801DF20
+
+ thumb_func_start sub_801DF38
+sub_801DF38: @ 801DF38
+ push {lr}
+ bl RunTasks
+ bl sub_801F5B8
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801DF38
+
+ thumb_func_start sub_801DF54
+sub_801DF54: @ 801DF54
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C84
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x2
+ beq _0801DF7A
+ cmp r0, 0x2
+ bgt _0801DF70
+ cmp r0, 0x1
+ beq _0801DF76
+ b _0801DF8A
+ .pool
+_0801DF70:
+ cmp r0, 0x3
+ beq _0801DF7E
+ b _0801DF8A
+_0801DF76:
+ movs r0, 0x6
+ b _0801DF80
+_0801DF7A:
+ movs r0, 0x7
+ b _0801DF80
+_0801DF7E:
+ movs r0, 0x8
+_0801DF80:
+ bl sub_801EBD4
+ ldr r1, [r4]
+ movs r0, 0
+ strb r0, [r1, 0x17]
+_0801DF8A:
+ ldr r1, =gUnknown_082F2A7C
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801DF54
+
+ thumb_func_start sub_801DFAC
+sub_801DFAC: @ 801DFAC
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C84
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x6]
+ cmp r1, 0x1
+ beq _0801DFE0
+ cmp r1, 0x1
+ bgt _0801DFC8
+ cmp r1, 0
+ beq _0801DFCE
+ b _0801E028
+ .pool
+_0801DFC8:
+ cmp r1, 0x2
+ beq _0801E018
+ b _0801E028
+_0801DFCE:
+ movs r1, 0xC8
+ lsls r1, 1
+ adds r0, r1
+ bl sub_801EF24
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x6]
+ adds r0, 0x1
+ strh r0, [r1, 0x6]
+_0801DFE0:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801E028
+ bl sub_8011A9C
+ cmp r0, 0
+ bne _0801E028
+ ldr r4, =gUnknown_02022C84
+ ldr r1, [r4]
+ movs r0, 0xC8
+ lsls r0, 1
+ adds r1, r0
+ movs r0, 0
+ movs r2, 0x28
+ bl SendBlock
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801E028
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x6]
+ adds r0, 0x1
+ strh r0, [r1, 0x6]
+ b _0801E028
+ .pool
+_0801E018:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801E028
+ movs r0, 0x1
+ bl sub_801EBD4
+_0801E028:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801DFAC
+
+ thumb_func_start sub_801E030
+sub_801E030: @ 801E030
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_02022C84
+ ldr r3, [r5]
+ ldrh r0, [r3, 0x6]
+ cmp r0, 0
+ beq _0801E048
+ cmp r0, 0x1
+ beq _0801E0F6
+ b _0801E118
+ .pool
+_0801E048:
+ ldr r1, =gMain
+ ldrh r2, [r1, 0x2E]
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _0801E068
+ ldrb r0, [r3, 0x15]
+ cmp r0, 0
+ beq _0801E118
+ movs r0, 0x4
+ bl sub_801EBD4
+ b _0801E118
+ .pool
+_0801E068:
+ movs r0, 0x4
+ ands r0, r2
+ cmp r0, 0
+ beq _0801E078
+ movs r0, 0x2
+ bl sub_801EBD4
+ b _0801E118
+_0801E078:
+ ldrh r1, [r1, 0x30]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E0A4
+ ldrb r0, [r3, 0x15]
+ cmp r0, 0
+ beq _0801E09C
+ bl sub_801ED68
+ movs r0, 0x8
+ movs r1, 0
+ bl sub_801F5EC
+ ldr r1, [r5]
+ movs r0, 0x1
+ strh r0, [r1, 0x6]
+ b _0801E118
+_0801E09C:
+ movs r0, 0x3
+ bl sub_801EBD4
+ b _0801E118
+_0801E0A4:
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _0801E0C0
+ bl sub_801EC94
+ movs r0, 0x8
+ movs r1, 0
+ bl sub_801F5EC
+ movs r0, 0x2
+ movs r1, 0x1
+ b _0801E0EC
+_0801E0C0:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r2
+ cmp r0, 0
+ beq _0801E0E0
+ ldrb r0, [r3, 0x10]
+ cmp r0, 0x3
+ beq _0801E0D8
+ bl sub_801ED94
+ movs r0, 0x8
+ b _0801E0EA
+_0801E0D8:
+ movs r0, 0x5
+ bl sub_801EBD4
+ b _0801E118
+_0801E0E0:
+ bl sub_801EBE4
+ cmp r0, 0
+ beq _0801E118
+ movs r0, 0x1
+_0801E0EA:
+ movs r1, 0
+_0801E0EC:
+ bl sub_801F5EC
+ ldr r0, [r5]
+ strh r4, [r0, 0x6]
+ b _0801E118
+_0801E0F6:
+ movs r0, 0
+ bl sub_801F644
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl sub_801F644
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r4, 0
+ bne _0801E118
+ cmp r1, 0
+ bne _0801E118
+ ldr r0, [r5]
+ strh r1, [r0, 0x6]
+_0801E118:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801E030
+
+ thumb_func_start sub_801E120
+sub_801E120: @ 801E120
+ push {r4-r6,lr}
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x6]
+ cmp r0, 0x4
+ bls _0801E12E
+ b _0801E23A
+_0801E12E:
+ lsls r0, 2
+ ldr r1, =_0801E140
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801E140:
+ .4byte _0801E154
+ .4byte _0801E15E
+ .4byte _0801E17C
+ .4byte _0801E208
+ .4byte _0801E21C
+_0801E154:
+ movs r0, 0x3
+ movs r1, 0
+ bl sub_801F5EC
+ b _0801E16A
+_0801E15E:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801E23A
+_0801E16A:
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x6]
+ adds r0, 0x1
+ strh r0, [r1, 0x6]
+ b _0801E23A
+ .pool
+_0801E17C:
+ bl ProcessMenuInput
+ lsls r0, 24
+ asrs r0, 8
+ lsrs r6, r0, 16
+ asrs r4, r0, 16
+ movs r0, 0x2
+ negs r0, r0
+ cmp r4, r0
+ beq _0801E1B4
+ adds r0, 0x1
+ cmp r4, r0
+ beq _0801E1D4
+ movs r0, 0x4
+ movs r1, 0
+ bl sub_801F5EC
+ ldr r5, =gUnknown_02022C84
+ ldr r2, [r5]
+ ldrb r0, [r2, 0x10]
+ cmp r0, r4
+ beq _0801E1DC
+ cmp r4, 0x3
+ ble _0801E1EC
+ b _0801E1DC
+ .pool
+_0801E1B4:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E23A
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _0801E23A
+ .pool
+_0801E1D4:
+ movs r0, 0x4
+ movs r1, 0
+ bl sub_801F5EC
+_0801E1DC:
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0x3
+ strh r0, [r1, 0x6]
+ b _0801E23A
+ .pool
+_0801E1EC:
+ movs r1, 0
+ strb r1, [r2, 0x11]
+ ldr r0, [r5]
+ strb r1, [r0, 0x12]
+ movs r0, 0x5
+ movs r1, 0x1
+ bl sub_801F5EC
+ ldr r0, [r5]
+ strb r6, [r0, 0x10]
+ ldr r1, [r5]
+ movs r0, 0x4
+ strh r0, [r1, 0x6]
+ b _0801E23A
+_0801E208:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801E23A
+ movs r0, 0x1
+ bl sub_801EBD4
+ b _0801E23A
+_0801E21C:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801E23A
+ movs r0, 0x1
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801E23A
+ movs r0, 0x1
+ bl sub_801EBD4
+_0801E23A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801E120
+
+ thumb_func_start sub_801E240
+sub_801E240: @ 801E240
+ push {r4,r5,lr}
+ ldr r1, =gUnknown_02022C84
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x6]
+ adds r2, r1, 0
+ cmp r0, 0xA
+ bls _0801E250
+ b _0801E458
+_0801E250:
+ lsls r0, 2
+ ldr r1, =_0801E264
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801E264:
+ .4byte _0801E290
+ .4byte _0801E2A8
+ .4byte _0801E2C4
+ .4byte _0801E322
+ .4byte _0801E3D4
+ .4byte _0801E424
+ .4byte _0801E458
+ .4byte _0801E458
+ .4byte _0801E378
+ .4byte _0801E338
+ .4byte _0801E35C
+_0801E290:
+ movs r0, 0x6
+ movs r1, 0
+ bl sub_801F5EC
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0x1
+ strh r0, [r1, 0x6]
+ b _0801E458
+ .pool
+_0801E2A8:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801E2B6
+ b _0801E458
+_0801E2B6:
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0x2
+ strh r0, [r1, 0x6]
+ b _0801E458
+ .pool
+_0801E2C4:
+ bl sub_801FF08
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _0801E2E6
+ cmp r1, 0
+ bgt _0801E2DE
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0801E396
+ b _0801E458
+_0801E2DE:
+ cmp r1, 0x1
+ beq _0801E2E4
+ b _0801E458
+_0801E2E4:
+ b _0801E396
+_0801E2E6:
+ ldr r4, =gUnknown_02022C84
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x13]
+ cmp r0, 0
+ bne _0801E310
+ movs r2, 0xC8
+ lsls r2, 1
+ adds r0, r1, r2
+ bl sub_801EFD0
+ movs r0, 0x7
+ movs r1, 0
+ bl sub_801F5EC
+ ldr r1, [r4]
+ movs r0, 0x9
+ strh r0, [r1, 0x6]
+ b _0801E458
+ .pool
+_0801E310:
+ movs r2, 0xC8
+ lsls r2, 1
+ adds r0, r1, r2
+ bl sub_801EF7C
+ ldr r1, [r4]
+ movs r0, 0x4
+ strh r0, [r1, 0x6]
+ b _0801E458
+_0801E322:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801E330
+ b _0801E458
+_0801E330:
+ movs r0, 0x1
+ bl sub_801EBD4
+ b _0801E458
+_0801E338:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801E346
+ b _0801E458
+_0801E346:
+ movs r0, 0x14
+ movs r1, 0
+ bl sub_801F5EC
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0xA
+ strh r0, [r1, 0x6]
+ b _0801E458
+ .pool
+_0801E35C:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801E36A
+ b _0801E458
+_0801E36A:
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0x8
+ strh r0, [r1, 0x6]
+ b _0801E458
+ .pool
+_0801E378:
+ bl sub_801FF08
+ lsls r0, 24
+ asrs r5, r0, 24
+ cmp r5, 0
+ beq _0801E3AC
+ cmp r5, 0
+ bgt _0801E392
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ beq _0801E396
+ b _0801E458
+_0801E392:
+ cmp r5, 0x1
+ bne _0801E458
+_0801E396:
+ movs r0, 0x7
+ movs r1, 0
+ bl sub_801F5EC
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0x3
+ strh r0, [r1, 0x6]
+ b _0801E458
+ .pool
+_0801E3AC:
+ bl sub_80104B0
+ ldr r4, =gUnknown_02022C84
+ ldr r0, [r4]
+ movs r1, 0xC8
+ lsls r1, 1
+ adds r0, r1
+ bl sub_801EFD0
+ ldr r0, [r4]
+ movs r1, 0x4
+ strh r1, [r0, 0x6]
+ movs r2, 0xDC
+ lsls r2, 1
+ adds r0, r2
+ strh r5, [r0]
+ b _0801E458
+ .pool
+_0801E3D4:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801E414
+ bl sub_8011A9C
+ cmp r0, 0
+ bne _0801E414
+ ldr r4, =gUnknown_02022C84
+ ldr r1, [r4]
+ movs r0, 0xC8
+ lsls r0, 1
+ adds r1, r0
+ movs r0, 0
+ movs r2, 0x28
+ bl SendBlock
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801E414
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x13]
+ cmp r0, 0
+ bne _0801E410
+ movs r0, 0x6
+ b _0801E412
+ .pool
+_0801E410:
+ movs r0, 0x5
+_0801E412:
+ strh r0, [r1, 0x6]
+_0801E414:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0801E458
+ b _0801E42C
+ .pool
+_0801E424:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0801E438
+_0801E42C:
+ movs r0, 0x9
+ bl sub_801EBD4
+ b _0801E458
+ .pool
+_0801E438:
+ ldr r3, [r2]
+ movs r1, 0xDC
+ lsls r1, 1
+ adds r2, r3, r1
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ movs r1, 0x96
+ lsls r1, 17
+ cmp r0, r1
+ bls _0801E458
+ movs r0, 0
+ strh r0, [r2]
+ movs r0, 0x4
+ strh r0, [r3, 0x6]
+_0801E458:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801E240
+
+ thumb_func_start sub_801E460
+sub_801E460: @ 801E460
+ push {r4,lr}
+ ldr r1, =gUnknown_02022C84
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x6]
+ adds r2, r1, 0
+ cmp r0, 0x7
+ bls _0801E470
+ b _0801E5BC
+_0801E470:
+ lsls r0, 2
+ ldr r1, =_0801E484
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801E484:
+ .4byte _0801E4A4
+ .4byte _0801E4C8
+ .4byte _0801E4E8
+ .4byte _0801E50C
+ .4byte _0801E540
+ .4byte _0801E560
+ .4byte _0801E584
+ .4byte _0801E5A8
+_0801E4A4:
+ ldr r0, =sub_801F2B4
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801E4B2
+ b _0801E5BC
+_0801E4B2:
+ movs r0, 0x7
+ movs r1, 0
+ bl sub_801F5EC
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ b _0801E59A
+ .pool
+_0801E4C8:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801E5BC
+ movs r0, 0x12
+ movs r1, 0
+ bl sub_801F5EC
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ b _0801E59A
+ .pool
+_0801E4E8:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801E5BC
+ ldr r4, =gUnknown_02022C84
+ ldr r0, [r4]
+ movs r1, 0xC8
+ lsls r1, 1
+ adds r0, r1
+ bl sub_801EFA8
+ ldr r1, [r4]
+ b _0801E59A
+ .pool
+_0801E50C:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801E5BC
+ bl sub_8011A9C
+ cmp r0, 0
+ bne _0801E5BC
+ ldr r4, =gUnknown_02022C84
+ ldr r1, [r4]
+ movs r0, 0xC8
+ lsls r0, 1
+ adds r1, r0
+ movs r0, 0
+ movs r2, 0x28
+ bl SendBlock
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801E5BC
+ ldr r1, [r4]
+ b _0801E59A
+ .pool
+_0801E540:
+ bl GetBlockReceivedStatus
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _0801E5BC
+ bl sub_8011A9C
+ cmp r0, 0
+ bne _0801E5BC
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ b _0801E59A
+ .pool
+_0801E560:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801E5BC
+ bl sub_8011A9C
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _0801E5BC
+ bl sub_800AC34
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ strh r4, [r1, 0xA]
+ b _0801E59A
+ .pool
+_0801E584:
+ ldr r1, [r2]
+ ldrh r0, [r1, 0xA]
+ cmp r0, 0x95
+ bhi _0801E590
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+_0801E590:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0801E5BC
+ ldr r1, [r2]
+_0801E59A:
+ ldrh r0, [r1, 0x6]
+ adds r0, 0x1
+ strh r0, [r1, 0x6]
+ b _0801E5BC
+ .pool
+_0801E5A8:
+ ldr r1, [r2]
+ ldrh r0, [r1, 0xA]
+ cmp r0, 0x95
+ bls _0801E5B8
+ movs r0, 0x9
+ bl sub_801EBD4
+ b _0801E5BC
+_0801E5B8:
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+_0801E5BC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801E460
+
+ thumb_func_start sub_801E5C4
+sub_801E5C4: @ 801E5C4
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_02022C84
+ ldr r1, [r5]
+ ldrh r0, [r1, 0x6]
+ cmp r0, 0x1
+ beq _0801E604
+ cmp r0, 0x1
+ bgt _0801E5E0
+ cmp r0, 0
+ beq _0801E5EA
+ b _0801E662
+ .pool
+_0801E5E0:
+ cmp r0, 0x2
+ beq _0801E62E
+ cmp r0, 0x3
+ beq _0801E650
+ b _0801E662
+_0801E5EA:
+ ldr r0, =sub_801F2B4
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801E662
+ movs r0, 0x7
+ movs r1, 0
+ bl sub_801F5EC
+ b _0801E640
+ .pool
+_0801E604:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801E662
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801E662
+ bl sub_8011A9C
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _0801E662
+ bl sub_800AC34
+ ldr r1, [r5]
+ strh r4, [r1, 0xA]
+ b _0801E642
+_0801E62E:
+ ldrh r0, [r1, 0xA]
+ cmp r0, 0x95
+ bhi _0801E638
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+_0801E638:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0801E662
+_0801E640:
+ ldr r1, [r5]
+_0801E642:
+ ldrh r0, [r1, 0x6]
+ adds r0, 0x1
+ strh r0, [r1, 0x6]
+ b _0801E662
+ .pool
+_0801E650:
+ ldrh r0, [r1, 0xA]
+ cmp r0, 0x95
+ bls _0801E65E
+ movs r0, 0x9
+ bl sub_801EBD4
+ b _0801E662
+_0801E65E:
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+_0801E662:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801E5C4
+
+ thumb_func_start sub_801E668
+sub_801E668: @ 801E668
+ push {r4,lr}
+ ldr r1, =gUnknown_02022C84
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x6]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bhi _0801E75C
+ lsls r0, 2
+ ldr r1, =_0801E688
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801E688:
+ .4byte _0801E69C
+ .4byte _0801E6C8
+ .4byte _0801E6F0
+ .4byte _0801E724
+ .4byte _0801E748
+_0801E69C:
+ ldr r0, =sub_801F2B4
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801E75C
+ ldr r4, =gUnknown_02022C84
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0
+ beq _0801E6BA
+ movs r0, 0x7
+ movs r1, 0
+ bl sub_801F5EC
+_0801E6BA:
+ ldr r1, [r4]
+ b _0801E73A
+ .pool
+_0801E6C8:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801E75C
+ ldr r4, =gUnknown_02022C84
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0
+ beq _0801E6E6
+ movs r0, 0x13
+ movs r1, 0
+ bl sub_801F5EC
+_0801E6E6:
+ ldr r1, [r4]
+ b _0801E73A
+ .pool
+_0801E6F0:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0801E75C
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801E75C
+ bl sub_8011A9C
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _0801E75C
+ bl sub_800AC34
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ strh r4, [r1, 0xA]
+ b _0801E73A
+ .pool
+_0801E724:
+ ldr r1, [r2]
+ ldrh r0, [r1, 0xA]
+ cmp r0, 0x95
+ bhi _0801E730
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+_0801E730:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0801E75C
+ ldr r1, [r2]
+_0801E73A:
+ ldrh r0, [r1, 0x6]
+ adds r0, 0x1
+ strh r0, [r1, 0x6]
+ b _0801E75C
+ .pool
+_0801E748:
+ ldr r1, [r2]
+ ldrh r0, [r1, 0xA]
+ cmp r0, 0x95
+ bls _0801E758
+ movs r0, 0x9
+ bl sub_801EBD4
+ b _0801E75C
+_0801E758:
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+_0801E75C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801E668
+
+ thumb_func_start sub_801E764
+sub_801E764: @ 801E764
+ push {r4,lr}
+ ldr r1, =gUnknown_02022C84
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x6]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bhi _0801E830
+ lsls r0, 2
+ ldr r1, =_0801E784
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801E784:
+ .4byte _0801E798
+ .4byte _0801E7C0
+ .4byte _0801E7F4
+ .4byte _0801E802
+ .4byte _0801E820
+_0801E798:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0801E7AC
+ movs r0, 0x1
+ bl sub_801EBD4
+ b _0801E830
+ .pool
+_0801E7AC:
+ ldr r0, [r4]
+ movs r1, 0xC8
+ lsls r1, 1
+ adds r0, r1
+ bl sub_801EF4C
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x6]
+ adds r0, 0x1
+ strh r0, [r1, 0x6]
+_0801E7C0:
+ bl sub_800A520
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0801E830
+ bl sub_8011A9C
+ cmp r0, 0
+ bne _0801E830
+ ldr r4, =gUnknown_02022C84
+ ldr r1, [r4]
+ movs r0, 0xC8
+ lsls r0, 1
+ adds r1, r0
+ movs r0, 0
+ movs r2, 0x28
+ bl SendBlock
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801E830
+ ldr r1, [r4]
+ b _0801E812
+ .pool
+_0801E7F4:
+ bl sub_801EE10
+ movs r0, 0x8
+ movs r1, 0
+ bl sub_801F5EC
+ b _0801E80E
+_0801E802:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801E830
+_0801E80E:
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+_0801E812:
+ ldrh r0, [r1, 0x6]
+ adds r0, 0x1
+ strh r0, [r1, 0x6]
+ b _0801E830
+ .pool
+_0801E820:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801E830
+ movs r0, 0x1
+ bl sub_801EBD4
+_0801E830:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801E764
+
+ thumb_func_start sub_801E838
+sub_801E838: @ 801E838
+ push {r4,lr}
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x6]
+ cmp r0, 0x6
+ bls _0801E846
+ b _0801E968
+_0801E846:
+ lsls r0, 2
+ ldr r1, =_0801E858
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801E858:
+ .4byte _0801E874
+ .4byte _0801E8A4
+ .4byte _0801E8F8
+ .4byte _0801E910
+ .4byte _0801E920
+ .4byte _0801E934
+ .4byte _0801E94C
+_0801E874:
+ bl sub_801EDC4
+ cmp r0, 0
+ beq _0801E890
+ movs r0, 0x9
+ movs r1, 0
+ bl sub_801F5EC
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0x2
+ b _0801E966
+ .pool
+_0801E890:
+ movs r0, 0xD
+ movs r1, 0
+ bl sub_801F5EC
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0x5
+ b _0801E966
+ .pool
+_0801E8A4:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E8CC
+ bl sub_801EDE0
+ movs r0, 0xB
+ movs r1, 0
+ bl sub_801F5EC
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0x3
+ b _0801E966
+ .pool
+_0801E8CC:
+ movs r4, 0x2
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E8DA
+ movs r0, 0xA
+ b _0801E95A
+_0801E8DA:
+ bl sub_801EBE4
+ cmp r0, 0
+ beq _0801E968
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_801F5EC
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ strh r4, [r0, 0x6]
+ b _0801E968
+ .pool
+_0801E8F8:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801E968
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0x1
+ b _0801E966
+ .pool
+_0801E910:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801E968
+ movs r0, 0xA
+ b _0801E95A
+_0801E920:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801E968
+ movs r0, 0x1
+ bl sub_801EBD4
+ b _0801E968
+_0801E934:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801E968
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0x6
+ b _0801E966
+ .pool
+_0801E94C:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E968
+ movs r0, 0x7
+_0801E95A:
+ movs r1, 0
+ bl sub_801F5EC
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0x4
+_0801E966:
+ strh r0, [r1, 0x6]
+_0801E968:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801E838
+
+ thumb_func_start sub_801E978
+sub_801E978: @ 801E978
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, =gUnknown_02022C84
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x6]
+ adds r4, r1, 0
+ cmp r0, 0xD
+ bls _0801E98A
+ b _0801EBC2
+_0801E98A:
+ lsls r0, 2
+ ldr r1, =_0801E99C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801E99C:
+ .4byte _0801E9D4
+ .4byte _0801E9EE
+ .4byte _0801EA14
+ .4byte _0801EA58
+ .4byte _0801EA7C
+ .4byte _0801EA98
+ .4byte _0801EADC
+ .4byte _0801EB04
+ .4byte _0801EB28
+ .4byte _0801EB40
+ .4byte _0801EB64
+ .4byte _0801EB72
+ .4byte _0801EB88
+ .4byte _0801EBA8
+_0801E9D4:
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x18]
+ cmp r0, 0
+ bne _0801E9DE
+ b _0801EB82
+_0801E9DE:
+ movs r0, 0x7
+ movs r1, 0
+ bl sub_801F5EC
+ ldr r1, [r4]
+ movs r0, 0x1
+ strh r0, [r1, 0x6]
+ b _0801EBC2
+_0801E9EE:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801E9FC
+ b _0801EBC2
+_0801E9FC:
+ movs r0, 0xE
+ movs r1, 0
+ bl sub_801F5EC
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0x2
+ strh r0, [r1, 0x6]
+ b _0801EBC2
+ .pool
+_0801EA14:
+ bl sub_801FF08
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _0801EA40
+ cmp r1, 0
+ bgt _0801EA2E
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0801EA34
+ b _0801EBC2
+_0801EA2E:
+ cmp r1, 0x1
+ beq _0801EA34
+ b _0801EBC2
+_0801EA34:
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ b _0801EB82
+ .pool
+_0801EA40:
+ movs r0, 0x7
+ movs r1, 0
+ bl sub_801F5EC
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0x3
+ strh r0, [r1, 0x6]
+ b _0801EBC2
+ .pool
+_0801EA58:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801EA66
+ b _0801EBC2
+_0801EA66:
+ movs r0, 0xF
+ movs r1, 0
+ bl sub_801F5EC
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0x4
+ strh r0, [r1, 0x6]
+ b _0801EBC2
+ .pool
+_0801EA7C:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801EA8A
+ b _0801EBC2
+_0801EA8A:
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0x5
+ strh r0, [r1, 0x6]
+ b _0801EBC2
+ .pool
+_0801EA98:
+ bl sub_801FF08
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _0801EAC4
+ cmp r1, 0
+ bgt _0801EAB2
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0801EAB8
+ b _0801EBC2
+_0801EAB2:
+ cmp r1, 0x1
+ beq _0801EAB8
+ b _0801EBC2
+_0801EAB8:
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ b _0801EB82
+ .pool
+_0801EAC4:
+ movs r0, 0x7
+ movs r1, 0
+ bl sub_801F5EC
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0x6
+ strh r0, [r1, 0x6]
+ b _0801EBC2
+ .pool
+_0801EADC:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801EBC2
+ movs r0, 0x10
+ movs r1, 0
+ bl sub_801F5EC
+ bl sub_801EE2C
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0x7
+ strh r0, [r1, 0x6]
+ b _0801EBC2
+ .pool
+_0801EB04:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801EBC2
+ bl sub_8076D5C
+ movs r0, 0
+ bl TrySavingData
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0x8
+ strh r0, [r1, 0x6]
+ b _0801EBC2
+ .pool
+_0801EB28:
+ movs r0, 0x11
+ movs r1, 0
+ bl sub_801F5EC
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0x9
+ strh r0, [r1, 0x6]
+ b _0801EBC2
+ .pool
+_0801EB40:
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801EBC2
+ movs r0, 0x37
+ bl PlaySE
+ bl sav2_gender2_inplace_and_xFE
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0xA
+ strh r0, [r1, 0x6]
+ b _0801EBC2
+ .pool
+_0801EB64:
+ ldr r1, [r4]
+ movs r0, 0
+ strb r0, [r1, 0x19]
+ ldr r1, [r4]
+ movs r0, 0xB
+ strh r0, [r1, 0x6]
+ b _0801EBC2
+_0801EB72:
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x19]
+ adds r1, 0x1
+ strb r1, [r0, 0x19]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x19]
+ cmp r0, 0x78
+ bls _0801EBC2
+_0801EB82:
+ movs r0, 0xC
+ strh r0, [r1, 0x6]
+ b _0801EBC2
+_0801EB88:
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0xD
+ strh r0, [r1, 0x6]
+ b _0801EBC2
+ .pool
+_0801EBA8:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0801EBC2
+ bl sub_801F544
+ bl sub_801DE30
+ ldr r0, =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+_0801EBC2:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801E978
+
+ thumb_func_start sub_801EBD4
+sub_801EBD4: @ 801EBD4
+ ldr r1, =gUnknown_02022C84
+ ldr r1, [r1]
+ movs r2, 0
+ strh r0, [r1, 0x4]
+ strh r2, [r1, 0x6]
+ bx lr
+ .pool
+ thumb_func_end sub_801EBD4
+
+ thumb_func_start sub_801EBE4
+sub_801EBE4: @ 801EBE4
+ push {lr}
+ ldr r0, =gMain
+ ldrh r2, [r0, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ bne _0801EC6E
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _0801EC24
+ ldr r0, =gUnknown_02022C84
+ ldr r2, [r0]
+ ldr r1, =gUnknown_082F2AA4
+ ldrb r0, [r2, 0x10]
+ adds r0, r1
+ ldrb r1, [r2, 0x12]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _0801EC20
+ adds r0, r1, 0x1
+ b _0801EC88
+ .pool
+_0801EC20:
+ strb r3, [r2, 0x12]
+ b _0801EC8A
+_0801EC24:
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x10]
+ cmp r0, 0x3
+ beq _0801EC6A
+ movs r0, 0x20
+ ands r0, r2
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ beq _0801EC52
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0
+ beq _0801EC4C
+ subs r0, 0x1
+ strb r0, [r1, 0x11]
+ b _0801EC8A
+ .pool
+_0801EC4C:
+ movs r0, 0x4
+ strb r0, [r1, 0x11]
+ b _0801EC8A
+_0801EC52:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ beq _0801EC6A
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0x3
+ bhi _0801EC66
+ adds r0, 0x1
+ strb r0, [r1, 0x11]
+ b _0801EC8A
+_0801EC66:
+ strb r3, [r1, 0x11]
+ b _0801EC8A
+_0801EC6A:
+ movs r0, 0
+ b _0801EC8C
+_0801EC6E:
+ ldr r0, =gUnknown_02022C84
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x12]
+ cmp r0, 0
+ beq _0801EC80
+ subs r0, 0x1
+ b _0801EC88
+ .pool
+_0801EC80:
+ ldr r0, =gUnknown_082F2AA4
+ ldrb r1, [r2, 0x10]
+ adds r1, r0
+ ldrb r0, [r1]
+_0801EC88:
+ strb r0, [r2, 0x12]
+_0801EC8A:
+ movs r0, 0x1
+_0801EC8C:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801EBE4
+
+ thumb_func_start sub_801EC94
+sub_801EC94: @ 801EC94
+ push {r4-r6,lr}
+ sub sp, 0x18
+ ldr r0, =gUnknown_02022C84
+ ldr r5, [r0]
+ ldrb r0, [r5, 0x10]
+ cmp r0, 0x3
+ beq _0801ECDC
+ ldr r3, =gUnknown_082F2BA8
+ ldrb r1, [r5, 0x12]
+ lsls r1, 2
+ adds r2, r0, 0
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r3
+ ldr r4, [r1]
+ ldrb r0, [r5, 0x11]
+ cmp r0, 0
+ beq _0801ECCE
+ adds r1, r0, 0
+_0801ECBE:
+ ldrb r0, [r4]
+ cmp r0, 0xF9
+ bne _0801ECC6
+ adds r4, 0x1
+_0801ECC6:
+ adds r4, 0x1
+ subs r1, 0x1
+ cmp r1, 0
+ bne _0801ECBE
+_0801ECCE:
+ movs r5, 0x1
+ b _0801ED02
+ .pool
+_0801ECDC:
+ ldrb r0, [r5, 0x12]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r0
+ adds r1, 0xB9
+ adds r1, r5, r1
+ mov r0, sp
+ bl StringCopy
+ movs r1, 0
+ strb r1, [r0]
+ movs r1, 0xFF
+ strb r1, [r0, 0x1]
+ mov r4, sp
+ mov r0, sp
+ bl StringLength_Multibyte
+ adds r5, r0, 0
+_0801ED02:
+ ldr r6, =gUnknown_02022C84
+ ldr r1, [r6]
+ ldrb r0, [r1, 0x15]
+ strb r0, [r1, 0x14]
+ cmp r4, 0
+ beq _0801ED5A
+ bl sub_801EE84
+ adds r2, r0, 0
+ subs r5, 0x1
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ beq _0801ED56
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x15]
+ cmp r0, 0xE
+ bhi _0801ED56
+ adds r3, r6, 0
+_0801ED28:
+ ldrb r0, [r4]
+ cmp r0, 0xF9
+ bne _0801ED34
+ strb r0, [r2]
+ adds r4, 0x1
+ adds r2, 0x1
+_0801ED34:
+ ldrb r0, [r4]
+ strb r0, [r2]
+ adds r4, 0x1
+ adds r2, 0x1
+ ldr r1, [r3]
+ ldrb r0, [r1, 0x15]
+ adds r0, 0x1
+ strb r0, [r1, 0x15]
+ subs r5, 0x1
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ beq _0801ED56
+ ldr r0, [r3]
+ ldrb r0, [r0, 0x15]
+ cmp r0, 0xE
+ bls _0801ED28
+_0801ED56:
+ movs r0, 0xFF
+ strb r0, [r2]
+_0801ED5A:
+ add sp, 0x18
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801EC94
+
+ thumb_func_start sub_801ED68
+sub_801ED68: @ 801ED68
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C84
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x15]
+ strb r0, [r1, 0x14]
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x15]
+ cmp r0, 0
+ beq _0801ED8A
+ bl sub_801EEA8
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x15]
+ subs r0, 0x1
+ strb r0, [r1, 0x15]
+_0801ED8A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801ED68
+
+ thumb_func_start sub_801ED94
+sub_801ED94: @ 801ED94
+ push {lr}
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x15]
+ subs r0, 0x1
+ strb r0, [r1, 0x14]
+ bl sub_801EEA8
+ adds r2, r0, 0
+ ldrb r0, [r2]
+ cmp r0, 0xF9
+ beq _0801EDB8
+ ldr r1, =gUnknown_082F2AA8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801EDB8
+ strb r0, [r2]
+_0801EDB8:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801ED94
+
+ thumb_func_start sub_801EDC4
+sub_801EDC4: @ 801EDC4
+ push {lr}
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x15]
+ cmp r0, 0
+ bne _0801EDD8
+ movs r0, 0
+ b _0801EDDA
+ .pool
+_0801EDD8:
+ movs r0, 0x1
+_0801EDDA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801EDC4
+
+ thumb_func_start sub_801EDE0
+sub_801EDE0: @ 801EDE0
+ push {r4,lr}
+ bl sub_801F114
+ adds r1, r0, 0
+ ldr r4, =gUnknown_02022C84
+ ldr r0, [r4]
+ ldrb r3, [r0, 0x12]
+ lsls r2, r3, 2
+ adds r2, r3
+ lsls r2, 2
+ adds r2, r3
+ adds r2, 0xB9
+ adds r0, r2
+ bl StringCopy
+ ldr r1, [r4]
+ movs r0, 0x1
+ strb r0, [r1, 0x18]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801EDE0
+
+ thumb_func_start sub_801EE10
+sub_801EE10: @ 801EE10
+ ldr r1, =gUnknown_02022C84
+ ldr r2, [r1]
+ movs r0, 0xFF
+ strb r0, [r2, 0x1A]
+ ldr r2, [r1]
+ movs r3, 0
+ movs r0, 0xF
+ strb r0, [r2, 0x14]
+ ldr r0, [r1]
+ strb r3, [r0, 0x15]
+ bx lr
+ .pool
+ thumb_func_end sub_801EE10
+
+ thumb_func_start sub_801EE2C
+sub_801EE2C: @ 801EE2C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, =gSaveBlock1Ptr
+ mov r8, r0
+ ldr r7, =gUnknown_02022C84
+ movs r6, 0xB9
+ ldr r5, =0x00003c88
+ movs r4, 0x9
+_0801EE3E:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r5
+ ldr r1, [r7]
+ adds r1, r6
+ bl StringCopy
+ adds r6, 0x15
+ adds r5, 0x15
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0801EE3E
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801EE2C
+
+ thumb_func_start sub_801EE6C
+sub_801EE6C: @ 801EE6C
+ ldr r2, =gUnknown_02022C84
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r0
+ adds r1, 0xB9
+ ldr r0, [r2]
+ adds r0, r1
+ bx lr
+ .pool
+ thumb_func_end sub_801EE6C
+
+ thumb_func_start sub_801EE84
+sub_801EE84: @ 801EE84
+ push {lr}
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0x1A
+ ldrb r0, [r0, 0x1A]
+ cmp r0, 0xFF
+ beq _0801EE9C
+_0801EE94:
+ adds r1, 0x1
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _0801EE94
+_0801EE9C:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801EE84
+
+ thumb_func_start sub_801EEA8
+sub_801EEA8: @ 801EEA8
+ push {lr}
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ adds r2, r0, 0
+ adds r2, 0x1A
+ adds r1, r2, 0
+ ldrb r0, [r0, 0x1A]
+ cmp r0, 0xFF
+ beq _0801EECC
+_0801EEBA:
+ adds r2, r1, 0
+ ldrb r0, [r2]
+ cmp r0, 0xF9
+ bne _0801EEC4
+ adds r1, r2, 0x1
+_0801EEC4:
+ adds r1, 0x1
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _0801EEBA
+_0801EECC:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801EEA8
+
+ thumb_func_start sub_801EED8
+sub_801EED8: @ 801EED8
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C84
+ ldr r0, [r4]
+ adds r0, 0x1A
+ bl StringLength_Multibyte
+ adds r2, r0, 0
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0x1A
+ movs r4, 0
+ cmp r2, 0xA
+ bls _0801EF0C
+ subs r2, 0xA
+ movs r3, 0
+ cmp r4, r2
+ bcs _0801EF0C
+_0801EEFA:
+ ldrb r0, [r1]
+ cmp r0, 0xF9
+ bne _0801EF02
+ adds r1, 0x1
+_0801EF02:
+ adds r1, 0x1
+ adds r4, 0x1
+ adds r3, 0x1
+ cmp r3, r2
+ bcc _0801EEFA
+_0801EF0C:
+ lsls r0, r4, 16
+ lsrs r0, 16
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801EED8
+
+ thumb_func_start sub_801EF1C
+sub_801EF1C: @ 801EF1C
+ movs r1, 0
+ strb r1, [r0]
+ bx lr
+ thumb_func_end sub_801EF1C
+
+ thumb_func_start sub_801EF24
+sub_801EF24: @ 801EF24
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x2
+ strb r0, [r4]
+ adds r0, r4, 0x1
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ bl StringCopy
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x13]
+ strb r0, [r4, 0x9]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801EF24
+
+ thumb_func_start sub_801EF4C
+sub_801EF4C: @ 801EF4C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ strb r0, [r4]
+ adds r0, r4, 0x1
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ bl StringCopy
+ adds r4, 0x9
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ adds r1, 0x1A
+ adds r0, r4, 0
+ bl StringCopy
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801EF4C
+
+ thumb_func_start sub_801EF7C
+sub_801EF7C: @ 801EF7C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x3
+ strb r0, [r4]
+ adds r0, r4, 0x1
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ bl StringCopy
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x13]
+ strb r0, [r4, 0x9]
+ bl sub_8011A50
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801EF7C
+
+ thumb_func_start sub_801EFA8
+sub_801EFA8: @ 801EFA8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x4
+ strb r0, [r4]
+ adds r0, r4, 0x1
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ bl StringCopy
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x13]
+ strb r0, [r4, 0x9]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801EFA8
+
+ thumb_func_start sub_801EFD0
+sub_801EFD0: @ 801EFD0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x5
+ strb r0, [r4]
+ adds r0, r4, 0x1
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ bl StringCopy
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x13]
+ strb r0, [r4, 0x9]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801EFD0
+
+ thumb_func_start sub_801EFF8
+sub_801EFF8: @ 801EFF8
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ ldrb r0, [r5]
+ adds r1, r0, 0
+ adds r4, r5, 0x1
+ adds r5, r4, 0
+ adds r5, 0x8
+ cmp r0, 0x2
+ beq _0801F020
+ cmp r0, 0x2
+ bgt _0801F016
+ cmp r0, 0x1
+ beq _0801F044
+ b _0801F0A8
+_0801F016:
+ cmp r1, 0x3
+ beq _0801F07A
+ cmp r1, 0x5
+ beq _0801F06E
+ b _0801F0A8
+_0801F020:
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x13]
+ ldrb r1, [r4, 0x8]
+ cmp r0, r1
+ beq _0801F0A8
+ bl UnkTextUtil_Reset
+ movs r0, 0
+ adds r1, r4, 0
+ bl UnkTextUtil_SetPtrI
+ ldr r1, =gText_F700JoinedChat
+ b _0801F094
+ .pool
+_0801F044:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl StringCopy
+ movs r1, 0xFC
+ strb r1, [r0]
+ adds r0, 0x1
+ movs r1, 0x13
+ strb r1, [r0]
+ adds r0, 0x1
+ movs r1, 0x2A
+ strb r1, [r0]
+ adds r0, 0x1
+ movs r1, 0xF0
+ strb r1, [r0]
+ adds r0, 0x1
+ adds r1, r5, 0
+ bl StringCopy
+ movs r0, 0x1
+ b _0801F0AA
+_0801F06E:
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ adds r0, 0x79
+ adds r1, r4, 0
+ bl StringCopy
+_0801F07A:
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x13]
+ ldrb r5, [r5]
+ cmp r0, r5
+ beq _0801F0A8
+ bl UnkTextUtil_Reset
+ movs r0, 0
+ adds r1, r4, 0
+ bl UnkTextUtil_SetPtrI
+ ldr r1, =gText_F700LeftChat
+_0801F094:
+ adds r0, r6, 0
+ bl UnkTextUtil_StringExpandPlaceholders
+ movs r0, 0x1
+ b _0801F0AA
+ .pool
+_0801F0A8:
+ movs r0, 0
+_0801F0AA:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801EFF8
+
+ thumb_func_start sub_801F0B0
+sub_801F0B0: @ 801F0B0
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x10]
+ bx lr
+ .pool
+ thumb_func_end sub_801F0B0
+
+ thumb_func_start sub_801F0BC
+sub_801F0BC: @ 801F0BC
+ ldr r2, =gUnknown_02022C84
+ ldr r3, [r2]
+ ldrb r2, [r3, 0x11]
+ strb r2, [r0]
+ ldrb r0, [r3, 0x12]
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_801F0BC
+
+ thumb_func_start sub_801F0D0
+sub_801F0D0: @ 801F0D0
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ adds r0, 0x1A
+ bx lr
+ .pool
+ thumb_func_end sub_801F0D0
+
+ thumb_func_start sub_801F0DC
+sub_801F0DC: @ 801F0DC
+ push {lr}
+ bl sub_801F0D0
+ bl StringLength_Multibyte
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801F0DC
+
+ thumb_func_start sub_801F0EC
+sub_801F0EC: @ 801F0EC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ ldrb r3, [r0, 0x15]
+ ldrb r2, [r0, 0x14]
+ subs r0, r3, r2
+ cmp r0, 0
+ bge _0801F108
+ negs r0, r0
+ str r3, [r4]
+ b _0801F10A
+ .pool
+_0801F108:
+ str r2, [r4]
+_0801F10A:
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801F0EC
+
+ thumb_func_start sub_801F114
+sub_801F114: @ 801F114
+ push {lr}
+ bl sub_801EED8
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0x1A
+ cmp r2, 0
+ beq _0801F13A
+_0801F12A:
+ ldrb r0, [r1]
+ cmp r0, 0xF9
+ bne _0801F132
+ adds r1, 0x1
+_0801F132:
+ adds r1, 0x1
+ subs r2, 0x1
+ cmp r2, 0
+ bne _0801F12A
+_0801F13A:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801F114
+
+ thumb_func_start sub_801F144
+sub_801F144: @ 801F144
+ push {r4,lr}
+ bl sub_801EED8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0x1A
+ movs r2, 0
+ movs r3, 0
+ cmp r2, r4
+ bcs _0801F174
+_0801F15E:
+ ldrb r0, [r1]
+ cmp r0, 0xF9
+ bne _0801F166
+ adds r1, 0x1
+_0801F166:
+ adds r1, 0x1
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ adds r3, 0x1
+ cmp r3, r4
+ bcc _0801F15E
+_0801F174:
+ adds r0, r2, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801F144
+
+ thumb_func_start sub_801F180
+sub_801F180: @ 801F180
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ adds r0, 0x39
+ bx lr
+ .pool
+ thumb_func_end sub_801F180
+
+ thumb_func_start sub_801F18C
+sub_801F18C: @ 801F18C
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x16]
+ bx lr
+ .pool
+ thumb_func_end sub_801F18C
+
+ thumb_func_start sub_801F198
+sub_801F198: @ 801F198
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x15]
+ bx lr
+ .pool
+ thumb_func_end sub_801F198
+
+ thumb_func_start sub_801F1A4
+sub_801F1A4: @ 801F1A4
+ push {lr}
+ bl sub_801EEA8
+ ldrb r1, [r0]
+ cmp r1, 0xFF
+ bhi _0801F1BE
+ ldr r0, =gUnknown_082F2AA8
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, r1
+ beq _0801F1BE
+ cmp r0, 0
+ bne _0801F1C8
+_0801F1BE:
+ movs r0, 0x3
+ b _0801F1CA
+ .pool
+_0801F1C8:
+ movs r0, 0
+_0801F1CA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801F1A4
+
+ thumb_func_start sub_801F1D0
+sub_801F1D0: @ 801F1D0
+ ldr r0, =gUnknown_02022C84
+ ldr r0, [r0]
+ adds r0, 0x79
+ bx lr
+ .pool
+ thumb_func_end sub_801F1D0
+
+ thumb_func_start copy_strings_to_sav1
+copy_strings_to_sav1: @ 801F1DC
+ push {r4,lr}
+ ldr r4, =gSaveBlock1Ptr
+ ldr r0, [r4]
+ ldr r1, =0x00003c88
+ adds r0, r1
+ ldr r1, =gText_Hello
+ bl StringCopy
+ ldr r0, [r4]
+ ldr r1, =0x00003c9d
+ adds r0, r1
+ ldr r1, =gText_Pokemon2
+ bl StringCopy
+ ldr r0, [r4]
+ ldr r1, =0x00003cb2
+ adds r0, r1
+ ldr r1, =gText_Trade
+ bl StringCopy
+ ldr r0, [r4]
+ ldr r1, =0x00003cc7
+ adds r0, r1
+ ldr r1, =gText_Battle
+ bl StringCopy
+ ldr r0, [r4]
+ ldr r1, =0x00003cdc
+ adds r0, r1
+ ldr r1, =gText_Lets
+ bl StringCopy
+ ldr r0, [r4]
+ ldr r1, =0x00003cf1
+ adds r0, r1
+ ldr r1, =gText_Ok
+ bl StringCopy
+ ldr r0, [r4]
+ ldr r1, =0x00003d06
+ adds r0, r1
+ ldr r1, =gText_Sorry
+ bl StringCopy
+ ldr r0, [r4]
+ ldr r1, =0x00003d1b
+ adds r0, r1
+ ldr r1, =gText_YayUnkF9F9
+ bl StringCopy
+ ldr r0, [r4]
+ ldr r1, =0x00003d30
+ adds r0, r1
+ ldr r1, =gText_ThankYou
+ bl StringCopy
+ ldr r0, [r4]
+ ldr r1, =0x00003d45
+ adds r0, r1
+ ldr r1, =gText_ByeBye
+ bl StringCopy
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end copy_strings_to_sav1
+
+ thumb_func_start sub_801F2B4
+sub_801F2B4: @ 801F2B4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ bls _0801F2CE
+ b _0801F4C4
+_0801F2CE:
+ lsls r0, 2
+ ldr r1, =_0801F2E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801F2E0:
+ .4byte _0801F300
+ .4byte _0801F30E
+ .4byte _0801F4A8
+ .4byte _0801F35C
+ .4byte _0801F448
+ .4byte _0801F480
+ .4byte _0801F494
+ .4byte _0801F438
+_0801F300:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0801F30A
+ b _0801F49C
+_0801F30A:
+ movs r0, 0x1
+ strh r0, [r4]
+_0801F30E:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ strh r0, [r4, 0x8]
+ ldr r3, =gUnknown_02022C84
+ ldr r0, [r3]
+ ldrb r1, [r0, 0xD]
+ movs r5, 0x8
+ ldrsh r0, [r4, r5]
+ cmp r1, r0
+ beq _0801F33C
+ movs r0, 0x2
+ strh r0, [r4]
+ ldr r0, [r3]
+ strb r2, [r0, 0xD]
+ b _0801F4C4
+ .pool
+_0801F33C:
+ bl GetBlockReceivedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x6]
+ cmp r0, 0
+ bne _0801F354
+ bl sub_8011A9C
+ cmp r0, 0
+ beq _0801F354
+ b _0801F4C4
+_0801F354:
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ movs r0, 0x3
+ strh r0, [r4]
+_0801F35C:
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bgt _0801F396
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ movs r3, 0x2
+ ldrsh r1, [r4, r3]
+ asrs r0, r1
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801F396
+ movs r2, 0x1
+_0801F378:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _0801F396
+ movs r5, 0x6
+ ldrsh r0, [r4, r5]
+ movs r3, 0x2
+ ldrsh r1, [r4, r3]
+ asrs r0, r1
+ ands r0, r2
+ cmp r0, 0
+ beq _0801F378
+_0801F396:
+ ldrh r1, [r4, 0x2]
+ movs r5, 0x2
+ ldrsh r0, [r4, r5]
+ cmp r0, 0x5
+ bne _0801F3A2
+ b _0801F4C0
+_0801F3A2:
+ strh r1, [r4, 0x4]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl ResetBlockReceivedFlag
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ lsls r0, 8
+ ldr r1, =gBlockRecvBuffer
+ adds r0, r1
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x4
+ bhi _0801F3E4
+ lsls r0, 2
+ ldr r1, =_0801F3D0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801F3D0:
+ .4byte _0801F3E4
+ .4byte _0801F3E8
+ .4byte _0801F3EC
+ .4byte _0801F3F0
+ .4byte _0801F3F4
+_0801F3E4:
+ movs r0, 0x3
+ b _0801F3F6
+_0801F3E8:
+ movs r0, 0x3
+ b _0801F3F6
+_0801F3EC:
+ movs r0, 0x4
+ b _0801F3F6
+_0801F3F0:
+ movs r0, 0x5
+ b _0801F3F6
+_0801F3F4:
+ movs r0, 0x6
+_0801F3F6:
+ strh r0, [r4, 0xA]
+ ldr r5, =gUnknown_02022C84
+ ldr r0, [r5]
+ adds r0, 0x39
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ lsls r1, 8
+ ldr r2, =gBlockRecvBuffer
+ adds r1, r2
+ bl sub_801EFF8
+ cmp r0, 0
+ beq _0801F42C
+ ldr r0, [r5]
+ ldrh r1, [r4, 0x2]
+ strb r1, [r0, 0x16]
+ movs r0, 0xC
+ movs r1, 0x2
+ bl sub_801F5EC
+ movs r0, 0x7
+ b _0801F42E
+ .pool
+_0801F42C:
+ ldrh r0, [r4, 0xA]
+_0801F42E:
+ strh r0, [r4]
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ b _0801F4C4
+_0801F438:
+ movs r0, 0x2
+ bl sub_801F644
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801F4C4
+ ldrh r0, [r4, 0xA]
+ b _0801F4C2
+_0801F448:
+ ldr r6, =gUnknown_02022C84
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0
+ bne _0801F47C
+ movs r3, 0x4
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _0801F47C
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0801F474
+ bl sub_80104B0
+ ldr r1, [r6]
+ movs r0, 0x1
+ b _0801F49A
+ .pool
+_0801F474:
+ movs r5, 0x4
+ ldrsh r0, [r4, r5]
+ bl sub_8011DE0
+_0801F47C:
+ movs r0, 0x3
+ b _0801F4C2
+_0801F480:
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x13]
+ cmp r0, 0
+ beq _0801F49C
+ movs r0, 0x2
+ b _0801F49A
+ .pool
+_0801F494:
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ movs r0, 0x3
+_0801F49A:
+ strb r0, [r1, 0x17]
+_0801F49C:
+ adds r0, r5, 0
+ bl DestroyTask
+ b _0801F4C4
+ .pool
+_0801F4A8:
+ bl sub_8011A9C
+ cmp r0, 0
+ bne _0801F4C4
+ ldr r0, =gUnknown_02022C84
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x13]
+ cmp r0, 0
+ bne _0801F4C0
+ ldrb r0, [r1, 0xD]
+ bl sub_80110B8
+_0801F4C0:
+ movs r0, 0x1
+_0801F4C2:
+ strh r0, [r4]
+_0801F4C4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801F2B4
+
+ thumb_func_start sub_801F4D0
+sub_801F4D0: @ 801F4D0
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C88
+ ldr r0, =0x00002168
+ bl Alloc
+ str r0, [r4]
+ cmp r0, 0
+ beq _0801F52C
+ bl sub_8020890
+ cmp r0, 0
+ beq _0801F52C
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_082F2C60
+ movs r0, 0
+ movs r2, 0x4
+ bl InitBgsFromTemplates
+ ldr r0, =gUnknown_082F2C70
+ bl InitWindows
+ bl reset_temp_tile_data_buffers
+ bl sub_8020770
+ ldr r0, [r4]
+ bl sub_801F574
+ bl sub_801F580
+ movs r0, 0
+ movs r1, 0
+ bl sub_801F5EC
+ movs r0, 0x1
+ b _0801F52E
+ .pool
+_0801F52C:
+ movs r0, 0
+_0801F52E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801F4D0
+
+ thumb_func_start sub_801F534
+sub_801F534: @ 801F534
+ push {lr}
+ movs r0, 0
+ bl sub_801F644
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801F534
+
+ thumb_func_start sub_801F544
+sub_801F544: @ 801F544
+ push {r4,lr}
+ bl sub_80208D0
+ ldr r4, =gUnknown_02022C88
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0801F55A
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+_0801F55A:
+ bl FreeAllWindowBuffers
+ ldr r1, =gScanlineEffect
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801F544
+
+ thumb_func_start sub_801F574
+sub_801F574: @ 801F574
+ movs r2, 0
+ movs r1, 0xFF
+ strh r1, [r0, 0x18]
+ strh r1, [r0, 0x1E]
+ strh r2, [r0, 0x1A]
+ bx lr
+ thumb_func_end sub_801F574
+
+ thumb_func_start sub_801F580
+sub_801F580: @ 801F580
+ push {r4,r5,lr}
+ ldr r1, =gUnknown_02022C88
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _0801F5A8
+ movs r2, 0
+ adds r4, r1, 0
+ ldr r5, =sub_801FDD8
+ movs r3, 0
+_0801F592:
+ ldr r0, [r4]
+ lsls r1, r2, 3
+ adds r0, r1
+ str r5, [r0]
+ strb r3, [r0, 0x4]
+ ldr r0, [r4]
+ adds r0, r1
+ strb r3, [r0, 0x5]
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _0801F592
+_0801F5A8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801F580
+
+ thumb_func_start sub_801F5B8
+sub_801F5B8: @ 801F5B8
+ push {r4-r6,lr}
+ ldr r1, =gUnknown_02022C88
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _0801F5E0
+ movs r5, 0
+ adds r6, r1, 0
+_0801F5C6:
+ ldr r1, [r6]
+ lsls r4, r5, 3
+ adds r1, r4
+ adds r0, r1, 0x5
+ ldr r1, [r1]
+ bl _call_via_r1
+ ldr r1, [r6]
+ adds r1, r4
+ strb r0, [r1, 0x4]
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _0801F5C6
+_0801F5E0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801F5B8
+
+ thumb_func_start sub_801F5EC
+sub_801F5EC: @ 801F5EC
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 24
+ ldr r3, =gUnknown_02022C88
+ ldr r0, [r3]
+ lsrs r1, 21
+ adds r0, r1
+ ldr r2, =sub_801FDD8
+ str r2, [r0]
+ movs r4, 0
+ adds r5, r3, 0
+ adds r3, r1, 0
+ mov r12, r4
+ ldr r1, =gUnknown_082F2C98
+ movs r7, 0x1
+ adds r2, r1, 0x4
+_0801F60E:
+ ldrh r0, [r1]
+ cmp r0, r6
+ bne _0801F634
+ ldr r1, [r5]
+ adds r1, r3
+ ldr r0, [r2]
+ str r0, [r1]
+ strb r7, [r1, 0x4]
+ ldr r0, [r5]
+ adds r0, r3
+ mov r1, r12
+ strb r1, [r0, 0x5]
+ b _0801F63E
+ .pool
+_0801F634:
+ adds r1, 0x8
+ adds r2, 0x8
+ adds r4, 0x1
+ cmp r4, 0x14
+ bls _0801F60E
+_0801F63E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801F5EC
+
+ thumb_func_start sub_801F644
+sub_801F644: @ 801F644
+ lsls r0, 24
+ ldr r1, =gUnknown_02022C88
+ ldr r1, [r1]
+ lsrs r0, 21
+ adds r1, r0
+ ldrb r0, [r1, 0x4]
+ bx lr
+ .pool
+ thumb_func_end sub_801F644
+
+ thumb_func_start sub_801F658
+sub_801F658: @ 801F658
+ push {r4,lr}
+ adds r4, r0, 0
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0801F6EE
+ ldrb r0, [r4]
+ cmp r0, 0x6
+ bhi _0801F6E4
+ lsls r0, 2
+ ldr r1, =_0801F67C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801F67C:
+ .4byte _0801F698
+ .4byte _0801F6A2
+ .4byte _0801F6A8
+ .4byte _0801F6AE
+ .4byte _0801F6B4
+ .4byte _0801F6BA
+ .4byte _0801F6CC
+_0801F698:
+ bl sub_8020480
+ bl sub_8020538
+ b _0801F6E8
+_0801F6A2:
+ bl sub_8020584
+ b _0801F6E8
+_0801F6A8:
+ bl sub_80205B4
+ b _0801F6E8
+_0801F6AE:
+ bl task_tutorial_story_unknown
+ b _0801F6E8
+_0801F6B4:
+ bl sub_8020680
+ b _0801F6E8
+_0801F6BA:
+ bl sub_80206A4
+ bl sub_80206D0
+ bl sub_8020740
+ bl sub_80206E8
+ b _0801F6E8
+_0801F6CC:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801F6E8
+ bl sub_80208E8
+ bl sub_8020A68
+ bl sub_8020B20
+ b _0801F6E8
+_0801F6E4:
+ movs r0, 0
+ b _0801F6F0
+_0801F6E8:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_0801F6EE:
+ movs r0, 0x1
+_0801F6F0:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801F658
+
+ thumb_func_start sub_801F6F8
+sub_801F6F8: @ 801F6F8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0801F708
+ cmp r0, 0x1
+ beq _0801F716
+ b _0801F720
+_0801F708:
+ bl sub_80203B0
+ movs r0, 0x3
+ movs r1, 0x3
+ bl CopyWindowToVram
+ b _0801F720
+_0801F716:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0801F728
+_0801F720:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r0, 0x1
+_0801F728:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801F6F8
+
+ thumb_func_start sub_801F730
+sub_801F730: @ 801F730
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0801F740
+ cmp r0, 0x1
+ beq _0801F74E
+ b _0801F758
+_0801F740:
+ bl sub_802040C
+ movs r0, 0x3
+ movs r1, 0x3
+ bl CopyWindowToVram
+ b _0801F758
+_0801F74E:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0801F760
+_0801F758:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r0, 0x1
+_0801F760:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801F730
+
+ thumb_func_start sub_801F768
+sub_801F768: @ 801F768
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ beq _0801F79E
+ cmp r0, 0x1
+ bgt _0801F77C
+ cmp r0, 0
+ beq _0801F782
+ b _0801F7C4
+_0801F77C:
+ cmp r0, 0x2
+ beq _0801F7AA
+ b _0801F7C4
+_0801F782:
+ movs r0, 0x1
+ bl sub_802091C
+ bl sub_8020320
+ cmp r0, 0
+ bne _0801F7CA
+ bl sub_80201A4
+ movs r0, 0x2
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _0801F7C4
+_0801F79E:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801F7C4
+ b _0801F7CA
+_0801F7AA:
+ bl sub_8020368
+ cmp r0, 0
+ bne _0801F7CA
+ bl sub_802093C
+ movs r0, 0
+ bl sub_802091C
+ bl sub_8020B80
+ movs r0, 0
+ b _0801F7CC
+_0801F7C4:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_0801F7CA:
+ movs r0, 0x1
+_0801F7CC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801F768
+
+ thumb_func_start sub_801F7D4
+sub_801F7D4: @ 801F7D4
+ push {lr}
+ bl sub_802093C
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801F7D4
+
+ thumb_func_start sub_801F7E0
+sub_801F7E0: @ 801F7E0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0801F7F0
+ cmp r0, 0x1
+ beq _0801F814
+ b _0801F81E
+_0801F7F0:
+ movs r0, 0
+ movs r1, 0
+ bl sub_801FF18
+ movs r0, 0x17
+ movs r1, 0xB
+ movs r2, 0x1
+ bl sub_801FDDC
+ ldr r0, =gUnknown_02022C88
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1E]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ b _0801F81E
+ .pool
+_0801F814:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0801F826
+_0801F81E:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r0, 0x1
+_0801F826:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801F7E0
+
+ thumb_func_start sub_801F82C
+sub_801F82C: @ 801F82C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0801F83C
+ cmp r0, 0x1
+ beq _0801F84C
+ b _0801F862
+_0801F83C:
+ bl sub_8020094
+ bl sub_801FEBC
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ b _0801F862
+_0801F84C:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801F868
+ bl sub_80200C8
+ bl sub_801FEE4
+ movs r0, 0
+ b _0801F86A
+_0801F862:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_0801F868:
+ movs r0, 0x1
+_0801F86A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801F82C
+
+ thumb_func_start sub_801F870
+sub_801F870: @ 801F870
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0801F882
+ cmp r0, 0x1
+ beq _0801F8BA
+ b _0801F8CC
+_0801F882:
+ add r1, sp, 0x8
+ add r0, sp, 0x4
+ bl sub_801F0EC
+ ldr r0, [sp, 0x4]
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [sp, 0x8]
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0
+ bl sub_80200EC
+ bl sub_801F0D0
+ adds r1, r0, 0
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0x3
+ movs r3, 0x1
+ bl sub_8020118
+ movs r0, 0x1
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _0801F8CC
+_0801F8BA:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801F8D2
+ bl sub_8020B80
+ movs r0, 0
+ b _0801F8D4
+_0801F8CC:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_0801F8D2:
+ movs r0, 0x1
+_0801F8D4:
+ add sp, 0xC
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801F870
+
+ thumb_func_start sub_801F8DC
+sub_801F8DC: @ 801F8DC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldrb r0, [r6]
+ cmp r0, 0x1
+ beq _0801F938
+ cmp r0, 0x1
+ bgt _0801F8F2
+ cmp r0, 0
+ beq _0801F8FC
+ b _0801F972
+_0801F8F2:
+ cmp r0, 0x2
+ beq _0801F95C
+ cmp r0, 0x3
+ beq _0801F96E
+ b _0801F972
+_0801F8FC:
+ bl sub_801F144
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl sub_801F114
+ adds r5, r0, 0
+ bl StringLength_Multibyte
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0x66
+ bl sub_80200EC
+ movs r0, 0x5
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0x4
+ bl sub_8020118
+ movs r0, 0x1
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _0801F972
+_0801F938:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801F978
+ movs r0, 0x1
+ movs r1, 0x10
+ bl sub_801FF18
+ ldr r0, =gUnknown_02022C88
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1E]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ b _0801F972
+ .pool
+_0801F95C:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801F978
+ movs r0, 0x1
+ bl sub_80209AC
+ b _0801F972
+_0801F96E:
+ movs r0, 0
+ b _0801F97A
+_0801F972:
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+_0801F978:
+ movs r0, 0x1
+_0801F97A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801F8DC
+
+ thumb_func_start sub_801F984
+sub_801F984: @ 801F984
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldrb r0, [r6]
+ cmp r0, 0x1
+ beq _0801F9E0
+ cmp r0, 0x1
+ bgt _0801F99A
+ cmp r0, 0
+ beq _0801F9A4
+ b _0801FA1A
+_0801F99A:
+ cmp r0, 0x2
+ beq _0801FA00
+ cmp r0, 0x3
+ beq _0801FA16
+ b _0801FA1A
+_0801F9A4:
+ bl sub_801F144
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl sub_801F114
+ adds r5, r0, 0
+ bl StringLength_Multibyte
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_80200EC
+ movs r0, 0x2
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x3
+ movs r3, 0x1
+ bl sub_8020118
+ movs r0, 0x1
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _0801FA1A
+_0801F9E0:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801FA20
+ bl sub_8020094
+ ldr r0, =gUnknown_02022C88
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1E]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ b _0801FA1A
+ .pool
+_0801FA00:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801FA20
+ movs r0, 0
+ bl sub_80209AC
+ bl sub_80200C8
+ b _0801FA1A
+_0801FA16:
+ movs r0, 0
+ b _0801FA22
+_0801FA1A:
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+_0801FA20:
+ movs r0, 0x1
+_0801FA22:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801F984
+
+ thumb_func_start sub_801FA2C
+sub_801FA2C: @ 801FA2C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0801FA3C
+ cmp r0, 0x1
+ beq _0801FA50
+ b _0801FA5E
+_0801FA3C:
+ bl sub_80201A4
+ movs r0, 0x2
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0801FA5E
+_0801FA50:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801FA5E
+ movs r0, 0
+ b _0801FA60
+_0801FA5E:
+ movs r0, 0x1
+_0801FA60:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801FA2C
+
+ thumb_func_start sub_801FA68
+sub_801FA68: @ 801FA68
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldrb r0, [r6]
+ cmp r0, 0x4
+ bhi _0801FB3A
+ lsls r0, 2
+ ldr r1, =_0801FA80
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801FA80:
+ .4byte _0801FA94
+ .4byte _0801FAC0
+ .4byte _0801FAF0
+ .4byte _0801FB14
+ .4byte _0801FADE
+_0801FA94:
+ ldr r0, =gUnknown_02022C88
+ ldr r0, [r0]
+ ldrh r5, [r0, 0x1A]
+ bl sub_801F180
+ adds r4, r0, 0
+ bl sub_801F18C
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8020420
+ movs r0, 0
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _0801FB34
+ .pool
+_0801FAC0:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _0801FB3A
+ ldr r0, =gUnknown_02022C88
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x1A]
+ cmp r0, 0x8
+ bhi _0801FAE8
+ adds r0, 0x1
+ strh r0, [r1, 0x1A]
+ movs r0, 0x4
+ strb r0, [r6]
+_0801FADE:
+ movs r0, 0
+ b _0801FB3C
+ .pool
+_0801FAE8:
+ strh r2, [r1, 0x1C]
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+_0801FAF0:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x5
+ movs r3, 0x11
+ bl ScrollWindow
+ movs r0, 0
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldr r0, =gUnknown_02022C88
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ strh r0, [r1, 0x1C]
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+_0801FB14:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801FB3A
+ ldr r0, =gUnknown_02022C88
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1C]
+ cmp r0, 0x2
+ bhi _0801FB34
+ ldrb r0, [r6]
+ subs r0, 0x1
+ b _0801FB38
+ .pool
+_0801FB34:
+ ldrb r0, [r6]
+ adds r0, 0x1
+_0801FB38:
+ strb r0, [r6]
+_0801FB3A:
+ movs r0, 0x1
+_0801FB3C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801FA68
+
+ thumb_func_start sub_801FB44
+sub_801FB44: @ 801FB44
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0801FB54
+ cmp r0, 0x1
+ beq _0801FB60
+ b _0801FB66
+_0801FB54:
+ bl sub_80209E0
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0801FB66
+_0801FB60:
+ bl sub_8020A1C
+ b _0801FB68
+_0801FB66:
+ movs r0, 0x1
+_0801FB68:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801FB44
+
+ thumb_func_start sub_801FB70
+sub_801FB70: @ 801FB70
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0801FB80
+ cmp r0, 0x1
+ beq _0801FBA0
+ b _0801FBAA
+_0801FB80:
+ movs r0, 0x3
+ movs r1, 0x10
+ bl sub_801FF18
+ ldr r0, =gUnknown_02022C88
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1E]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0801FBAA
+ .pool
+_0801FBA0:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0801FBAC
+_0801FBAA:
+ movs r0, 0x1
+_0801FBAC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801FB70
+
+ thumb_func_start sub_801FBB4
+sub_801FBB4: @ 801FBB4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0801FBC4
+ cmp r0, 0x1
+ beq _0801FBE4
+ b _0801FBEE
+_0801FBC4:
+ movs r0, 0x4
+ movs r1, 0
+ bl sub_801FF18
+ ldr r0, =gUnknown_02022C88
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1E]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0801FBEE
+ .pool
+_0801FBE4:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0801FBF0
+_0801FBEE:
+ movs r0, 0x1
+_0801FBF0:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801FBB4
+
+ thumb_func_start sub_801FBF8
+sub_801FBF8: @ 801FBF8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0801FC08
+ cmp r0, 0x1
+ beq _0801FC38
+ b _0801FC42
+_0801FC08:
+ bl UnkTextUtil_Reset
+ bl sub_801F1D0
+ adds r1, r0, 0
+ movs r0, 0
+ bl UnkTextUtil_SetPtrI
+ movs r0, 0x5
+ movs r1, 0
+ bl sub_801FF18
+ ldr r0, =gUnknown_02022C88
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1E]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0801FC42
+ .pool
+_0801FC38:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0801FC44
+_0801FC42:
+ movs r0, 0x1
+_0801FC44:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801FBF8
+
+ thumb_func_start sub_801FC4C
+sub_801FC4C: @ 801FC4C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0801FC5C
+ cmp r0, 0x1
+ beq _0801FC88
+ b _0801FC92
+_0801FC5C:
+ movs r0, 0x6
+ movs r1, 0
+ bl sub_801FF18
+ movs r0, 0x17
+ movs r1, 0xA
+ movs r2, 0x1
+ bl sub_801FDDC
+ ldr r0, =gUnknown_02022C88
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1E]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0801FC92
+ .pool
+_0801FC88:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0801FC94
+_0801FC92:
+ movs r0, 0x1
+_0801FC94:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801FC4C
+
+ thumb_func_start sub_801FC9C
+sub_801FC9C: @ 801FC9C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0801FCAC
+ cmp r0, 0x1
+ beq _0801FCD8
+ b _0801FCE2
+_0801FCAC:
+ movs r0, 0x7
+ movs r1, 0
+ bl sub_801FF18
+ movs r0, 0x17
+ movs r1, 0xA
+ movs r2, 0x1
+ bl sub_801FDDC
+ ldr r0, =gUnknown_02022C88
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1E]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0801FCE2
+ .pool
+_0801FCD8:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0801FCE4
+_0801FCE2:
+ movs r0, 0x1
+_0801FCE4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801FC9C
+
+ thumb_func_start sub_801FCEC
+sub_801FCEC: @ 801FCEC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0801FCFC
+ cmp r0, 0x1
+ beq _0801FD1C
+ b _0801FD26
+_0801FCFC:
+ movs r0, 0x8
+ movs r1, 0
+ bl sub_801FF18
+ ldr r0, =gUnknown_02022C88
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1E]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0801FD26
+ .pool
+_0801FD1C:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0801FD28
+_0801FD26:
+ movs r0, 0x1
+_0801FD28:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801FCEC
+
+ thumb_func_start sub_801FD30
+sub_801FD30: @ 801FD30
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0801FD40
+ cmp r0, 0x1
+ beq _0801FD74
+ b _0801FD7E
+_0801FD40:
+ bl UnkTextUtil_Reset
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ movs r0, 0
+ bl UnkTextUtil_SetPtrI
+ movs r0, 0x9
+ movs r1, 0
+ bl sub_801FF18
+ ldr r0, =gUnknown_02022C88
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1E]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0801FD7E
+ .pool
+_0801FD74:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0801FD80
+_0801FD7E:
+ movs r0, 0x1
+_0801FD80:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801FD30
+
+ thumb_func_start sub_801FD88
+sub_801FD88: @ 801FD88
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0801FD98
+ cmp r0, 0x1
+ beq _0801FDC4
+ b _0801FDCE
+_0801FD98:
+ movs r0, 0xA
+ movs r1, 0
+ bl sub_801FF18
+ movs r0, 0x17
+ movs r1, 0xA
+ movs r2, 0x1
+ bl sub_801FDDC
+ ldr r0, =gUnknown_02022C88
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1E]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0801FDCE
+ .pool
+_0801FDC4:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0801FDD0
+_0801FDCE:
+ movs r0, 0x1
+_0801FDD0:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801FD88
+
+ thumb_func_start sub_801FDD8
+sub_801FDD8: @ 801FDD8
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_801FDD8
+
+ thumb_func_start sub_801FDDC
+sub_801FDDC: @ 801FDDC
+ push {r4-r7,lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsls r1, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ ldr r4, =0xffffff00
+ ldr r2, [sp, 0xC]
+ ands r2, r4
+ lsrs r0, 16
+ ldr r3, =0xffff00ff
+ ands r2, r3
+ orrs r2, r0
+ lsrs r1, 8
+ ldr r0, =0xff00ffff
+ ands r2, r0
+ orrs r2, r1
+ ldr r0, =0x00ffffff
+ ands r2, r0
+ movs r0, 0xC0
+ lsls r0, 19
+ orrs r2, r0
+ str r2, [sp, 0xC]
+ ldr r0, [sp, 0x10]
+ ands r0, r4
+ movs r1, 0x4
+ orrs r0, r1
+ ands r0, r3
+ movs r1, 0xE0
+ lsls r1, 4
+ orrs r0, r1
+ ldr r1, =0x0000ffff
+ ands r0, r1
+ movs r1, 0xA4
+ lsls r1, 15
+ orrs r0, r1
+ str r0, [sp, 0x10]
+ add r0, sp, 0xC
+ bl AddWindow
+ adds r1, r0, 0
+ ldr r5, =gUnknown_02022C88
+ ldr r0, [r5]
+ movs r6, 0
+ strh r1, [r0, 0x18]
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, 0xFF
+ beq _0801FE94
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x18]
+ bl PutWindowTilemap
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x18]
+ ldr r2, =gText_Yes
+ movs r1, 0x1
+ str r1, [sp]
+ movs r4, 0xFF
+ str r4, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x18]
+ ldr r2, =gText_No
+ movs r1, 0x11
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x18]
+ movs r1, 0x1
+ movs r2, 0xD
+ bl sub_8098858
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x18]
+ movs r1, 0x2
+ adds r2, r7, 0
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+_0801FE94:
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801FDDC
+
+ thumb_func_start sub_801FEBC
+sub_801FEBC: @ 801FEBC
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C88
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0xFF
+ beq _0801FEDA
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8198070
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x18]
+ bl ClearWindowTilemap
+_0801FEDA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801FEBC
+
+ thumb_func_start sub_801FEE4
+sub_801FEE4: @ 801FEE4
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C88
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0xFF
+ beq _0801FEFE
+ lsls r0, 24
+ lsrs r0, 24
+ bl RemoveWindow
+ ldr r1, [r4]
+ movs r0, 0xFF
+ strh r0, [r1, 0x18]
+_0801FEFE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801FEE4
+
+ thumb_func_start sub_801FF08
+sub_801FF08: @ 801FF08
+ push {lr}
+ bl ProcessMenuInput
+ lsls r0, 24
+ asrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801FF08
+
+ thumb_func_start sub_801FF18
+sub_801FF18: @ 801FF18
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x1C
+ adds r7, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ ldr r1, =0xffffff00
+ ldr r3, [sp, 0x14]
+ ands r3, r1
+ ldr r2, =0xffff00ff
+ ands r3, r2
+ movs r0, 0x80
+ lsls r0, 4
+ orrs r3, r0
+ ldr r0, =0xff00ffff
+ ands r3, r0
+ movs r0, 0x80
+ lsls r0, 13
+ orrs r3, r0
+ ldr r5, =0x00ffffff
+ ands r3, r5
+ movs r0, 0xA8
+ lsls r0, 21
+ orrs r3, r0
+ str r3, [sp, 0x14]
+ ldr r0, [sp, 0x18]
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ ands r0, r2
+ movs r1, 0xE0
+ lsls r1, 4
+ orrs r0, r1
+ ldr r1, =0x0000ffff
+ ands r0, r1
+ movs r1, 0xD4
+ lsls r1, 15
+ orrs r0, r1
+ str r0, [sp, 0x18]
+ ldr r1, =gUnknown_082F2D40
+ lsls r0, r7, 1
+ adds r0, r7
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ beq _0801FF98
+ lsls r0, r3, 16
+ movs r1, 0xF9
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 16
+ ands r2, r3
+ orrs r2, r0
+ lsrs r1, r2, 24
+ adds r1, 0x7
+ lsls r1, 24
+ adds r0, r5, 0
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp, 0x14]
+_0801FF98:
+ add r0, sp, 0x14
+ bl AddWindow
+ ldr r5, =gUnknown_02022C88
+ ldr r1, [r5]
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x1E]
+ mov r8, r0
+ cmp r0, 0xFF
+ beq _08020082
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0
+ beq _0801FFE0
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldr r1, [r4]
+ bl UnkTextUtil_StringExpandPlaceholders
+ ldr r0, [r5]
+ adds r6, r0, 0
+ adds r6, 0x22
+ b _0801FFE2
+ .pool
+_0801FFE0:
+ ldr r6, [r4]
+_0801FFE2:
+ mov r0, r9
+ lsls r1, r0, 8
+ movs r0, 0
+ movs r2, 0
+ bl ChangeBgY
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ adds r0, r5, 0
+ bl PutWindowTilemap
+ ldr r1, =gUnknown_082F2D40
+ lsls r0, r7, 1
+ adds r0, r7
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0x1
+ bne _08020050
+ adds r0, r5, 0
+ movs r1, 0xA
+ movs r2, 0x2
+ bl sub_80989E0
+ ldrb r3, [r4, 0x5]
+ adds r3, 0x8
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r4, 0x6]
+ adds r0, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ ldrb r0, [r4, 0x7]
+ str r0, [sp, 0xC]
+ ldrb r0, [r4, 0x8]
+ str r0, [sp, 0x10]
+ adds r0, r5, 0
+ movs r1, 0x1
+ adds r2, r6, 0
+ bl sub_8199F74
+ b _0802007A
+ .pool
+_08020050:
+ adds r0, r5, 0
+ movs r1, 0xA
+ movs r2, 0x2
+ bl sub_8098858
+ ldrb r3, [r4, 0x5]
+ ldrb r0, [r4, 0x6]
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ ldrb r0, [r4, 0x7]
+ str r0, [sp, 0xC]
+ ldrb r0, [r4, 0x8]
+ str r0, [sp, 0x10]
+ adds r0, r5, 0
+ movs r1, 0x1
+ adds r2, r6, 0
+ bl sub_8199F74
+_0802007A:
+ ldr r0, =gUnknown_02022C88
+ ldr r0, [r0]
+ mov r1, r8
+ strh r1, [r0, 0x1E]
+_08020082:
+ add sp, 0x1C
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801FF18
+
+ thumb_func_start sub_8020094
+sub_8020094: @ 8020094
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C88
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x1E]
+ cmp r0, 0xFF
+ beq _080200B2
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8198070
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1E]
+ bl ClearWindowTilemap
+_080200B2:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8020094
+
+ thumb_func_start sub_80200C8
+sub_80200C8: @ 80200C8
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C88
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x1E]
+ cmp r0, 0xFF
+ beq _080200E2
+ lsls r0, 24
+ lsrs r0, 24
+ bl RemoveWindow
+ ldr r1, [r4]
+ movs r0, 0xFF
+ strh r0, [r1, 0x1E]
+_080200E2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80200C8
+
+ thumb_func_start sub_80200EC
+sub_80200EC: @ 80200EC
+ push {lr}
+ sub sp, 0x8
+ adds r3, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 19
+ lsrs r3, 16
+ lsls r1, 19
+ lsrs r1, 16
+ str r1, [sp]
+ movs r0, 0xE
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ adds r1, r2, 0
+ adds r2, r3, 0
+ movs r3, 0x1
+ bl FillWindowPixelRect
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80200EC
+
+ thumb_func_start sub_8020118
+sub_8020118: @ 8020118
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ mov r10, r1
+ ldr r1, [sp, 0x54]
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r9, r5
+ lsls r2, 24
+ lsrs r4, r2, 24
+ mov r8, r4
+ lsls r3, 24
+ lsrs r7, r3, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ cmp r4, 0
+ beq _08020154
+ bl sub_801F198
+ adds r1, r0, 0
+ subs r1, r5
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl sub_80200EC
+_08020154:
+ add r0, sp, 0xC
+ mov r1, r8
+ strb r1, [r0]
+ strb r7, [r0, 0x1]
+ strb r6, [r0, 0x2]
+ add r4, sp, 0x10
+ movs r0, 0xFC
+ strb r0, [r4]
+ movs r0, 0x14
+ strb r0, [r4, 0x1]
+ movs r0, 0x8
+ strb r0, [r4, 0x2]
+ mov r0, sp
+ adds r0, 0x13
+ mov r1, r10
+ bl StringCopy
+ mov r0, r9
+ lsls r2, r0, 27
+ lsrs r2, 24
+ add r1, sp, 0xC
+ str r1, [sp]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r3, 0x1
+ bl box_print
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020118
+
+ thumb_func_start sub_80201A4
+sub_80201A4: @ 80201A4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4C
+ movs r0, 0x2
+ movs r1, 0xFF
+ bl FillWindowPixelBuffer
+ bl sub_801F0B0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ add r1, sp, 0xC
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0xE
+ strb r0, [r1, 0x1]
+ movs r0, 0xD
+ strb r0, [r1, 0x2]
+ cmp r2, 0x3
+ beq _08020240
+ add r1, sp, 0x10
+ movs r0, 0xFC
+ strb r0, [r1]
+ movs r0, 0x14
+ strb r0, [r1, 0x1]
+ movs r0, 0x8
+ strb r0, [r1, 0x2]
+ str r0, [sp, 0x40]
+ str r1, [sp, 0x44]
+ cmp r2, 0x2
+ bne _080201EC
+ movs r1, 0x6
+ str r1, [sp, 0x40]
+_080201EC:
+ movs r7, 0
+ movs r6, 0
+ lsls r0, r2, 2
+ ldr r1, =gUnknown_082F2BA8
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ ldr r0, [sp, 0x40]
+ lsls r5, r0, 24
+_080201FE:
+ ldr r1, [r4]
+ cmp r1, 0
+ bne _08020206
+ b _0802030C
+_08020206:
+ mov r0, sp
+ adds r0, 0x13
+ bl StringCopy
+ lsls r3, r6, 24
+ lsrs r3, 24
+ add r1, sp, 0xC
+ str r1, [sp]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp, 0x4]
+ ldr r0, [sp, 0x44]
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0
+ lsrs r2, r5, 24
+ bl box_print
+ adds r4, 0x4
+ adds r7, 0x1
+ adds r0, r6, 0
+ adds r0, 0xC
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r7, 0x9
+ ble _080201FE
+ b _0802030C
+ .pool
+_08020240:
+ movs r1, 0x4
+ str r1, [sp, 0x40]
+ movs r7, 0
+ movs r6, 0
+_08020248:
+ adds r0, r7, 0
+ bl sub_801EE6C
+ adds r5, r0, 0
+ movs r0, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetStringWidth
+ cmp r0, 0x28
+ bgt _08020286
+ lsls r3, r6, 24
+ lsrs r3, 24
+ add r4, sp, 0xC
+ str r4, [sp]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0
+ movs r4, 0x80
+ lsls r4, 19
+ lsrs r2, r4, 24
+ bl box_print
+ adds r0, r7, 0x1
+ str r0, [sp, 0x48]
+ adds r6, 0xC
+ mov r10, r6
+ b _08020300
+_08020286:
+ adds r0, r5, 0
+ bl StringLength_Multibyte
+ adds r4, r0, 0
+ mov r1, sp
+ adds r1, 0x10
+ str r1, [sp, 0x44]
+ ldr r0, [sp, 0x40]
+ lsls r0, 24
+ mov r8, r0
+ lsls r1, r6, 24
+ mov r9, r1
+ adds r0, r7, 0x1
+ str r0, [sp, 0x48]
+ adds r6, 0xC
+ mov r10, r6
+ ldr r7, [sp, 0x40]
+ adds r7, 0x23
+ ldr r6, [sp, 0x44]
+_080202AC:
+ subs r4, 0x1
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl StringCopyN_Multibyte
+ movs r0, 0
+ adds r1, r6, 0
+ movs r2, 0
+ bl GetStringWidth
+ cmp r0, 0x23
+ bgt _080202AC
+ mov r1, r8
+ lsrs r2, r1, 24
+ mov r0, r9
+ lsrs r4, r0, 24
+ add r1, sp, 0xC
+ str r1, [sp]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp, 0x4]
+ ldr r1, [sp, 0x44]
+ str r1, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0
+ adds r3, r4, 0
+ bl box_print
+ adds r2, r7, 0
+ add r0, sp, 0xC
+ str r0, [sp]
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [sp, 0x4]
+ ldr r0, =gText_Ellipsis
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0
+ adds r3, r4, 0
+ bl box_print
+_08020300:
+ ldr r7, [sp, 0x48]
+ mov r4, r10
+ lsls r0, r4, 16
+ lsrs r6, r0, 16
+ cmp r7, 0x9
+ ble _08020248
+_0802030C:
+ add sp, 0x4C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80201A4
+
+ thumb_func_start sub_8020320
+sub_8020320: @ 8020320
+ push {r4,lr}
+ ldr r1, =gUnknown_02022C88
+ ldr r2, [r1]
+ ldrh r3, [r2, 0x20]
+ movs r4, 0x20
+ ldrsh r0, [r2, r4]
+ cmp r0, 0x37
+ bgt _08020354
+ adds r0, r3, 0
+ adds r0, 0xC
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x37
+ ble _08020348
+ movs r0, 0x38
+ strh r0, [r2, 0x20]
+ b _08020354
+ .pool
+_08020348:
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ bl sub_80207C0
+ movs r0, 0x1
+ b _08020360
+_08020354:
+ ldr r0, [r1]
+ movs r4, 0x20
+ ldrsh r0, [r0, r4]
+ bl sub_8020818
+ movs r0, 0
+_08020360:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8020320
+
+ thumb_func_start sub_8020368
+sub_8020368: @ 8020368
+ push {r4,lr}
+ ldr r1, =gUnknown_02022C88
+ ldr r2, [r1]
+ ldrh r3, [r2, 0x20]
+ movs r4, 0x20
+ ldrsh r0, [r2, r4]
+ cmp r0, 0
+ ble _0802039C
+ adds r0, r3, 0
+ subs r0, 0xC
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08020390
+ movs r0, 0
+ strh r0, [r2, 0x20]
+ b _0802039C
+ .pool
+_08020390:
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ bl sub_80207C0
+ movs r0, 0x1
+ b _080203A8
+_0802039C:
+ ldr r0, [r1]
+ movs r4, 0x20
+ ldrsh r0, [r0, r4]
+ bl sub_8020818
+ movs r0, 0
+_080203A8:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8020368
+
+ thumb_func_start sub_80203B0
+sub_80203B0: @ 80203B0
+ push {r4,r5,lr}
+ sub sp, 0xC
+ movs r0, 0x3
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0xD
+ bl sub_8098858
+ movs r5, 0xE
+ str r5, [sp]
+ movs r4, 0x5
+ str r4, [sp, 0x4]
+ ldr r0, =gUnknown_082F2DC8
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ movs r1, 0x2
+ movs r2, 0x8
+ movs r3, 0x1
+ bl PrintTextArray
+ bl sub_801F0B0
+ lsls r0, 24
+ lsrs r0, 24
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_81983AC
+ movs r0, 0x3
+ bl PutWindowTilemap
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80203B0
+
+ thumb_func_start sub_802040C
+sub_802040C: @ 802040C
+ push {lr}
+ movs r0, 0x3
+ movs r1, 0
+ bl sub_8198070
+ movs r0, 0x3
+ bl ClearWindowTilemap
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802040C
+
+ thumb_func_start sub_8020420
+sub_8020420: @ 8020420
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r5, r1, 0
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, 24
+ add r3, sp, 0xC
+ movs r1, 0x1
+ strb r1, [r3]
+ lsrs r2, 23
+ adds r1, r2, 0x2
+ strb r1, [r3, 0x1]
+ adds r1, r3, 0
+ adds r2, 0x3
+ strb r2, [r1, 0x2]
+ lsls r4, r0, 4
+ subs r4, r0
+ lsls r3, r4, 16
+ lsrs r3, 16
+ movs r0, 0xA8
+ str r0, [sp]
+ movs r0, 0xF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x11
+ movs r2, 0
+ bl FillWindowPixelRect
+ adds r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ add r0, sp, 0xC
+ str r0, [sp]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0
+ adds r3, r4, 0
+ bl box_print
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020420
+
+ thumb_func_start sub_8020480
+sub_8020480: @ 8020480
+ push {lr}
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ movs r0, 0x3
+ bl ShowBg
+ movs r1, 0x82
+ lsls r1, 5
+ movs r0, 0
+ bl SetGpuRegBits
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r1, 0xE0
+ lsls r1, 8
+ movs r0, 0
+ bl ClearGpuRegBits
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ bl SetGpuRegBits
+ ldr r1, =0x000040f0
+ movs r0, 0x40
+ bl SetGpuReg
+ movs r0, 0x44
+ movs r1, 0x90
+ bl SetGpuReg
+ movs r0, 0x48
+ movs r1, 0x3D
+ bl SetGpuReg
+ movs r0, 0x4A
+ movs r1, 0x3F
+ bl SetGpuReg
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8020480
+
+ thumb_func_start sub_8020538
+sub_8020538: @ 8020538
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C88
+ ldr r1, [r4]
+ movs r0, 0x94
+ lsls r0, 1
+ adds r1, r0
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ ldr r1, [r4]
+ ldr r0, =0x00000928
+ adds r1, r0
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ ldr r1, [r4]
+ ldr r0, =0x00001128
+ adds r1, r0
+ movs r0, 0x3
+ bl SetBgTilemapBuffer
+ ldr r1, [r4]
+ ldr r0, =0x00001928
+ adds r1, r0
+ movs r0, 0x2
+ bl SetBgTilemapBuffer
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8020538
+
+ thumb_func_start sub_8020584
+sub_8020584: @ 8020584
+ push {lr}
+ sub sp, 0x8
+ movs r1, 0xC0
+ lsls r1, 19
+ movs r0, 0
+ movs r2, 0x20
+ movs r3, 0x1
+ bl RequestDma3Fill
+ movs r0, 0x20
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020584
+
+ thumb_func_start sub_80205B4
+sub_80205B4: @ 80205B4
+ push {lr}
+ sub sp, 0x4
+ ldr r0, =gUnknown_08DD4BD0
+ movs r1, 0x70
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, =gUnknown_08DD4BB0
+ movs r1, 0xC0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, =gUnknown_08DD4BF0
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ ldr r1, =gUnknown_08DD4C4C
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl CopyToBgTilemapBuffer
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80205B4
+
+ thumb_func_start task_tutorial_story_unknown
+task_tutorial_story_unknown: @ 8020604
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, =gLinkMiscMenu_Pal
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, =gLinkMiscMenu_Gfx
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _0802064E
+ movs r1, 0x88
+ lsls r1, 2
+ adds r0, r5, r1
+ ldr r4, =gUnknown_02022C88
+ ldr r1, [r4]
+ ldr r2, =0x00002128
+ adds r1, r2
+ movs r2, 0x8
+ bl CpuFastSet
+ movs r1, 0x84
+ lsls r1, 3
+ adds r0, r5, r1
+ ldr r1, [r4]
+ ldr r2, =0x00002148
+ adds r1, r2
+ movs r2, 0x8
+ bl CpuFastSet
+_0802064E:
+ ldr r1, =gLinkMiscMenu_Tilemap
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl CopyToBgTilemapBuffer
+ movs r0, 0x2
+ bl CopyBgTilemapBufferToVram
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task_tutorial_story_unknown
+
+ thumb_func_start sub_8020680
+sub_8020680: @ 8020680
+ push {lr}
+ ldr r0, =gUnknown_082F2C20
+ movs r1, 0x80
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, =0x06004020
+ movs r0, 0
+ movs r2, 0x20
+ movs r3, 0x1
+ bl RequestDma3Fill
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8020680
+
+ thumb_func_start sub_80206A4
+sub_80206A4: @ 80206A4
+ push {lr}
+ ldr r0, =gUnknown_082F2C40
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ movs r0, 0
+ bl PutWindowTilemap
+ movs r0, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80206A4
+
+ thumb_func_start sub_80206D0
+sub_80206D0: @ 80206D0
+ push {lr}
+ movs r0, 0x2
+ bl PutWindowTilemap
+ bl sub_80201A4
+ movs r0, 0x2
+ movs r1, 0x3
+ bl CopyWindowToVram
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80206D0
+
+ thumb_func_start sub_80206E8
+sub_80206E8: @ 80206E8
+ push {r4,lr}
+ sub sp, 0xC
+ add r1, sp, 0x8
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0xFF
+ strb r0, [r1, 0x1]
+ movs r4, 0
+_080206F8:
+ ldr r0, =gUnknown_02022C88
+ ldr r1, [r0]
+ ldr r0, =0x00002128
+ adds r1, r0
+ lsls r2, r4, 19
+ lsrs r2, 16
+ movs r0, 0x8
+ str r0, [sp]
+ movs r0, 0x10
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r3, 0
+ bl BlitBitmapToWindow
+ adds r4, 0x1
+ cmp r4, 0xE
+ ble _080206F8
+ movs r0, 0x1
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x1
+ bl PutWindowTilemap
+ movs r0, 0x1
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80206E8
+
+ thumb_func_start sub_8020740
+sub_8020740: @ 8020740
+ push {lr}
+ movs r0, 0x3
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0xD0
+ bl sub_809882C
+ movs r0, 0x3
+ movs r1, 0xA
+ movs r2, 0x20
+ bl box_border_load_tiles_and_pal
+ ldr r0, =gUnknown_0860F074
+ movs r1, 0xE0
+ movs r2, 0x20
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8020740
+
+ thumb_func_start sub_8020770
+sub_8020770: @ 8020770
+ push {lr}
+ sub sp, 0x10
+ ldr r0, =0xa2600001
+ str r0, [sp, 0x4]
+ ldr r0, =0x04000014
+ str r0, [sp]
+ mov r2, sp
+ movs r1, 0
+ movs r0, 0x1
+ strb r0, [r2, 0x8]
+ mov r0, sp
+ strb r1, [r0, 0x9]
+ ldr r0, =gUnknown_02022C88
+ ldr r0, [r0]
+ strh r1, [r0, 0x20]
+ str r1, [sp, 0xC]
+ add r0, sp, 0xC
+ ldr r1, =gScanlineEffectRegBuffers
+ ldr r2, =0x010003c0
+ bl CpuFastSet
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl ScanlineEffect_SetParams
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8020770
+
+ thumb_func_start sub_80207C0
+sub_80207C0: @ 80207C0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, sp
+ strh r0, [r1]
+ ldr r5, =gScanlineEffect
+ ldrb r0, [r5, 0x14]
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 7
+ ldr r4, =gScanlineEffectRegBuffers
+ adds r1, r4
+ ldr r2, =0x01000090
+ mov r0, sp
+ bl CpuSet
+ mov r0, sp
+ adds r0, 0x2
+ movs r1, 0
+ strh r1, [r0]
+ ldrb r2, [r5, 0x14]
+ lsls r1, r2, 4
+ subs r1, r2
+ lsls r1, 7
+ movs r2, 0x90
+ lsls r2, 1
+ adds r4, r2
+ adds r1, r4
+ ldr r2, =0x01000010
+ bl CpuSet
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80207C0
+
+ thumb_func_start sub_8020818
+sub_8020818: @ 8020818
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, sp
+ strh r4, [r0]
+ ldr r5, =gScanlineEffectRegBuffers
+ ldr r0, =0x01000090
+ mov r9, r0
+ mov r0, sp
+ adds r1, r5, 0
+ mov r2, r9
+ bl CpuSet
+ mov r0, sp
+ adds r0, 0x2
+ movs r6, 0
+ strh r6, [r0]
+ movs r2, 0x90
+ lsls r2, 1
+ adds r1, r5, r2
+ ldr r2, =0x01000010
+ mov r8, r2
+ bl CpuSet
+ add r0, sp, 0x4
+ strh r4, [r0]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r5, r2
+ mov r2, r9
+ bl CpuSet
+ mov r0, sp
+ adds r0, 0x6
+ strh r6, [r0]
+ movs r1, 0x8A
+ lsls r1, 4
+ adds r5, r1
+ adds r1, r5, 0
+ mov r2, r8
+ bl CpuSet
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8020818
+
+ thumb_func_start sub_8020890
+sub_8020890: @ 8020890
+ push {r4,r5,lr}
+ movs r5, 0
+ ldr r4, =gUnknown_082F3134
+_08020896:
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ adds r4, 0x8
+ adds r5, 0x1
+ cmp r5, 0x4
+ bls _08020896
+ ldr r0, =gUnknown_082F315C
+ bl LoadSpritePalette
+ ldr r4, =gUnknown_02022C8C
+ movs r0, 0x18
+ bl Alloc
+ str r0, [r4]
+ cmp r0, 0
+ beq _080208C8
+ movs r0, 0x1
+ b _080208CA
+ .pool
+_080208C8:
+ movs r0, 0
+_080208CA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8020890
+
+ thumb_func_start sub_80208D0
+sub_80208D0: @ 80208D0
+ push {lr}
+ ldr r0, =gUnknown_02022C8C
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080208DE
+ bl Free
+_080208DE:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80208D0
+
+ thumb_func_start sub_80208E8
+sub_80208E8: @ 80208E8
+ push {lr}
+ ldr r0, =gUnknown_082F319C
+ movs r1, 0xA
+ movs r2, 0x18
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_02022C8C
+ ldr r2, [r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =gSprites
+ adds r1, r0
+ str r1, [r2]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80208E8
+
+ thumb_func_start sub_802091C
+sub_802091C: @ 802091C
+ ldr r1, =gUnknown_02022C8C
+ ldr r1, [r1]
+ ldr r2, [r1]
+ adds r2, 0x3E
+ movs r1, 0x1
+ ands r0, r1
+ lsls r0, 2
+ ldrb r3, [r2]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r0
+ strb r1, [r2]
+ bx lr
+ .pool
+ thumb_func_end sub_802091C
+
+ thumb_func_start sub_802093C
+sub_802093C: @ 802093C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ bl sub_801F0B0
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r5, sp
+ adds r5, 0x1
+ mov r0, sp
+ adds r1, r5, 0
+ bl sub_801F0BC
+ cmp r4, 0x3
+ beq _0802097C
+ ldr r4, =gUnknown_02022C8C
+ ldr r0, [r4]
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAnim
+ ldr r1, [r4]
+ ldr r2, [r1]
+ mov r0, sp
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, 0xA
+ strh r0, [r2, 0x20]
+ ldr r2, [r1]
+ b _08020992
+ .pool
+_0802097C:
+ ldr r4, =gUnknown_02022C8C
+ ldr r0, [r4]
+ ldr r0, [r0]
+ movs r1, 0x2
+ bl StartSpriteAnim
+ ldr r2, [r4]
+ ldr r1, [r2]
+ movs r0, 0x18
+ strh r0, [r1, 0x20]
+ ldr r2, [r2]
+_08020992:
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, 0x18
+ strh r0, [r2, 0x22]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802093C
+
+ thumb_func_start sub_80209AC
+sub_80209AC: @ 80209AC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 2
+ ldr r0, =gUnknown_082F2DF0+2
+ adds r4, r0
+ movs r0, 0
+ bl IndexOfSpritePaletteTag
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 4
+ ldr r0, =0x01010000
+ adds r1, r0
+ lsrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0x4
+ bl LoadPalette
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80209AC
+
+ thumb_func_start sub_80209E0
+sub_80209E0: @ 80209E0
+ push {lr}
+ bl sub_801F0B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _08020A00
+ ldr r0, =gUnknown_02022C8C
+ ldr r0, [r0]
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ b _08020A0C
+ .pool
+_08020A00:
+ ldr r0, =gUnknown_02022C8C
+ ldr r0, [r0]
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl StartSpriteAnim
+_08020A0C:
+ ldr r0, =gUnknown_02022C8C
+ ldr r1, [r0]
+ movs r0, 0
+ strh r0, [r1, 0x14]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80209E0
+
+ thumb_func_start sub_8020A1C
+sub_8020A1C: @ 8020A1C
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C8C
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x14]
+ cmp r0, 0x3
+ bls _08020A30
+_08020A28:
+ movs r0, 0
+ b _08020A62
+ .pool
+_08020A30:
+ adds r0, 0x1
+ strh r0, [r1, 0x14]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3
+ bls _08020A60
+ bl sub_801F0B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _08020A54
+ ldr r0, [r4]
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAnim
+ b _08020A28
+_08020A54:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ movs r1, 0x2
+ bl StartSpriteAnim
+ b _08020A28
+_08020A60:
+ movs r0, 0x1
+_08020A62:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8020A1C
+
+ thumb_func_start sub_8020A68
+sub_8020A68: @ 8020A68
+ push {r4,r5,lr}
+ ldr r0, =gUnknown_082F31BC
+ movs r1, 0x4C
+ movs r2, 0x98
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, =gUnknown_02022C8C
+ ldr r2, [r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r4, =gSprites
+ adds r1, r4
+ str r1, [r2, 0x8]
+ ldr r0, =gUnknown_082F31D4
+ movs r1, 0x40
+ movs r2, 0x98
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ str r1, [r2, 0x4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8020A68
+
+ thumb_func_start sub_8020ABC
+sub_8020ABC: @ 8020ABC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_801F198
+ adds r3, r0, 0
+ cmp r3, 0xF
+ bne _08020AD8
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _08020AEC
+_08020AD8:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r2]
+ lsls r0, r3, 3
+ adds r0, 0x4C
+ strh r0, [r4, 0x20]
+_08020AEC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020ABC
+
+ thumb_func_start sub_8020AF4
+sub_8020AF4: @ 8020AF4
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _08020B1A
+ strh r2, [r1, 0x2E]
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _08020B1A
+ strh r2, [r1, 0x24]
+_08020B1A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020AF4
+
+ thumb_func_start sub_8020B20
+sub_8020B20: @ 8020B20
+ push {r4,r5,lr}
+ ldr r0, =gUnknown_082F322C
+ movs r1, 0x8
+ movs r2, 0x98
+ movs r3, 0x3
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, =gUnknown_02022C8C
+ ldr r2, [r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r4, =gSprites
+ adds r1, r4
+ str r1, [r2, 0xC]
+ ldr r0, =gUnknown_082F3244
+ movs r1, 0x20
+ movs r2, 0x98
+ movs r3, 0x4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ str r1, [r2, 0x10]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8020B20
+
+ thumb_func_start sub_8020B80
+sub_8020B80: @ 8020B80
+ push {r4,lr}
+ bl sub_801F0B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _08020BB8
+ bl sub_801F0DC
+ cmp r0, 0
+ beq _08020BC2
+ ldr r3, =gUnknown_02022C8C
+ ldr r0, [r3]
+ ldr r1, [r0, 0x10]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ ldr r0, [r0, 0x10]
+ movs r1, 0x3
+ bl StartSpriteAnim
+ b _08020BF6
+ .pool
+_08020BB8:
+ bl sub_801F1A4
+ adds r4, r0, 0
+ cmp r4, 0x3
+ bne _08020BD8
+_08020BC2:
+ ldr r0, =gUnknown_02022C8C
+ ldr r0, [r0]
+ ldr r1, [r0, 0x10]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ b _08020BF6
+ .pool
+_08020BD8:
+ ldr r3, =gUnknown_02022C8C
+ ldr r0, [r3]
+ ldr r1, [r0, 0x10]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ ldr r0, [r0, 0x10]
+ lsls r1, r4, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+_08020BF6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8020B80
+
+ thumb_func_start sub_8020C00
+sub_8020C00: @ 8020C00
+ ldr r0, =gUnknown_02022C90
+ ldr r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_8020C00
+
+ thumb_func_start sub_8020C0C
+sub_8020C0C: @ 8020C0C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, =gUnknown_02022C90
+ ldr r0, [r5]
+ cmp r0, 0
+ bne _08020C20
+ movs r0, 0x2
+ b _08020C5C
+ .pool
+_08020C20:
+ cmp r4, 0
+ bne _08020C26
+ ldr r4, [r0]
+_08020C26:
+ ldrb r0, [r0, 0xA]
+ bl DestroyTask
+ ldr r0, [r5]
+ bl Free
+ movs r0, 0
+ str r0, [r5]
+ adds r0, r4, 0
+ bl SetMainCallback2
+ ldr r0, =c2_exit_to_overworld_2_switch
+ cmp r4, r0
+ bne _08020C5A
+ ldr r2, =gTextFlags
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0xC8
+ lsls r0, 1
+ bl PlayNewMapMusic
+ ldr r0, =c1_overworld
+ bl set_callback1
+_08020C5A:
+ movs r0, 0
+_08020C5C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8020C0C
+
+ thumb_func_start sub_8020C70
+sub_8020C70: @ 8020C70
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ adds r4, r0, 0
+ movs r0, 0
+ mov r8, r0
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08020C8E
+ ldr r0, =gWirelessCommType
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08020CAC
+_08020C8E:
+ adds r0, r4, 0
+ bl SetMainCallback2
+ ldr r0, =gUnknown_03005000
+ mov r1, r8
+ strh r1, [r0, 0x10]
+ strh r1, [r0, 0x12]
+ b _08020CF8
+ .pool
+_08020CAC:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r0, r8
+ cmp r0, 0x1
+ bls _08020CC8
+ cmp r7, r8
+ bcc _08020CDC
+_08020CC8:
+ adds r0, r4, 0
+ bl SetMainCallback2
+ ldr r0, =gUnknown_03005000
+ movs r1, 0
+ strh r1, [r0, 0x10]
+ strh r1, [r0, 0x12]
+ b _08020CF8
+ .pool
+_08020CDC:
+ ldr r6, =gUnknown_02022C90
+ ldr r0, =0x000041c0
+ bl AllocZeroed
+ adds r5, r0, 0
+ str r5, [r6]
+ cmp r5, 0
+ bne _08020D10
+ adds r0, r4, 0
+ bl SetMainCallback2
+ ldr r0, =gUnknown_03005000
+ strh r5, [r0, 0x10]
+ strh r5, [r0, 0x12]
+_08020CF8:
+ adds r0, 0xEE
+ ldrb r1, [r0]
+ movs r1, 0x1
+ strb r1, [r0]
+ b _08020D74
+ .pool
+_08020D10:
+ str r4, [r5]
+ movs r4, 0
+ strb r7, [r5, 0x8]
+ ldr r0, [r6]
+ mov r1, r8
+ strb r1, [r0, 0x9]
+ ldr r0, [r6]
+ bl sub_8020FC4
+ ldr r1, [r6]
+ movs r2, 0x1
+ movs r0, 0x1
+ strh r0, [r1, 0x12]
+ strb r2, [r1, 0xE]
+ ldr r1, [r6]
+ movs r0, 0x6
+ strb r0, [r1, 0xF]
+ ldr r0, [r6]
+ adds r0, 0x36
+ movs r2, 0x1
+ negs r2, r2
+ movs r1, 0x10
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl sub_8024604
+ ldr r2, [r6]
+ adds r2, 0x36
+ movs r0, 0x4
+ movs r1, 0x1
+ bl sub_8022BEC
+ ldr r0, =sub_8020F88
+ bl SetMainCallback2
+ ldr r0, =sub_8020FA0
+ movs r1, 0x8
+ bl CreateTask
+ ldr r1, [r6]
+ strb r0, [r1, 0xA]
+ ldr r2, =gTextFlags
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_08020D74:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8020C70
+
+ thumb_func_start sub_8020D8C
+sub_8020D8C: @ 8020D8C
+ push {r4,lr}
+ sub sp, 0xC
+ ldr r1, =gSpecialVar_ItemId
+ ldrh r0, [r1]
+ subs r0, 0x85
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2B
+ bls _08020DA8
+ movs r0, 0x85
+ strh r0, [r1]
+ b _08020DB0
+ .pool
+_08020DA8:
+ ldrh r0, [r1]
+ movs r1, 0x1
+ bl RemoveBagItem
+_08020DB0:
+ ldr r4, =gUnknown_02022C90
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x8]
+ lsls r0, 5
+ adds r0, r2, r0
+ ldr r1, =gSpecialVar_ItemId
+ ldrh r1, [r1]
+ subs r1, 0x85
+ adds r0, 0xA4
+ movs r3, 0
+ strh r1, [r0]
+ movs r0, 0x1
+ strb r0, [r2, 0xE]
+ ldr r1, [r4]
+ movs r0, 0x9
+ strb r0, [r1, 0xF]
+ ldr r0, [r4]
+ adds r0, 0x36
+ movs r2, 0x1
+ negs r2, r2
+ movs r1, 0x10
+ str r1, [sp]
+ str r3, [sp, 0x4]
+ str r3, [sp, 0x8]
+ movs r1, 0
+ bl sub_8024604
+ ldr r2, [r4]
+ adds r2, 0x36
+ movs r0, 0x4
+ movs r1, 0x1
+ bl sub_8022BEC
+ ldr r0, =sub_8020FA0
+ movs r1, 0x8
+ bl CreateTask
+ ldr r1, [r4]
+ strb r0, [r1, 0xA]
+ ldr r0, =sub_8020F88
+ bl SetMainCallback2
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8020D8C
+
+ thumb_func_start sub_8020E1C
+sub_8020E1C: @ 8020E1C
+ push {lr}
+ ldr r0, =gUnknown_02022C90
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xA]
+ bl DestroyTask
+ ldr r0, =sub_8020D8C
+ bl sub_81AABF0
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8020E1C
+
+ thumb_func_start sub_8020E3C
+sub_8020E3C: @ 8020E3C
+ push {lr}
+ ldr r0, =sub_8020F74
+ bl SetVBlankCallback
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8020E3C
+
+ thumb_func_start sub_8020E4C
+sub_8020E4C: @ 8020E4C
+ push {lr}
+ movs r0, 0
+ bl SetVBlankCallback
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020E4C
+
+ thumb_func_start sub_8020E58
+sub_8020E58: @ 8020E58
+ push {r4-r6,lr}
+ ldr r4, =gUnknown_02022C90
+ ldr r0, [r4]
+ adds r0, 0x6C
+ ldrh r2, [r0]
+ lsls r2, 8
+ movs r1, 0xF0
+ lsls r1, 6
+ adds r0, r2, 0
+ bl sub_81515FC
+ adds r2, r0, 0
+ ldr r0, [r4]
+ adds r0, 0x72
+ ldrh r3, [r0]
+ lsls r3, 8
+ adds r0, r3, 0
+ adds r1, r2, 0
+ bl sub_81515FC
+ adds r3, r0, 0
+ ldr r0, =0x0000ffff
+ ands r3, r0
+ ldr r2, [r4]
+ strh r3, [r2, 0x16]
+ ldrb r0, [r2, 0x9]
+ cmp r0, 0x3
+ beq _08020EDC
+ cmp r0, 0x3
+ bgt _08020EA4
+ cmp r0, 0x2
+ beq _08020EAE
+ b _08020F48
+ .pool
+_08020EA4:
+ cmp r0, 0x4
+ beq _08020EEC
+ cmp r0, 0x5
+ beq _08020F20
+ b _08020F48
+_08020EAE:
+ ldr r5, =gSaveBlock2Ptr
+ ldr r1, [r5]
+ movs r0, 0xF6
+ lsls r0, 1
+ adds r1, r0
+ lsls r0, r3, 16
+ lsrs r0, 16
+ ldrh r1, [r1]
+ cmp r0, r1
+ bls _08020F48
+ adds r2, 0x25
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, [r5]
+ ldr r1, [r4]
+ ldrh r1, [r1, 0x16]
+ movs r2, 0xF6
+ lsls r2, 1
+ b _08020F14
+ .pool
+_08020EDC:
+ ldr r5, =gSaveBlock2Ptr
+ ldr r0, [r5]
+ movs r6, 0xF7
+ lsls r6, 1
+ b _08020F28
+ .pool
+_08020EEC:
+ ldr r5, =gSaveBlock2Ptr
+ ldr r1, [r5]
+ movs r0, 0xF8
+ lsls r0, 1
+ adds r1, r0
+ lsls r0, r3, 16
+ lsrs r0, 16
+ ldrh r1, [r1]
+ cmp r0, r1
+ bls _08020F48
+ adds r2, 0x25
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, [r5]
+ ldr r1, [r4]
+ ldrh r1, [r1, 0x16]
+ movs r2, 0xF8
+ lsls r2, 1
+_08020F14:
+ adds r0, r2
+ strh r1, [r0]
+ b _08020F48
+ .pool
+_08020F20:
+ ldr r5, =gSaveBlock2Ptr
+ ldr r0, [r5]
+ movs r6, 0xF9
+ lsls r6, 1
+_08020F28:
+ adds r1, r0, r6
+ lsls r0, r3, 16
+ lsrs r0, 16
+ ldrh r1, [r1]
+ cmp r0, r1
+ bls _08020F48
+ adds r2, 0x25
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, [r5]
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x16]
+ adds r1, r6
+ strh r0, [r1]
+_08020F48:
+ ldr r4, =gUnknown_02022C90
+ ldr r1, [r4]
+ ldr r0, [r1, 0x68]
+ str r0, [r1, 0x1C]
+ bl sub_8024700
+ lsls r0, 24
+ cmp r0, 0
+ bne _08020F66
+ ldr r0, [r4]
+ adds r0, 0x25
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+_08020F66:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8020E58
+
+ thumb_func_start sub_8020F74
+sub_8020F74: @ 8020F74
+ push {lr}
+ bl TransferPlttBuffer
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020F74
+
+ thumb_func_start sub_8020F88
+sub_8020F88: @ 8020F88
+ push {lr}
+ bl RunTasks
+ bl RunTextPrinters
+ bl AnimateSprites
+ bl BuildOamBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020F88
+
+ thumb_func_start sub_8020FA0
+sub_8020FA0: @ 8020FA0
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C90
+ ldr r0, [r4]
+ ldr r2, [r0, 0x4]
+ cmp r2, 0
+ beq _08020FB4
+ adds r1, r0, 0
+ adds r1, 0x36
+ bl _call_via_r2
+_08020FB4:
+ ldr r0, [r4]
+ bl sub_8021450
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8020FA0
+
+ thumb_func_start sub_8020FC4
+sub_8020FC4: @ 8020FC4
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r5, 0
+ b _08020FE6
+_08020FCC:
+ lsls r0, r5, 5
+ adds r0, 0x98
+ adds r0, r6, r0
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ ldr r2, =gLinkPlayers + 8
+ adds r1, r2
+ bl StringCopy
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08020FE6:
+ ldrb r0, [r6, 0x9]
+ cmp r5, r0
+ bcc _08020FCC
+ cmp r5, 0x4
+ bhi _08021012
+_08020FF0:
+ lsls r4, r5, 5
+ adds r0, r4, 0
+ adds r0, 0x98
+ adds r0, r6, r0
+ movs r1, 0x1
+ movs r2, 0x7
+ bl memset
+ adds r4, r6, r4
+ adds r4, 0x9F
+ movs r0, 0xFF
+ strb r0, [r4]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _08020FF0
+_08021012:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x14]
+ lsls r0, 29
+ lsrs r0, 29
+ cmp r0, 0x1
+ beq _0802103E
+ cmp r0, 0x1
+ bgt _08021034
+ cmp r0, 0
+ beq _0802103A
+ b _08021046
+ .pool
+_08021034:
+ cmp r0, 0x2
+ beq _08021042
+ b _08021046
+_0802103A:
+ movs r0, 0x8
+ b _08021044
+_0802103E:
+ movs r0, 0x4
+ b _08021044
+_08021042:
+ movs r0, 0x1
+_08021044:
+ strb r0, [r6, 0xB]
+_08021046:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020FC4
+
+ thumb_func_start sub_802104C
+sub_802104C: @ 802104C
+ push {r4,r5,lr}
+ sub sp, 0xC
+ bl sub_8020C00
+ adds r5, r0, 0
+ cmp r5, 0
+ bne _08021060
+ movs r0, 0x1
+ negs r0, r0
+ b _08021304
+_08021060:
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0x9
+ bls _08021068
+ b _080212FC
+_08021068:
+ lsls r0, 2
+ ldr r1, =_08021078
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08021078:
+ .4byte _080210A0
+ .4byte _080210BE
+ .4byte _080210E4
+ .4byte _080210F2
+ .4byte _08021178
+ .4byte _080211BE
+ .4byte _080211EC
+ .4byte _0802121C
+ .4byte _08021278
+ .4byte _080212B4
+_080210A0:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r0, 0
+ movs r1, 0
+ bl SetGpuReg
+ bl ScanlineEffect_Stop
+ bl reset_temp_tile_data_buffers
+ b _080212FC
+_080210BE:
+ add r0, sp, 0x8
+ movs r4, 0
+ strh r4, [r0]
+ movs r1, 0xE0
+ lsls r1, 19
+ ldr r2, =0x01000200
+ bl CpuSet
+ ldr r0, =gReservedSpritePaletteCount
+ strb r4, [r0]
+ movs r0, 0x3
+ bl sub_8034C54
+ b _080212FC
+ .pool
+_080210E4:
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ b _080212FC
+_080210F2:
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_082F32C8
+ movs r0, 0
+ movs r2, 0x4
+ bl InitBgsFromTemplates
+ movs r0, 0xE0
+ lsls r0, 1
+ adds r1, r5, r0
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ movs r0, 0x87
+ lsls r0, 6
+ adds r1, r5, r0
+ movs r0, 0x2
+ bl SetBgTilemapBuffer
+ movs r0, 0xC7
+ lsls r0, 6
+ adds r1, r5, r0
+ movs r0, 0x3
+ bl SetBgTilemapBuffer
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ b _080212FC
+ .pool
+_08021178:
+ movs r4, 0x20
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ str r4, [sp]
+ movs r0, 0x40
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ b _080212FC
+_080211BE:
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x2
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x3
+ bl CopyBgTilemapBufferToVram
+ ldr r1, =gUnknown_08DE34B8
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ b _080212FC
+ .pool
+_080211EC:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ cmp r0, 0
+ beq _080211F8
+ b _08021302
+_080211F8:
+ bl sub_81971D0
+ bl sub_8197200
+ adds r0, r5, 0
+ bl sub_8022588
+ adds r0, r5, 0
+ bl sub_8022600
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x8]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0, 0x8]
+ b _080212FC
+ .pool
+_0802121C:
+ ldr r0, =gUnknown_08DE3398
+ movs r2, 0xC0
+ lsls r2, 1
+ movs r1, 0
+ bl LoadPalette
+ ldr r1, =gBerryCrushGrinderTopTilemap
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl CopyToBgTilemapBuffer
+ ldr r1, =gBerryCrushContainerCapTilemap
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl CopyToBgTilemapBuffer
+ ldr r1, =gBerryCrushBackgroundTilemap
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl CopyToBgTilemapBuffer
+ adds r0, r5, 0
+ bl sub_80226D0
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x2
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x3
+ bl CopyBgTilemapBufferToVram
+ b _080212FC
+ .pool
+_08021278:
+ bl sub_800E0E8
+ movs r0, 0
+ movs r1, 0
+ bl CreateWirelessStatusIndicatorSprite
+ adds r0, r5, 0
+ bl sub_8022730
+ ldr r0, =gSpriteCoordOffsetY
+ ldrh r1, [r0]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x16
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ b _080212FC
+ .pool
+_080212B4:
+ ldr r2, =gPaletteFade
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ movs r0, 0x3
+ bl ShowBg
+ movs r1, 0x82
+ lsls r1, 5
+ movs r0, 0
+ bl SetGpuRegBits
+ bl sub_8020E3C
+ movs r0, 0
+ strb r0, [r5, 0xC]
+ movs r0, 0x1
+ b _08021304
+ .pool
+_080212FC:
+ ldrb r0, [r5, 0xC]
+ adds r0, 0x1
+ strb r0, [r5, 0xC]
+_08021302:
+ movs r0, 0
+_08021304:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802104C
+
+ thumb_func_start sub_802130C
+sub_802130C: @ 802130C
+ push {r4,r5,lr}
+ sub sp, 0x8
+ bl sub_8020C00
+ adds r5, r0, 0
+ cmp r5, 0
+ bne _08021320
+ movs r0, 0x1
+ negs r0, r0
+ b _08021446
+_08021320:
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0x7
+ bls _08021328
+ b _0802143E
+_08021328:
+ lsls r0, 2
+ ldr r1, =_08021338
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08021338:
+ .4byte _08021358
+ .4byte _0802135E
+ .4byte _08021368
+ .4byte _0802137E
+ .4byte _0802138A
+ .4byte _080213E6
+ .4byte _08021426
+ .4byte _08021436
+_08021358:
+ bl sub_8010434
+ b _0802143E
+_0802135E:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08021444
+_08021368:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ bl UpdatePaletteFade
+ b _0802143E
+_0802137E:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802143E
+ b _08021444
+_0802138A:
+ movs r4, 0x20
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x2
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x3
+ bl CopyBgTilemapBufferToVram
+ b _0802143E
+_080213E6:
+ bl FreeAllWindowBuffers
+ movs r0, 0
+ bl HideBg
+ movs r0, 0
+ bl UnsetBgTilemapBuffer
+ movs r0, 0x1
+ bl HideBg
+ movs r0, 0x1
+ bl UnsetBgTilemapBuffer
+ movs r0, 0x2
+ bl HideBg
+ movs r0, 0x2
+ bl UnsetBgTilemapBuffer
+ movs r0, 0x3
+ bl HideBg
+ movs r0, 0x3
+ bl UnsetBgTilemapBuffer
+ movs r1, 0x82
+ lsls r1, 5
+ movs r0, 0
+ bl ClearGpuRegBits
+ b _0802143E
+_08021426:
+ bl sub_800E084
+ adds r0, r5, 0
+ bl sub_8022960
+ bl sub_8034CC8
+ b _0802143E
+_08021436:
+ movs r0, 0
+ strb r0, [r5, 0xC]
+ movs r0, 0x1
+ b _08021446
+_0802143E:
+ ldrb r0, [r5, 0xC]
+ adds r0, 0x1
+ strb r0, [r5, 0xC]
+_08021444:
+ movs r0, 0
+_08021446:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802130C
+
+ thumb_func_start sub_8021450
+sub_8021450: @ 8021450
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gSpriteCoordOffsetY
+ ldrh r1, [r4, 0x2C]
+ ldrh r2, [r4, 0x2A]
+ adds r1, r2
+ strh r1, [r0]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x16
+ bl SetGpuReg
+ ldrh r0, [r4, 0x12]
+ cmp r0, 0x7
+ bne _0802147C
+ movs r1, 0x9C
+ lsls r1, 1
+ adds r0, r4, r1
+ ldrh r1, [r4, 0x28]
+ bl sub_8022524
+_0802147C:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8021450
+
+ thumb_func_start sub_8021488
+sub_8021488: @ 8021488
+ movs r1, 0
+ ldr r2, =0x0000ff98
+ strh r2, [r0, 0x2A]
+ strh r1, [r0, 0x2C]
+ ldr r0, =gSpriteCoordOffsetX
+ strh r1, [r0]
+ ldr r0, =gSpriteCoordOffsetY
+ strh r2, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_8021488
+
+ thumb_func_start sub_80214A8
+sub_80214A8: @ 80214A8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r10, r0
+ str r1, [sp]
+ movs r0, 0
+ mov r9, r0
+ mov r1, r10
+ ldrb r1, [r1, 0x9]
+ cmp r9, r1
+ bcc _080214C6
+ b _080215E4
+_080214C6:
+ ldr r1, =gUnknown_082F41E8
+ mov r2, r9
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r2, [r0]
+ mov r1, r9
+ lsls r0, r1, 5
+ add r0, r10
+ adds r0, 0xA4
+ ldrh r3, [r0]
+ adds r3, 0x85
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r0, =gUnknown_082F436C
+ adds r1, r2, 0
+ bl AddCustomItemIconSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r9
+ lsls r3, r2, 2
+ ldr r1, [sp]
+ adds r1, 0x38
+ adds r6, r1, r3
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =gSprites
+ adds r1, r0
+ str r1, [r6]
+ ldrb r0, [r1, 0x5]
+ movs r2, 0xC
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ ldr r2, [r6]
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, [r6]
+ ldr r0, [sp]
+ adds r0, 0xC
+ adds r0, r3
+ mov r8, r0
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x8]
+ adds r0, 0x78
+ strh r0, [r1, 0x20]
+ ldr r1, [r6]
+ ldr r0, =0x0000fff0
+ strh r0, [r1, 0x22]
+ ldr r3, [r6]
+ adds r5, r3, 0
+ adds r5, 0x2E
+ movs r0, 0x80
+ lsls r0, 2
+ strh r0, [r5, 0x2]
+ movs r0, 0x20
+ strh r0, [r5, 0x4]
+ movs r0, 0x70
+ strh r0, [r5, 0xE]
+ mov r2, r8
+ ldr r1, [r2]
+ ldrh r0, [r1, 0xA]
+ ldrh r1, [r1, 0x8]
+ subs r0, r1
+ lsls r0, 16
+ asrs r1, r0, 16
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _08021558
+ adds r0, r1, 0x3
+_08021558:
+ asrs r0, 2
+ strh r0, [r5, 0xC]
+ lsls r0, r1, 23
+ lsrs r7, r0, 16
+ movs r2, 0x80
+ lsls r2, 2
+ adds r2, 0x20
+ lsrs r2, 1
+ movs r0, 0x7
+ movs r1, 0xFE
+ lsls r1, 6
+ str r3, [sp, 0x4]
+ bl sub_81515D4
+ adds r4, r0, 0
+ ldr r0, [r6]
+ ldrh r0, [r0, 0x20]
+ lsls r0, 7
+ ldr r3, [sp, 0x4]
+ strh r0, [r3, 0x2E]
+ lsls r1, r7, 16
+ asrs r1, 16
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0x7
+ adds r2, r4, 0
+ bl sub_81515D4
+ strh r0, [r5, 0x6]
+ movs r0, 0x7
+ adds r1, r4, 0
+ movs r2, 0x55
+ bl sub_8151550
+ adds r2, r0, 0
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ lsls r2, 16
+ asrs r2, 16
+ movs r0, 0x7
+ movs r1, 0xFE
+ lsls r1, 6
+ bl sub_81515D4
+ strh r0, [r5, 0xA]
+ ldrh r0, [r5, 0xE]
+ ldr r2, =0xffff8000
+ adds r1, r2, 0
+ orrs r0, r1
+ strh r0, [r5, 0xE]
+ mov r1, r8
+ ldr r0, [r1]
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bge _080215D0
+ ldr r0, [r6]
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080215D0:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ mov r0, r10
+ ldrb r0, [r0, 0x9]
+ cmp r9, r0
+ bcs _080215E4
+ b _080214C6
+_080215E4:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80214A8
+
+ thumb_func_start sub_8021608
+sub_8021608: @ 8021608
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r5, 0
+ adds r4, 0x2E
+ ldrh r0, [r4, 0x4]
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r2, [r5, 0x26]
+ adds r0, r2
+ strh r0, [r5, 0x26]
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ movs r6, 0x80
+ lsls r6, 8
+ ands r0, r6
+ cmp r0, 0
+ beq _0802166E
+ ldrh r0, [r4, 0x6]
+ ldrh r2, [r5, 0x2E]
+ adds r0, r2
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x8]
+ adds r0, r1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 23
+ movs r2, 0xC
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r5, 0x24]
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ ands r0, r6
+ cmp r0, 0
+ beq _0802166E
+ ldrh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 23
+ cmp r0, 0x7E
+ ble _0802166E
+ movs r0, 0
+ strh r0, [r5, 0x24]
+ ldrh r1, [r4, 0xE]
+ ldr r0, =0x00007fff
+ ands r0, r1
+ strh r0, [r4, 0xE]
+_0802166E:
+ ldrh r0, [r4]
+ lsls r0, 16
+ asrs r0, 23
+ strh r0, [r5, 0x20]
+ movs r2, 0x22
+ ldrsh r1, [r5, r2]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ ldrh r2, [r4, 0xE]
+ ldr r0, =0x00007fff
+ ands r0, r2
+ cmp r1, r0
+ blt _0802169A
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r5, 0x1C]
+ adds r0, r5, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r5, 0
+ bl DestroySprite
+_0802169A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8021608
+
+ thumb_func_start sub_80216A8
+sub_80216A8: @ 80216A8
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ movs r5, 0
+ ldrb r0, [r6, 0x9]
+ cmp r5, r0
+ bcs _080216D4
+ ldr r7, =gUnknown_082F41E8
+_080216B6:
+ lsls r0, r5, 1
+ adds r0, r7
+ ldrh r4, [r0]
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r6, 0x9]
+ cmp r5, r0
+ bcc _080216B6
+_080216D4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80216A8
+
+ thumb_func_start sub_80216E0
+sub_80216E0: @ 80216E0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ adds r6, r0, 0
+ str r1, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ movs r1, 0x4E
+ adds r1, r6
+ mov r10, r1
+ mov r9, r0
+ ldrb r2, [r6, 0x9]
+ cmp r0, r2
+ bcs _080217AE
+ ldr r7, =gUnknown_082F41CC
+_08021704:
+ mov r3, r10
+ ldrh r0, [r3, 0xA]
+ mov r4, r9
+ lsls r1, r4, 1
+ add r1, r9
+ asrs r0, r1
+ lsls r0, 16
+ movs r1, 0xE0
+ lsls r1, 11
+ ands r1, r0
+ lsrs r1, 16
+ mov r8, r1
+ cmp r1, 0
+ beq _0802179E
+ ldr r0, [sp, 0x4]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08021748
+ lsls r4, 2
+ ldr r5, [sp]
+ adds r5, 0x24
+ adds r0, r5, r4
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ b _0802175A
+ .pool
+_08021748:
+ mov r0, r9
+ lsls r4, r0, 2
+ ldr r5, [sp]
+ adds r5, 0x24
+ adds r0, r5, r4
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAnim
+_0802175A:
+ adds r3, r5, r4
+ ldr r2, [r3]
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r4, 0x5
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r2, [r3]
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ subs r4, 0x3C
+ adds r1, r4, 0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r2, [r3]
+ movs r0, 0x3
+ mov r1, r8
+ ands r1, r0
+ mov r8, r1
+ subs r1, 0x1
+ lsls r1, 1
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r2, 0x24]
+ ldr r2, [r3]
+ ldr r3, =gUnknown_082F41CC+1
+ adds r1, r3
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ strh r0, [r2, 0x26]
+_0802179E:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldrb r4, [r6, 0x9]
+ cmp r9, r4
+ bcc _08021704
+_080217AE:
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ bne _080217C0
+ adds r2, r6, 0
+ adds r2, 0x25
+ ldrb r1, [r2]
+ b _0802189C
+ .pool
+_080217C0:
+ ldrh r0, [r6, 0x28]
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r1, r8
+ str r1, [sp, 0x8]
+ movs r2, 0
+ mov r9, r2
+ mov r3, r10
+ ldrh r1, [r3, 0xC]
+ lsls r0, r1, 1
+ adds r0, 0x3
+ adds r6, 0x25
+ str r6, [sp, 0xC]
+ adds r3, r1, 0
+ cmp r9, r0
+ bge _08021890
+_080217E8:
+ mov r4, r9
+ lsls r1, r4, 2
+ ldr r0, [sp]
+ adds r0, 0x4C
+ adds r7, r0, r1
+ ldr r2, [r7]
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0802187E
+ ldr r0, =sub_8022B28
+ str r0, [r2, 0x1C]
+ lsls r1, r4, 1
+ ldr r3, =gUnknown_082F41CC+6
+ adds r0, r1, r3
+ movs r4, 0
+ ldrsb r4, [r0, r4]
+ adds r0, r4, 0
+ adds r0, 0x78
+ strh r0, [r2, 0x20]
+ ldr r2, [r7]
+ ldr r0, =gUnknown_082F41CC+7
+ adds r1, r0
+ movs r6, 0
+ ldrsb r6, [r1, r6]
+ mov r1, r8
+ lsls r0, r1, 2
+ subs r0, 0x88
+ subs r0, r6, r0
+ strh r0, [r2, 0x22]
+ ldr r5, [r7]
+ ldr r2, [sp, 0x8]
+ lsls r1, r2, 2
+ adds r0, r4, 0
+ bl __divsi3
+ adds r4, r0
+ strh r4, [r5, 0x24]
+ ldr r0, [r7]
+ strh r6, [r0, 0x26]
+ mov r3, r10
+ ldrb r1, [r3, 0x4]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08021860
+ ldr r0, [r7]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ b _08021868
+ .pool
+_08021860:
+ ldr r0, [r7]
+ movs r1, 0
+ bl StartSpriteAnim
+_08021868:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ mov r4, r10
+ ldrh r3, [r4, 0xC]
+ cmp r0, 0x3
+ bls _0802187E
+ movs r0, 0
+ mov r8, r0
+_0802187E:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r0, r3, 1
+ adds r0, 0x3
+ cmp r9, r0
+ blt _080217E8
+_08021890:
+ ldr r2, [sp, 0xC]
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080218A6
+_0802189C:
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ b _080218C4
+_080218A6:
+ ldr r3, [sp, 0x4]
+ cmp r3, 0x1
+ bne _080218B4
+ movs r0, 0x4E
+ bl PlaySE
+ b _080218BA
+_080218B4:
+ movs r0, 0x4D
+ bl PlaySE
+_080218BA:
+ ldr r4, [sp, 0xC]
+ ldrb r0, [r4]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4]
+_080218C4:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80216E0
+
+ thumb_func_start sub_80218D4
+sub_80218D4: @ 80218D4
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ movs r2, 0
+ ldrb r0, [r5, 0x9]
+ cmp r2, r0
+ bcs _08021906
+ adds r4, r6, 0
+ adds r4, 0x24
+ movs r7, 0x4
+ adds r3, r0, 0
+_080218EA:
+ lsls r0, r2, 2
+ adds r0, r4, r0
+ ldr r0, [r0]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08021920
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r3
+ bcc _080218EA
+_08021906:
+ movs r2, 0
+ adds r3, r6, 0
+ adds r3, 0x4C
+ movs r4, 0x4
+_0802190E:
+ lsls r0, r2, 2
+ adds r0, r3, r0
+ ldr r0, [r0]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08021924
+_08021920:
+ movs r0, 0
+ b _0802193C
+_08021924:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xA
+ bls _0802190E
+ movs r1, 0x2C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _0802193A
+ movs r0, 0
+ strh r0, [r5, 0x2C]
+_0802193A:
+ movs r0, 0x1
+_0802193C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80218D4
+
+ thumb_func_start sub_8021944
+sub_8021944: @ 8021944
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ lsls r4, r1, 16
+ lsrs r4, 16
+ movs r7, 0
+ movs r5, 0xE1
+ lsls r5, 4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl __udivsi3
+ strh r0, [r6, 0x4]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3C
+ bl __udivsi3
+ strh r0, [r6, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x3C
+ bl __umodsi3
+ lsls r0, 24
+ asrs r0, 16
+ movs r1, 0x4
+ bl sub_8151534
+ adds r2, r7, 0
+ lsls r0, 16
+ asrs r3, r0, 16
+ movs r0, 0x7
+ mov r12, r0
+ ldr r5, =gUnknown_082F334C
+ movs r4, 0x1
+_08021990:
+ mov r0, r12
+ subs r1, r0, r2
+ adds r0, r3, 0
+ asrs r0, r1
+ ands r0, r4
+ cmp r0, 0
+ beq _080219A6
+ lsls r0, r2, 2
+ adds r0, r5
+ ldr r0, [r0]
+ adds r7, r0
+_080219A6:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _08021990
+ ldr r1, =0x000f4240
+ adds r0, r7, 0
+ bl __udivsi3
+ strh r0, [r6, 0x8]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8021944
+
+ thumb_func_start sub_80219C8
+sub_80219C8: @ 80219C8
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0xC
+ adds r6, r0, 0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ mov r8, r3
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x2
+ mov r1, r8
+ bl GetStringWidth
+ lsls r4, 2
+ lsrs r0, 1
+ subs r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r5, 1
+ adds r0, r5
+ ldr r1, =gUnknown_082F32D8
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ mov r0, r8
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ movs r3, 0
+ bl box_print
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80219C8
+
+ thumb_func_start sub_8021A28
+sub_8021A28: @ 8021A28
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ str r0, [sp, 0xC]
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x10]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x14]
+ lsls r3, 24
+ movs r0, 0
+ str r0, [sp, 0x18]
+ movs r1, 0
+ str r1, [sp, 0x1C]
+ ldr r2, [sp, 0xC]
+ adds r2, 0x68
+ str r2, [sp, 0x20]
+ movs r4, 0xF0
+ lsls r4, 24
+ adds r3, r4
+ lsrs r3, 24
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x2
+ bne _08021A68
+ adds r0, r3, 0
+ subs r0, 0x2A
+ lsls r0, 24
+ lsrs r3, r0, 24
+_08021A68:
+ ldr r2, [sp, 0xC]
+ ldrb r1, [r2, 0x9]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 1
+ subs r6, r3, r0
+ cmp r6, 0
+ ble _08021A84
+ lsrs r0, r6, 31
+ adds r0, r6, r0
+ asrs r0, 1
+ adds r6, r0, 0
+ adds r6, 0x10
+ b _08021A86
+_08021A84:
+ movs r6, 0x10
+_08021A86:
+ movs r5, 0
+ ldr r3, [sp, 0xC]
+ ldrb r3, [r3, 0x9]
+ cmp r5, r3
+ bcc _08021A92
+ b _08021D14
+_08021A92:
+ ldr r4, [sp, 0x10]
+ lsls r4, 2
+ str r4, [sp, 0x24]
+_08021A98:
+ bl UnkTextUtil_Reset
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x1
+ beq _08021B48
+ cmp r0, 0x1
+ bgt _08021AC0
+ cmp r0, 0
+ beq _08021ADE
+ ldr r4, [sp, 0x14]
+ subs r4, 0x4
+ lsls r1, r6, 24
+ mov r10, r1
+ ldr r2, [sp, 0x1C]
+ adds r2, 0xA2
+ mov r9, r2
+ ldr r3, [sp, 0x18]
+ lsls r3, 5
+ mov r8, r3
+ b _08021C5A
+_08021AC0:
+ ldr r4, [sp, 0x10]
+ cmp r4, 0x2
+ bne _08021AC8
+ b _08021C1C
+_08021AC8:
+ ldr r4, [sp, 0x14]
+ subs r4, 0x4
+ lsls r0, r6, 24
+ mov r10, r0
+ ldr r1, [sp, 0x1C]
+ adds r1, 0xA2
+ mov r9, r1
+ ldr r2, [sp, 0x18]
+ lsls r2, 5
+ mov r8, r2
+ b _08021C5A
+_08021ADE:
+ ldr r0, [sp, 0x20]
+ adds r0, 0x20
+ adds r0, r5
+ ldrb r0, [r0]
+ str r0, [sp, 0x18]
+ lsls r3, r5, 1
+ ldr r2, [sp, 0x20]
+ adds r2, 0xC
+ cmp r5, 0
+ beq _08021B04
+ adds r0, r2, r3
+ subs r1, r5, 0x1
+ lsls r1, 1
+ adds r1, r2, r1
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _08021B04
+ str r5, [sp, 0x1C]
+_08021B04:
+ ldr r4, [sp, 0x24]
+ ldr r1, [sp, 0x10]
+ adds r0, r4, r1
+ lsls r0, 1
+ adds r0, r3, r0
+ adds r0, r2, r0
+ ldrh r1, [r0]
+ ldr r0, =gStringVar4
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r0, =gUnknown_082F43B4
+ adds r0, r4, r0
+ ldr r1, [r0]
+ ldr r0, =gStringVar4
+ bl StringAppend
+ ldr r4, [sp, 0x14]
+ subs r4, 0x4
+ lsls r2, r6, 24
+ mov r10, r2
+ ldr r3, [sp, 0x1C]
+ adds r3, 0xA2
+ mov r9, r3
+ ldr r0, [sp, 0x18]
+ lsls r0, 5
+ mov r8, r0
+ b _08021C5A
+ .pool
+_08021B48:
+ ldr r1, [sp, 0x20]
+ adds r0, r1, r5
+ adds r0, 0x28
+ ldrb r0, [r0]
+ str r0, [sp, 0x18]
+ lsls r3, r5, 1
+ adds r2, r1, 0
+ adds r2, 0xC
+ cmp r5, 0
+ beq _08021B72
+ adds r0, r3, 0
+ adds r0, 0xA
+ adds r0, r2, r0
+ adds r1, r3, 0
+ adds r1, 0x8
+ adds r1, r2, r1
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _08021B72
+ str r5, [sp, 0x1C]
+_08021B72:
+ ldr r0, [sp, 0x24]
+ ldr r1, [sp, 0x10]
+ adds r4, r0, r1
+ lsls r4, 1
+ adds r4, r3, r4
+ adds r4, r2, r4
+ ldrh r1, [r4]
+ lsrs r1, 4
+ ldr r0, =gStringVar1
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ movs r7, 0
+ ldrb r0, [r4]
+ movs r3, 0xF
+ ands r3, r0
+ movs r2, 0
+ ldr r4, [sp, 0x10]
+ lsls r4, 2
+ str r4, [sp, 0x28]
+ ldr r4, [sp, 0x14]
+ subs r4, 0x4
+ lsls r0, r6, 24
+ mov r10, r0
+ ldr r1, [sp, 0x1C]
+ adds r1, 0xA2
+ mov r9, r1
+ ldr r0, [sp, 0x18]
+ lsls r0, 5
+ mov r8, r0
+ adds r6, 0xE
+ adds r5, 0x1
+ ldr r1, =gUnknown_082F334C
+ mov r12, r1
+_08021BB8:
+ movs r0, 0x3
+ subs r1, r0, r2
+ adds r0, r3, 0
+ asrs r0, r1
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08021BD0
+ lsls r0, r2, 2
+ add r0, r12
+ ldr r0, [r0]
+ adds r7, r0
+_08021BD0:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _08021BB8
+ adds r0, r7, 0
+ ldr r1, =0x000f4240
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, =gStringVar2
+ adds r1, r3, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, =gUnknown_082F43B4
+ ldr r2, [sp, 0x28]
+ adds r0, r2, r0
+ ldr r1, [r0]
+ ldr r0, =gStringVar4
+ bl StringExpandPlaceholders
+ b _08021C5E
+ .pool
+_08021C1C:
+ str r5, [sp, 0x18]
+ str r5, [sp, 0x1C]
+ lsls r7, r5, 5
+ ldr r3, [sp, 0xC]
+ adds r0, r3, r7
+ adds r0, 0xA4
+ ldrb r2, [r0]
+ cmp r2, 0x2B
+ bls _08021C30
+ movs r2, 0
+_08021C30:
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ ldr r0, =gBerries
+ adds r1, r0
+ ldr r0, =gStringVar1
+ bl StringCopy
+ ldr r0, =gUnknown_082F43B4
+ ldr r1, [r0, 0x8]
+ ldr r0, =gStringVar4
+ bl StringExpandPlaceholders
+ ldr r4, [sp, 0x14]
+ subs r4, 0x4
+ lsls r0, r6, 24
+ mov r10, r0
+ movs r1, 0xA2
+ adds r1, r5
+ mov r9, r1
+ mov r8, r7
+_08021C5A:
+ adds r6, 0xE
+ adds r5, 0x1
+_08021C5E:
+ movs r0, 0x2
+ ldr r1, =gStringVar4
+ adds r2, r4, 0
+ bl GetStringRightAlignXOffset
+ adds r2, r0, 0
+ ldr r3, [sp, 0xC]
+ movs r4, 0xDD
+ lsls r4, 1
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r1, r10
+ lsrs r3, r1, 24
+ ldr r1, =gUnknown_082F32D8
+ str r1, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r1, =gStringVar4
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ bl box_print
+ ldr r3, [sp, 0x18]
+ ldr r2, [sp, 0xC]
+ ldrb r2, [r2, 0x8]
+ cmp r3, r2
+ bne _08021CC0
+ ldr r0, =gStringVar3
+ ldr r1, =gText_1DotBlueF700
+ bl StringCopy
+ b _08021CC8
+ .pool
+_08021CC0:
+ ldr r0, =gStringVar3
+ ldr r1, =gText_1DotF700
+ bl StringCopy
+_08021CC8:
+ ldr r4, =gStringVar3
+ mov r3, r9
+ strb r3, [r4]
+ mov r1, r8
+ adds r1, 0x98
+ ldr r0, [sp, 0xC]
+ adds r1, r0, r1
+ movs r0, 0
+ bl UnkTextUtil_SetPtrI
+ ldr r0, =gStringVar4
+ adds r1, r4, 0
+ bl UnkTextUtil_StringExpandPlaceholders
+ ldr r1, [sp, 0xC]
+ movs r2, 0xDD
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ mov r4, r10
+ lsrs r3, r4, 24
+ ldr r1, =gUnknown_082F32D8
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r2, =gStringVar4
+ str r2, [sp, 0x8]
+ movs r1, 0x2
+ movs r2, 0x4
+ bl box_print
+ lsls r0, r5, 24
+ lsrs r5, r0, 24
+ ldr r3, [sp, 0xC]
+ ldrb r3, [r3, 0x9]
+ cmp r5, r3
+ bcs _08021D14
+ b _08021A98
+_08021D14:
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8021A28
+
+ thumb_func_start sub_8021D34
+sub_8021D34: @ 8021D34
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ mov r8, r0
+ movs r0, 0
+ mov r10, r0
+ movs r6, 0
+ movs r1, 0
+ str r1, [sp, 0xC]
+ mov r2, r8
+ adds r2, 0x68
+ str r2, [sp, 0x10]
+ movs r4, 0xDD
+ lsls r4, 1
+ add r4, r8
+ mov r9, r4
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl GetWindowAttribute
+ lsls r0, 27
+ movs r1, 0xD6
+ lsls r1, 24
+ adds r0, r1
+ lsrs r7, r0, 24
+ movs r0, 0x9C
+ lsls r0, 1
+ add r0, r8
+ ldr r2, [sp, 0x10]
+ ldrh r1, [r2, 0x4]
+ bl sub_8021944
+ ldrb r0, [r4]
+ ldr r4, =gUnknown_082F32D8
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ ldr r1, =gText_TimeColon
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ movs r2, 0
+ adds r3, r7, 0
+ bl box_print
+ ldr r4, =gText_SpaceSec
+ movs r0, 0x2
+ adds r1, r4, 0
+ movs r2, 0x1
+ negs r2, r2
+ bl GetStringWidth
+ movs r1, 0xB0
+ subs r0, r1, r0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r2, r9
+ ldrb r0, [r2]
+ ldr r1, =gUnknown_082F32D8
+ str r1, [sp]
+ mov r2, r10
+ str r2, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x2
+ adds r2, r6, 0
+ adds r3, r7, 0
+ bl box_print
+ movs r0, 0x9F
+ lsls r0, 1
+ add r0, r8
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+ ldr r0, =gStringVar1
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, =gStringVar2
+ movs r1, 0xA0
+ lsls r1, 1
+ add r1, r8
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r5, =gStringVar4
+ ldr r1, =gText_XDotY2
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ movs r0, 0x2
+ adds r1, r5, 0
+ movs r2, 0x1
+ negs r2, r2
+ bl GetStringWidth
+ subs r0, r6, r0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r4, r9
+ ldrb r0, [r4]
+ ldr r1, =gUnknown_082F32D8
+ str r1, [sp]
+ mov r2, r10
+ str r2, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r1, 0x2
+ adds r2, r6, 0
+ adds r3, r7, 0
+ bl box_print
+ ldr r4, =gText_SpaceMin
+ movs r0, 0x2
+ adds r1, r4, 0
+ movs r2, 0x1
+ negs r2, r2
+ bl GetStringWidth
+ subs r0, r6, r0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r2, =gUnknown_082F32D8
+ str r2, [sp]
+ mov r1, r10
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x2
+ adds r2, r6, 0
+ adds r3, r7, 0
+ bl box_print
+ movs r0, 0x9E
+ lsls r0, 1
+ add r0, r8
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r0, =gStringVar1
+ movs r2, 0x2
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ ldr r1, =gText_StrVar1
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ movs r0, 0x2
+ adds r1, r5, 0
+ movs r2, 0x1
+ negs r2, r2
+ bl GetStringWidth
+ subs r0, r6, r0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r4, r9
+ ldrb r0, [r4]
+ ldr r1, =gUnknown_082F32D8
+ str r1, [sp]
+ mov r2, r10
+ str r2, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r1, 0x2
+ adds r2, r6, 0
+ adds r3, r7, 0
+ bl box_print
+ adds r0, r7, 0
+ adds r0, 0xE
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r4]
+ ldr r4, =gUnknown_082F32D8
+ str r4, [sp]
+ mov r1, r10
+ str r1, [sp, 0x4]
+ ldr r1, =gText_PressingSpeed
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ movs r2, 0
+ adds r3, r7, 0
+ bl box_print
+ ldr r4, =gText_TimesPerSec
+ movs r0, 0x2
+ adds r1, r4, 0
+ movs r2, 0x1
+ negs r2, r2
+ bl GetStringWidth
+ movs r2, 0xB0
+ subs r0, r2, r0
+ lsls r0, 24
+ str r0, [sp, 0x18]
+ lsrs r6, r0, 24
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r2, =gUnknown_082F32D8
+ str r2, [sp]
+ mov r1, r10
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x2
+ adds r2, r6, 0
+ adds r3, r7, 0
+ bl box_print
+ mov r4, r8
+ ldrb r2, [r4, 0x16]
+ ldrh r0, [r4, 0x16]
+ mov r12, r0
+ movs r1, 0x7
+ mov r9, r1
+ movs r5, 0x1
+ ldr r3, =gUnknown_082F334C
+_08021EEC:
+ mov r4, r9
+ mov r0, r10
+ subs r1, r4, r0
+ adds r0, r2, 0
+ asrs r0, r1
+ ands r0, r5
+ cmp r0, 0
+ beq _08021F0A
+ mov r1, r10
+ lsls r0, r1, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ldr r4, [sp, 0xC]
+ adds r4, r0
+ str r4, [sp, 0xC]
+_08021F0A:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ cmp r0, 0x7
+ bls _08021EEC
+ ldr r0, =gStringVar1
+ mov r2, r12
+ lsrs r1, r2, 8
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar2
+ ldr r1, =0x000f4240
+ ldr r0, [sp, 0xC]
+ bl __udivsi3
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar4
+ ldr r1, =gText_XDotY3
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x2
+ adds r1, r4, 0
+ bl GetStringWidth
+ subs r0, r6, r0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r0, r8
+ adds r0, 0x25
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _08021FC4
+ movs r0, 0xDD
+ lsls r0, 1
+ add r0, r8
+ ldrb r0, [r0]
+ ldr r1, =gUnknown_082F32E7
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x2
+ adds r2, r6, 0
+ adds r3, r7, 0
+ bl box_print
+ b _08021FDE
+ .pool
+_08021FC4:
+ movs r0, 0xDD
+ lsls r0, 1
+ add r0, r8
+ ldrb r0, [r0]
+ ldr r1, =gUnknown_082F32D8
+ str r1, [sp]
+ str r2, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x2
+ adds r2, r6, 0
+ adds r3, r7, 0
+ bl box_print
+_08021FDE:
+ adds r0, r7, 0
+ adds r0, 0xE
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r4, 0xDD
+ lsls r4, 1
+ add r8, r4
+ mov r1, r8
+ ldrb r0, [r1]
+ ldr r2, =gUnknown_082F32D8
+ mov r9, r2
+ str r2, [sp]
+ movs r5, 0
+ str r5, [sp, 0x4]
+ ldr r1, =gText_Silkiness
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ movs r2, 0
+ adds r3, r7, 0
+ bl box_print
+ ldr r0, =gStringVar1
+ ldr r4, [sp, 0x10]
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar4
+ ldr r1, =gText_Var1Percent
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x2
+ adds r1, r4, 0
+ bl GetStringWidth
+ movs r1, 0xB0
+ subs r1, r0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ mov r1, r8
+ ldrb r0, [r1]
+ mov r2, r9
+ str r2, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x2
+ adds r2, r6, 0
+ adds r3, r7, 0
+ bl box_print
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8021D34
+
+ thumb_func_start sub_8022070
+sub_8022070: @ 8022070
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r0, r6, 0
+ adds r0, 0x80
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bls _08022084
+ b _08022218
+_08022084:
+ lsls r0, 2
+ ldr r1, =_08022094
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08022094:
+ .4byte _080220AC
+ .4byte _080220F8
+ .4byte _0802210C
+ .4byte _08022130
+ .4byte _080221F8
+ .4byte _08022200
+_080220AC:
+ ldrb r0, [r4, 0x9]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r6, 0
+ bl sub_8022554
+ ldrh r0, [r4, 0x12]
+ lsls r0, 3
+ ldr r2, =gUnknown_082F32CC
+ mov r1, sp
+ adds r0, r2
+ ldm r0!, {r2,r3}
+ stm r1!, {r2,r3}
+ ldrh r0, [r4, 0x12]
+ cmp r0, 0xD
+ bne _080220DC
+ ldr r0, =gUnknown_082F3344
+ adds r0, 0x4
+ b _080220DE
+ .pool
+_080220DC:
+ ldr r0, =gUnknown_082F3344
+_080220DE:
+ adds r0, r5, r0
+ ldrb r1, [r0]
+ mov r0, sp
+ strb r1, [r0, 0x4]
+ mov r0, sp
+ bl AddWindow
+ adds r1, r6, 0
+ adds r1, 0x82
+ strb r0, [r1]
+ b _08022218
+ .pool
+_080220F8:
+ adds r4, r6, 0
+ adds r4, 0x82
+ ldrb r0, [r4]
+ bl PutWindowTilemap
+ ldrb r0, [r4]
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ b _08022218
+_0802210C:
+ adds r5, r6, 0
+ adds r5, 0x82
+ ldrb r0, [r5]
+ ldr r4, =0x0000021d
+ adds r1, r4, 0
+ movs r2, 0xD0
+ bl box_border_load_tiles_and_pal
+ ldrb r0, [r5]
+ movs r1, 0
+ adds r2, r4, 0
+ movs r3, 0xD
+ bl SetWindowBorderStyle
+ b _08022218
+ .pool
+_08022130:
+ ldrb r0, [r4, 0x9]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r4, 0x12]
+ cmp r0, 0xC
+ beq _08022184
+ cmp r0, 0xC
+ bgt _08022148
+ cmp r0, 0xB
+ beq _0802214E
+ b _08022218
+_08022148:
+ cmp r0, 0xD
+ beq _080221C8
+ b _08022218
+_0802214E:
+ adds r0, r6, 0
+ adds r0, 0x82
+ ldrb r0, [r0]
+ ldr r3, =gText_PressesRankings
+ movs r1, 0x14
+ movs r2, 0x3
+ bl sub_80219C8
+ ldr r0, =gUnknown_082F3344
+ adds r0, r5, r0
+ ldrb r3, [r0]
+ lsls r3, 27
+ lsrs r3, 24
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0xA0
+ bl sub_8021A28
+ adds r1, r6, 0
+ adds r1, 0x80
+ movs r0, 0x5
+ b _08022220
+ .pool
+_08022184:
+ adds r0, r6, 0
+ adds r0, 0x82
+ ldrb r0, [r0]
+ ldr r2, =gUnknown_082F43B4
+ adds r1, r4, 0
+ adds r1, 0x8F
+ ldrb r1, [r1]
+ adds r1, 0x3
+ lsls r1, 2
+ adds r1, r2
+ ldr r3, [r1]
+ movs r1, 0x14
+ movs r2, 0x4
+ bl sub_80219C8
+ ldr r0, =gUnknown_082F3344
+ adds r0, r5, r0
+ ldrb r3, [r0]
+ lsls r3, 27
+ lsrs r3, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0xA0
+ bl sub_8021A28
+ adds r1, r6, 0
+ adds r1, 0x80
+ movs r0, 0x5
+ b _08022220
+ .pool
+_080221C8:
+ adds r0, r6, 0
+ adds r0, 0x82
+ ldrb r0, [r0]
+ ldr r3, =gText_CrushingResults
+ movs r1, 0x16
+ movs r2, 0x3
+ bl sub_80219C8
+ ldr r0, =gUnknown_082F3344
+ adds r0, 0x4
+ adds r0, r5, r0
+ ldrb r3, [r0]
+ lsls r3, 27
+ lsrs r3, 24
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0xB0
+ bl sub_8021A28
+ b _08022218
+ .pool
+_080221F8:
+ adds r0, r4, 0
+ bl sub_8021D34
+ b _08022218
+_08022200:
+ adds r0, r6, 0
+ adds r0, 0x82
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ adds r1, r6, 0
+ adds r1, 0x80
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ b _08022224
+_08022218:
+ adds r1, r6, 0
+ adds r1, 0x80
+ ldrb r0, [r1]
+ adds r0, 0x1
+_08022220:
+ strb r0, [r1]
+ movs r0, 0
+_08022224:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8022070
+
+ thumb_func_start sub_802222C
+sub_802222C: @ 802222C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0xDD
+ lsls r0, 1
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8198070
+ ldrb r0, [r5]
+ bl RemoveWindow
+ adds r0, r4, 0
+ bl sub_8022600
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802222C
+
+ thumb_func_start sub_8022250
+sub_8022250: @ 8022250
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ mov r9, r0
+ movs r1, 0
+ str r1, [sp, 0xC]
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r6, r0, r1
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ beq _080222D0
+ cmp r0, 0x1
+ bgt _08022288
+ cmp r0, 0
+ beq _08022296
+ b _080224BA
+ .pool
+_08022288:
+ cmp r0, 0x2
+ bne _0802228E
+ b _08022480
+_0802228E:
+ cmp r0, 0x3
+ bne _08022294
+ b _08022494
+_08022294:
+ b _080224BA
+_08022296:
+ ldr r0, =gUnknown_082F32EC
+ bl AddWindow
+ strh r0, [r6, 0x2]
+ lsls r0, 24
+ lsrs r0, 24
+ bl PutWindowTilemap
+ ldrb r0, [r6, 0x2]
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldrb r0, [r6, 0x2]
+ ldr r4, =0x0000021d
+ adds r1, r4, 0
+ movs r2, 0xD0
+ bl box_border_load_tiles_and_pal
+ ldrb r0, [r6, 0x2]
+ movs r1, 0
+ adds r2, r4, 0
+ movs r3, 0xD
+ bl SetWindowBorderStyle
+ b _080224BA
+ .pool
+_080222D0:
+ ldr r0, =gText_BerryCrush2
+ mov r10, r0
+ movs r1, 0x1
+ negs r1, r1
+ mov r8, r1
+ movs r0, 0x1
+ mov r1, r10
+ mov r2, r8
+ bl GetStringWidth
+ lsrs r0, 1
+ movs r4, 0x60
+ subs r0, r4, r0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r6, 0x2]
+ ldr r5, =gUnknown_082F32E1
+ str r5, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ mov r1, r10
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r7, 0
+ movs r3, 0x1
+ bl box_print
+ ldr r0, =gText_PressingSpeedRankings
+ mov r10, r0
+ movs r0, 0x1
+ mov r1, r10
+ mov r2, r8
+ bl GetStringWidth
+ lsrs r0, 1
+ subs r4, r0
+ lsls r4, 24
+ lsrs r7, r4, 24
+ ldrb r0, [r6, 0x2]
+ str r5, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ mov r1, r10
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r7, 0
+ movs r3, 0x11
+ bl box_print
+ movs r0, 0x29
+ mov r10, r0
+_08022336:
+ mov r1, r9
+ adds r1, 0x2
+ ldr r0, =gStringVar1
+ movs r2, 0
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ ldr r0, =gStringVar4
+ ldr r1, =gText_Var1Players
+ bl StringExpandPlaceholders
+ ldrb r0, [r6, 0x2]
+ ldr r1, =gUnknown_082F32D8
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r1, =gStringVar4
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r2, 0
+ mov r3, r10
+ bl box_print
+ movs r0, 0x1
+ ldr r1, =gText_TimesPerSec
+ movs r2, 0x1
+ negs r2, r2
+ bl GetStringWidth
+ movs r1, 0xC0
+ subs r1, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldrb r0, [r6, 0x2]
+ ldr r1, =gUnknown_082F32D8
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r1, =gText_TimesPerSec
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r7, 0
+ mov r3, r10
+ bl box_print
+ movs r2, 0
+ mov r0, r9
+ lsls r4, r0, 1
+ mov r1, r10
+ adds r1, 0x10
+ str r1, [sp, 0x10]
+ movs r0, 0x1
+ add r9, r0
+ adds r0, r4, r6
+ ldrb r3, [r0, 0x4]
+ movs r1, 0x7
+ mov r12, r1
+ movs r0, 0x1
+ mov r8, r0
+ ldr r5, =gUnknown_082F334C
+_080223AE:
+ mov r0, r12
+ subs r1, r0, r2
+ adds r0, r3, 0
+ asrs r0, r1
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _080223CA
+ lsls r0, r2, 2
+ adds r0, r5
+ ldr r0, [r0]
+ ldr r1, [sp, 0xC]
+ adds r1, r0
+ str r1, [sp, 0xC]
+_080223CA:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _080223AE
+ adds r0, r4, r6
+ ldrh r1, [r0, 0x4]
+ lsrs r1, 8
+ ldr r0, =gStringVar1
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, [sp, 0xC]
+ ldr r1, =0x000f4240
+ bl __udivsi3
+ adds r1, r0, 0
+ ldr r0, =gStringVar2
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, =gStringVar4
+ ldr r1, =gText_XDotY3
+ bl StringExpandPlaceholders
+ movs r0, 0x1
+ ldr r1, =gStringVar4
+ movs r2, 0x1
+ negs r2, r2
+ bl GetStringWidth
+ subs r0, r7, r0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r6, 0x2]
+ ldr r1, =gUnknown_082F32D8
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r1, =gStringVar4
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r7, 0
+ mov r3, r10
+ bl box_print
+ ldr r1, [sp, 0x10]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ mov r10, r0
+ movs r0, 0
+ str r0, [sp, 0xC]
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r0, 0x3
+ bhi _08022444
+ b _08022336
+_08022444:
+ ldrb r0, [r6, 0x2]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ b _080224BA
+ .pool
+_08022480:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _080224BA
+ b _080224C0
+ .pool
+_08022494:
+ ldrb r0, [r6, 0x2]
+ movs r1, 0x1
+ bl sub_8198070
+ ldrb r0, [r6, 0x2]
+ bl ClearWindowTilemap
+ ldrb r0, [r6, 0x2]
+ bl RemoveWindow
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ bl ScriptContext2_Disable
+ mov r0, r9
+ b _080224BE
+_080224BA:
+ ldrh r0, [r6]
+ adds r0, 0x1
+_080224BE:
+ strh r0, [r6]
+_080224C0:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8022250
+
+ thumb_func_start sub_80224D0
+sub_80224D0: @ 80224D0
+ push {lr}
+ bl ScriptContext2_Enable
+ ldr r0, =sub_8022250
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ movs r3, 0xF6
+ lsls r3, 1
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1, 0xC]
+ adds r3, 0x2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1, 0xE]
+ adds r3, 0x2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1, 0x10]
+ adds r3, 0x2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1, 0x12]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80224D0
+
+ thumb_func_start sub_8022524
+sub_8022524: @ 8022524
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_8021944
+ movs r0, 0x4
+ ldrsh r1, [r4, r0]
+ movs r0, 0
+ bl sub_8035044
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ movs r0, 0x1
+ bl sub_8035044
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ movs r0, 0x2
+ bl sub_8035044
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8022524
+
+ thumb_func_start sub_8022554
+sub_8022554: @ 8022554
+ push {lr}
+ ldr r2, [r0, 0x78]
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r3, 0x4
+ orrs r1, r3
+ strb r1, [r2]
+ ldr r1, [r0, 0x7C]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r3
+ strb r0, [r1]
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_803547C
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_803547C
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_803547C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8022554
+
+ thumb_func_start sub_8022588
+sub_8022588: @ 8022588
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r6, 0
+ ldrb r0, [r5, 0x9]
+ cmp r6, r0
+ bcs _080225E8
+ ldr r7, =gUnknown_082F417C
+_08022596:
+ lsls r0, r6, 2
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r2, r5, r1
+ adds r2, r0
+ ldrb r1, [r5, 0x9]
+ subs r1, 0x2
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, r6, r0
+ adds r0, r7
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gUnknown_082F4190
+ adds r0, r1
+ str r0, [r2]
+ ldrb r0, [r0]
+ lsls r0, 3
+ ldr r1, =gUnknown_082F32F4
+ adds r0, r1
+ bl AddWindow
+ ldr r1, =0x000001bb
+ adds r4, r5, r1
+ adds r4, r6
+ strb r0, [r4]
+ ldrb r0, [r4]
+ bl PutWindowTilemap
+ ldrb r0, [r4]
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r5, 0x9]
+ cmp r6, r0
+ bcc _08022596
+_080225E8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8022588
+
+ thumb_func_start sub_8022600
+sub_8022600: @ 8022600
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ adds r6, r0, 0
+ movs r7, 0
+ ldrb r0, [r6, 0x9]
+ cmp r7, r0
+ bcs _080226B6
+ movs r1, 0
+ mov r8, r1
+_08022616:
+ ldr r1, =0x000001bb
+ adds r0, r6, r1
+ adds r5, r0, r7
+ ldrb r0, [r5]
+ bl PutWindowTilemap
+ ldrb r0, [r6, 0x8]
+ cmp r7, r0
+ bne _08022668
+ lsls r4, r7, 5
+ adds r4, 0x98
+ adds r4, r6, r4
+ movs r0, 0x2
+ adds r1, r4, 0
+ movs r2, 0
+ bl GetStringWidth
+ lsrs r0, 1
+ movs r2, 0x24
+ subs r2, r0
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r0, [r5]
+ mov r1, r8
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ ldr r1, =gUnknown_082F32DB
+ str r1, [sp, 0x8]
+ mov r1, r8
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x2
+ movs r3, 0x1
+ bl AddTextPrinterParameterized2
+ b _0802269C
+ .pool
+_08022668:
+ lsls r4, r7, 5
+ adds r4, 0x98
+ adds r4, r6, r4
+ movs r0, 0x2
+ adds r1, r4, 0
+ movs r2, 0
+ bl GetStringWidth
+ lsrs r0, 1
+ movs r2, 0x24
+ subs r2, r0
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r0, [r5]
+ mov r1, r8
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ ldr r1, =gUnknown_082F32DE
+ str r1, [sp, 0x8]
+ mov r1, r8
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x2
+ movs r3, 0x1
+ bl AddTextPrinterParameterized2
+_0802269C:
+ ldr r1, =0x000001bb
+ adds r0, r6, r1
+ adds r0, r7
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r6, 0x9]
+ cmp r7, r0
+ bcc _08022616
+_080226B6:
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8022600
+
+ thumb_func_start sub_80226D0
+sub_80226D0: @ 80226D0
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ movs r5, 0
+ ldr r0, =gUnknown_08DE3FD4
+ ldr r4, =0x0201c000
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ b _0802271A
+ .pool
+_080226EC:
+ lsls r1, r5, 2
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r6, r2
+ adds r0, r1
+ ldr r3, [r0]
+ ldrb r0, [r3]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4, r1
+ ldrb r2, [r3, 0x1]
+ ldrb r3, [r3, 0x2]
+ movs r0, 0xA
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ movs r0, 0x3
+ bl CopyToBgTilemapBufferRect
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0802271A:
+ ldrb r0, [r6, 0x9]
+ cmp r5, r0
+ bcc _080226EC
+ movs r0, 0x3
+ bl CopyBgTilemapBufferToVram
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80226D0
+
+ thumb_func_start sub_8022730
+sub_8022730: @ 8022730
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ movs r5, 0
+ ldr r0, =0x0000ff98
+ strh r0, [r6, 0x2A]
+ strh r5, [r6, 0x2C]
+ ldr r1, =gSpriteCoordOffsetX
+ strh r5, [r1]
+ ldr r1, =gSpriteCoordOffsetY
+ strh r0, [r1]
+ ldr r4, =gUnknown_082F41F4
+_08022746:
+ lsls r0, r5, 3
+ adds r0, r4
+ bl LoadCompressedObjectPic
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _08022746
+ ldr r0, =gUnknown_082F421C
+ bl LoadSpritePalettes
+ ldr r0, =gUnknown_082F430C
+ movs r1, 0x78
+ movs r2, 0x58
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r0, 0xAC
+ lsls r0, 1
+ adds r3, r6, r0
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ str r0, [r3]
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r1, [r3]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, [r3]
+ adds r1, 0x2C
+ ldrb r0, [r1]
+ movs r2, 0x40
+ orrs r0, r2
+ strb r0, [r1]
+ movs r5, 0
+ ldrb r1, [r6, 0x9]
+ cmp r5, r1
+ bcs _08022822
+ movs r7, 0x4
+_080227AA:
+ lsls r4, r5, 2
+ movs r3, 0xA2
+ lsls r3, 1
+ adds r0, r6, r3
+ adds r0, r4
+ ldr r0, [r0]
+ ldrh r1, [r0, 0x4]
+ adds r1, 0x78
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r2, [r0, 0x6]
+ adds r2, 0x20
+ lsls r2, 16
+ asrs r2, 16
+ ldr r0, =gUnknown_082F4324
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r0, 0xAE
+ lsls r0, 1
+ adds r3, r6, r0
+ adds r3, r4
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r0, =gSprites
+ adds r1, r0
+ str r1, [r3]
+ ldrb r0, [r1, 0x5]
+ movs r4, 0xD
+ negs r4, r4
+ adds r2, r4, 0
+ ands r0, r2
+ orrs r0, r7
+ strb r0, [r1, 0x5]
+ ldr r1, [r3]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r7
+ strb r0, [r1]
+ ldr r2, [r3]
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r2, [r3]
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r6, 0x9]
+ cmp r5, r0
+ bcc _080227AA
+_08022822:
+ movs r5, 0
+ ldr r4, =gUnknown_082F41CC+6
+ adds r7, r4, 0x1
+_08022828:
+ lsls r2, r5, 1
+ adds r0, r2, r4
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ adds r1, 0x78
+ adds r2, r7
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ adds r2, 0x88
+ ldr r0, =gUnknown_082F433C
+ movs r3, 0x6
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r5, 2
+ movs r1, 0xC2
+ lsls r1, 1
+ adds r3, r6, r1
+ adds r3, r0
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ str r0, [r3]
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r2, [r3]
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r2, [r3]
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, [r3]
+ strh r5, [r0, 0x2E]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xA
+ bls _08022828
+ movs r5, 0
+_0802288E:
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 19
+ movs r3, 0xB0
+ lsls r3, 16
+ adds r1, r3
+ asrs r1, 16
+ ldr r0, =gUnknown_082F4354
+ movs r2, 0x8
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r5, 2
+ movs r4, 0xD8
+ lsls r4, 1
+ adds r3, r6, r4
+ adds r3, r0
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ str r0, [r3]
+ ldrb r1, [r0, 0x5]
+ movs r4, 0xD
+ negs r4, r4
+ adds r2, r4, 0
+ ands r1, r2
+ strb r1, [r0, 0x5]
+ ldr r2, [r3]
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ adds r4, 0x8
+ adds r1, r4, 0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r2, [r3]
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r3, 0x41
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bls _0802288E
+ ldr r4, =gUnknown_082F4384
+ movs r0, 0
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_8034D14
+ adds r2, r4, 0
+ adds r2, 0x10
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_8034D14
+ adds r4, 0x20
+ movs r0, 0x2
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_8034D14
+ ldrh r0, [r6, 0x12]
+ cmp r0, 0x1
+ bne _08022928
+ movs r4, 0x9C
+ lsls r4, 1
+ adds r0, r6, r4
+ bl sub_8022554
+_08022928:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8022730
+
+ thumb_func_start sub_8022960
+sub_8022960: @ 8022960
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r4, 0
+ movs r0, 0x4
+ bl FreeSpriteTilesByTag
+ movs r0, 0x3
+ bl FreeSpriteTilesByTag
+ movs r0, 0x2
+ bl FreeSpriteTilesByTag
+ movs r0, 0x1
+ bl FreeSpriteTilesByTag
+ movs r0, 0x4
+ bl FreeSpritePaletteByTag
+ movs r0, 0x2
+ bl FreeSpritePaletteByTag
+ movs r0, 0x1
+ bl FreeSpritePaletteByTag
+ movs r0, 0xD8
+ lsls r0, 1
+ adds r6, r5, r0
+_08022996:
+ lsls r0, r4, 2
+ adds r0, r6, r0
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _08022996
+ movs r0, 0x2
+ bl sub_80353DC
+ movs r0, 0x1
+ bl sub_80353DC
+ movs r0, 0
+ bl sub_80353DC
+ movs r4, 0
+ movs r1, 0xC2
+ lsls r1, 1
+ adds r6, r5, r1
+_080229C4:
+ lsls r0, r4, 2
+ adds r0, r6, r0
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xA
+ bls _080229C4
+ movs r4, 0
+ ldrb r2, [r5, 0x9]
+ cmp r4, r2
+ bcs _080229FC
+_080229E0:
+ lsls r1, r4, 2
+ movs r2, 0xAE
+ lsls r2, 1
+ adds r0, r5, r2
+ adds r0, r1
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r5, 0x9]
+ cmp r4, r0
+ bcc _080229E0
+_080229FC:
+ movs r1, 0xAC
+ lsls r1, 1
+ adds r0, r5, r1
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08022A18
+ adds r0, r2, 0
+ bl DestroySprite
+_08022A18:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8022960
+
+ thumb_func_start sub_8022A20
+sub_8022A20: @ 8022A20
+ push {lr}
+ adds r3, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08022A46
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ subs r2, 0x12
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+_08022A46:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8022A20
+
+ thumb_func_start sub_8022A4C
+sub_8022A4C: @ 8022A4C
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ movs r1, 0
+ ldr r5, =SpriteCallbackDummy
+ adds r2, r3, 0
+ adds r2, 0x2E
+ movs r4, 0
+_08022A5A:
+ lsls r0, r1, 1
+ adds r0, r2, r0
+ strh r4, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x7
+ bls _08022A5A
+ movs r0, 0
+ strh r0, [r3, 0x24]
+ strh r0, [r3, 0x26]
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ subs r2, 0x12
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ str r5, [r3, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8022A4C
+
+ thumb_func_start sub_8022A94
+sub_8022A94: @ 8022A94
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r5, 0
+ adds r4, 0x2E
+ ldrh r0, [r4, 0x4]
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r2, [r5, 0x26]
+ adds r0, r2
+ strh r0, [r5, 0x26]
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ movs r6, 0x80
+ lsls r6, 8
+ ands r0, r6
+ cmp r0, 0
+ beq _08022AFA
+ ldrh r0, [r4, 0x6]
+ ldrh r2, [r5, 0x2E]
+ adds r0, r2
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x8]
+ adds r0, r1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 23
+ movs r2, 0xC
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r5, 0x24]
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ ands r0, r6
+ cmp r0, 0
+ beq _08022AFA
+ ldrh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 23
+ cmp r0, 0x7E
+ ble _08022AFA
+ movs r0, 0
+ strh r0, [r5, 0x24]
+ ldrh r1, [r4, 0xE]
+ ldr r0, =0x00007fff
+ ands r0, r1
+ strh r0, [r4, 0xE]
+_08022AFA:
+ ldrh r0, [r4]
+ lsls r0, 16
+ asrs r0, 23
+ strh r0, [r5, 0x20]
+ movs r2, 0x22
+ ldrsh r1, [r5, r2]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ ldrh r2, [r4, 0xE]
+ ldr r0, =0x00007fff
+ ands r0, r2
+ cmp r1, r0
+ ble _08022B1A
+ ldr r0, =sub_8022A4C
+ str r0, [r5, 0x1C]
+_08022B1A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8022A94
+
+ thumb_func_start sub_8022B28
+sub_8022B28: @ 8022B28
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ adds r7, r6, 0
+ adds r7, 0x2E
+ movs r0, 0
+ mov r8, r0
+ movs r2, 0xA0
+ lsls r2, 2
+ strh r2, [r7, 0x2]
+ movs r0, 0x20
+ strh r0, [r7, 0x4]
+ movs r1, 0xA8
+ strh r1, [r7, 0xE]
+ movs r0, 0x24
+ ldrsh r4, [r6, r0]
+ lsls r4, 23
+ lsrs r4, 16
+ ldrh r0, [r6, 0x22]
+ subs r1, r0
+ lsls r1, 23
+ asrs r1, 16
+ adds r2, 0x20
+ asrs r2, 1
+ movs r0, 0x7
+ bl sub_81515D4
+ adds r5, r0, 0
+ ldrh r0, [r6, 0x20]
+ lsls r0, 7
+ strh r0, [r6, 0x2E]
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ movs r0, 0x7
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_81515D4
+ strh r0, [r7, 0x6]
+ movs r0, 0x7
+ adds r1, r5, 0
+ movs r2, 0x55
+ bl sub_8151550
+ adds r2, r0, 0
+ mov r1, r8
+ strh r1, [r7, 0x8]
+ movs r1, 0xFE
+ lsls r1, 6
+ lsls r2, 16
+ asrs r2, 16
+ movs r0, 0x7
+ bl sub_81515D4
+ strh r0, [r7, 0xA]
+ movs r2, 0x24
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ bge _08022BA6
+ adds r0, 0x3
+_08022BA6:
+ asrs r0, 2
+ strh r0, [r7, 0xC]
+ ldrh r0, [r7, 0xE]
+ ldr r2, =0xffff8000
+ adds r1, r2, 0
+ orrs r0, r1
+ strh r0, [r7, 0xE]
+ mov r0, r8
+ strh r0, [r6, 0x26]
+ strh r0, [r6, 0x24]
+ ldr r0, =sub_8022A94
+ str r0, [r6, 0x1C]
+ adds r2, r6, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r2, 0x12
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8022B28
+
+ thumb_func_start sub_8022BEC
+sub_8022BEC: @ 8022BEC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r2, 0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 24
+ lsrs r4, r1, 24
+ mov r8, r4
+ bl sub_8020C00
+ adds r6, r0, 0
+ cmp r5, 0x19
+ bls _08022C0A
+ movs r5, 0
+_08022C0A:
+ cmp r4, 0
+ beq _08022C14
+ cmp r4, 0x1
+ beq _08022C40
+ b _08022C4A
+_08022C14:
+ cmp r5, 0
+ beq _08022C28
+ ldr r0, =gUnknown_082F43CC
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r2, [r1]
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl _call_via_r2
+_08022C28:
+ ldrb r0, [r6, 0xE]
+ cmp r0, 0x19
+ bls _08022C32
+ mov r0, r8
+ strb r0, [r6, 0xE]
+_08022C32:
+ ldr r0, =gUnknown_082F43CC
+ ldrb r1, [r6, 0xE]
+ lsls r1, 2
+ b _08022C44
+ .pool
+_08022C40:
+ ldr r0, =gUnknown_082F43CC
+ lsls r1, r5, 2
+_08022C44:
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r6, 0x4]
+_08022C4A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8022BEC
+
+ thumb_func_start sub_8022C58
+sub_8022C58: @ 8022C58
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldrb r2, [r1]
+ ldrb r3, [r1, 0x1]
+ lsls r3, 8
+ orrs r2, r3
+ ldrb r3, [r1, 0x2]
+ lsls r3, 16
+ orrs r2, r3
+ ldrb r3, [r1, 0x3]
+ lsls r3, 24
+ adds r0, r2, 0
+ orrs r0, r3
+ ldrb r2, [r1, 0x9]
+ strb r2, [r1]
+ ldrb r4, [r1, 0x8]
+ lsls r4, 8
+ ldrb r2, [r1, 0x7]
+ orrs r4, r2
+ ldr r5, =gPaletteFade
+ ldrb r3, [r5, 0x8]
+ movs r2, 0x7F
+ ands r2, r3
+ strb r2, [r5, 0x8]
+ movs r5, 0x4
+ ldrsb r5, [r1, r5]
+ ldrb r2, [r1, 0x5]
+ ldrb r3, [r1, 0x6]
+ str r4, [sp]
+ adds r1, r5, 0
+ bl BeginNormalPaletteFade
+ bl UpdatePaletteFade
+ movs r0, 0x2
+ strb r0, [r6, 0xE]
+ movs r0, 0
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8022C58
+
+ thumb_func_start sub_8022CB0
+sub_8022CB0: @ 8022CB0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldrb r0, [r4, 0xC]
+ cmp r0, 0x1
+ beq _08022CE4
+ cmp r0, 0x1
+ bgt _08022CC6
+ cmp r0, 0
+ beq _08022CD0
+ b _08022D06
+_08022CC6:
+ cmp r0, 0x2
+ beq _08022CEA
+ cmp r0, 0x3
+ beq _08022CF6
+ b _08022D06
+_08022CD0:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _08022D0C
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _08022D06
+ movs r0, 0x3
+ b _08022D0A
+_08022CE4:
+ bl sub_8010434
+ b _08022D06
+_08022CEA:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ bne _08022D06
+ b _08022D0C
+_08022CF6:
+ ldrb r0, [r4, 0xF]
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ movs r0, 0
+ strb r0, [r4, 0xC]
+ b _08022D0E
+_08022D06:
+ ldrb r0, [r4, 0xC]
+ adds r0, 0x1
+_08022D0A:
+ strb r0, [r4, 0xC]
+_08022D0C:
+ movs r0, 0
+_08022D0E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8022CB0
+
+ thumb_func_start sub_8022D14
+sub_8022D14: @ 8022D14
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r7, r0, 0
+ adds r5, r1, 0
+ ldrb r4, [r5, 0x3]
+ lsls r4, 8
+ ldrb r0, [r5, 0x2]
+ orrs r4, r0
+ ldrb r6, [r7, 0xC]
+ cmp r6, 0x1
+ beq _08022DC0
+ cmp r6, 0x1
+ bgt _08022D38
+ cmp r6, 0
+ beq _08022D42
+ b _08022E08
+_08022D38:
+ cmp r6, 0x2
+ beq _08022DD8
+ cmp r6, 0x3
+ beq _08022DE8
+ b _08022E08
+_08022D42:
+ movs r0, 0
+ movs r1, 0
+ bl NewMenuHelpers_DrawDialogueFrame
+ ldrb r1, [r5, 0x1]
+ movs r0, 0x2
+ mov r8, r0
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _08022D90
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_082F32A4
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldrb r3, [r7, 0xB]
+ str r6, [sp]
+ mov r0, r8
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ str r0, [sp, 0xC]
+ movs r0, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl AddTextPrinterParameterized
+ b _08022DB2
+ .pool
+_08022D90:
+ ldr r1, =gUnknown_082F32A4
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, [r0]
+ ldrb r3, [r7, 0xB]
+ str r4, [sp]
+ mov r0, r8
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ str r0, [sp, 0xC]
+ movs r0, 0
+ movs r1, 0x1
+ bl AddTextPrinterParameterized
+_08022DB2:
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ b _08022E08
+ .pool
+_08022DC0:
+ movs r0, 0
+ bl IsTextPrinterActive
+ lsls r0, 16
+ cmp r0, 0
+ bne _08022E0E
+ cmp r4, 0
+ bne _08022E08
+ ldrb r0, [r7, 0xC]
+ adds r0, 0x1
+ strb r0, [r7, 0xC]
+ b _08022E08
+_08022DD8:
+ ldr r0, =gMain
+ ldrh r0, [r0, 0x2E]
+ ands r4, r0
+ cmp r4, 0
+ bne _08022E08
+ b _08022E0E
+ .pool
+_08022DE8:
+ ldrb r1, [r5, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08022DFA
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8197434
+_08022DFA:
+ ldrb r0, [r7, 0xE]
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ ldrb r0, [r5, 0x4]
+ b _08022E0C
+_08022E08:
+ ldrb r0, [r7, 0xC]
+ adds r0, 0x1
+_08022E0C:
+ strb r0, [r7, 0xC]
+_08022E0E:
+ movs r0, 0
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8022D14
+
+ thumb_func_start sub_8022E1C
+sub_8022E1C: @ 8022E1C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_802104C
+ cmp r0, 0
+ beq _08022E34
+ ldrb r0, [r4, 0xE]
+ adds r2, r4, 0
+ adds r2, 0x36
+ movs r1, 0
+ bl sub_8022BEC
+_08022E34:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8022E1C
+
+ thumb_func_start sub_8022E3C
+sub_8022E3C: @ 8022E3C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_802130C
+ cmp r0, 0
+ beq _08022E54
+ ldrb r0, [r4, 0xE]
+ adds r2, r4, 0
+ adds r2, 0x36
+ movs r1, 0
+ bl sub_8022BEC
+_08022E54:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8022E3C
+
+ thumb_func_start sub_8022E5C
+sub_8022E5C: @ 8022E5C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0xC]
+ cmp r0, 0
+ beq _08022E6C
+ cmp r0, 0x1
+ beq _08022E72
+ b _08022E9C
+_08022E6C:
+ bl sub_8010434
+ b _08022E9C
+_08022E72:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08022EA2
+ ldr r0, =0x000001e5
+ bl PlayNewMapMusic
+ movs r0, 0x7
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ movs r1, 0
+ movs r0, 0x3
+ strh r0, [r4, 0x12]
+ strb r1, [r4, 0xC]
+ b _08022EA2
+ .pool
+_08022E9C:
+ ldrb r0, [r4, 0xC]
+ adds r0, 0x1
+ strb r0, [r4, 0xC]
+_08022EA2:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8022E5C
+
+ thumb_func_start sub_8022EAC
+sub_8022EAC: @ 8022EAC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldrb r0, [r4, 0xC]
+ cmp r0, 0
+ beq _08022EC2
+ cmp r0, 0x1
+ beq _08022EE8
+ adds r0, 0x1
+ b _08022EF8
+_08022EC2:
+ adds r0, r4, 0
+ bl sub_8024578
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl sub_8024644
+ movs r0, 0x7
+ strb r0, [r4, 0xE]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ b _08022EFA
+_08022EE8:
+ movs r0, 0x8
+ strb r0, [r4, 0xE]
+ movs r0, 0x5
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ movs r0, 0x2
+_08022EF8:
+ strb r0, [r4, 0xC]
+_08022EFA:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8022EAC
+
+ thumb_func_start sub_8022F04
+sub_8022F04: @ 8022F04
+ push {lr}
+ movs r1, 0
+ str r1, [r0, 0x4]
+ ldr r0, =sub_8020E1C
+ bl SetMainCallback2
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8022F04
+
+ thumb_func_start sub_8022F1C
+sub_8022F1C: @ 8022F1C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r2, r1, 0
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0x5
+ bls _08022F2C
+ b _08023060
+_08022F2C:
+ lsls r0, 2
+ ldr r1, =_08022F3C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08022F3C:
+ .4byte _08022F54
+ .4byte _08022F74
+ .4byte _08022F7A
+ .4byte _08022FAA
+ .4byte _08022FBA
+ .4byte _08023044
+_08022F54:
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r2, 0
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl sub_8024644
+ movs r0, 0x9
+ strb r0, [r5, 0xE]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ b _08023066
+_08022F74:
+ bl sub_8010434
+ b _08023060
+_08022F7A:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08023066
+ adds r4, r5, 0
+ adds r4, 0x42
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0xC
+ bl memset
+ ldrb r0, [r5, 0x8]
+ lsls r0, 5
+ adds r0, r5, r0
+ adds r0, 0xA4
+ ldrh r0, [r0]
+ strh r0, [r4]
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0x2
+ bl SendBlock
+ b _08023060
+_08022FAA:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08023066
+ movs r0, 0
+ strh r0, [r5, 0x10]
+ b _08023060
+_08022FBA:
+ bl GetBlockReceivedStatus
+ ldr r2, =gUnknown_082F4448
+ ldrb r4, [r5, 0x9]
+ subs r1, r4, 0x2
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08023066
+ movs r3, 0
+ cmp r3, r4
+ bcs _0802301E
+ ldr r7, =gBlockRecvBuffer
+ movs r6, 0
+ ldr r4, =gUnknown_0858AB24
+_08022FDC:
+ lsls r0, r3, 5
+ adds r0, r5, r0
+ lsls r1, r3, 8
+ adds r1, r7
+ ldrh r1, [r1]
+ adds r2, r0, 0
+ adds r2, 0xA4
+ strh r1, [r2]
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0xB0
+ bls _08022FF6
+ strh r6, [r2]
+_08022FF6:
+ ldrh r1, [r2]
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r5, 0x18]
+ ldrb r1, [r1]
+ adds r0, r1
+ strh r0, [r5, 0x18]
+ ldrh r0, [r2]
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x2]
+ ldr r0, [r5, 0x1C]
+ adds r0, r1
+ str r0, [r5, 0x1C]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r5, 0x9]
+ cmp r3, r0
+ bcc _08022FDC
+_0802301E:
+ movs r0, 0
+ strh r0, [r5, 0x10]
+ bl ResetBlockReceivedFlags
+ movs r1, 0x18
+ ldrsh r0, [r5, r1]
+ lsls r0, 8
+ movs r1, 0x80
+ lsls r1, 6
+ bl sub_81515FC
+ str r0, [r5, 0x20]
+ b _08023060
+ .pool
+_08023044:
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8197434
+ movs r0, 0xA
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ movs r1, 0
+ movs r0, 0x4
+ strh r0, [r5, 0x12]
+ strb r1, [r5, 0xC]
+ b _08023066
+_08023060:
+ ldrb r0, [r5, 0xC]
+ adds r0, 0x1
+ strb r0, [r5, 0xC]
+_08023066:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8022F1C
+
+ thumb_func_start sub_8023070
+sub_8023070: @ 8023070
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0xC]
+ cmp r0, 0x6
+ bls _0802307C
+ b _080231A8
+_0802307C:
+ lsls r0, 2
+ ldr r1, =_0802308C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0802308C:
+ .4byte _080230A8
+ .4byte _080230BA
+ .4byte _080230E8
+ .4byte _08023120
+ .4byte _08023150
+ .4byte _08023172
+ .4byte _08023184
+_080230A8:
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r4, r0
+ adds r0, r4, 0
+ bl sub_80214A8
+ bl sub_8010434
+ b _080231A8
+_080230BA:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _080231AE
+ movs r2, 0x9C
+ lsls r2, 1
+ adds r1, r4, r2
+ movs r0, 0
+ strb r0, [r1]
+ ldr r3, =0x00000139
+ adds r1, r4, r3
+ strb r0, [r1]
+ adds r2, 0x2
+ adds r1, r4, r2
+ strb r0, [r1]
+ adds r3, 0x2
+ adds r1, r4, r3
+ strb r0, [r1]
+ b _080231A8
+ .pool
+_080230E8:
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r3, r4, r0
+ ldrb r0, [r3]
+ lsls r0, 2
+ movs r2, 0xB8
+ lsls r2, 1
+ adds r1, r4, r2
+ adds r0, r1, r0
+ ldr r2, [r0]
+ ldr r0, =sub_8021608
+ str r0, [r2, 0x1C]
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r1, [r1]
+ adds r1, 0x2C
+ ldrb r2, [r1]
+ movs r0, 0x7F
+ ands r0, r2
+ strb r0, [r1]
+ movs r0, 0x3D
+ bl PlaySE
+ b _080231A8
+ .pool
+_08023120:
+ movs r3, 0x9C
+ lsls r3, 1
+ adds r2, r4, r3
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r3, 0x38
+ adds r1, r4, r3
+ adds r3, r1, r0
+ ldr r0, [r3]
+ ldr r1, [r0, 0x1C]
+ ldr r0, =sub_8021608
+ cmp r1, r0
+ beq _080231AE
+ movs r0, 0
+ str r0, [r3]
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ bl sub_8010434
+ b _080231A8
+ .pool
+_08023150:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _080231AE
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ ldrb r2, [r4, 0x9]
+ cmp r0, r2
+ bcs _0802316C
+ movs r0, 0x2
+ b _080231AC
+_0802316C:
+ movs r0, 0
+ strb r0, [r1]
+ b _080231A8
+_08023172:
+ movs r3, 0x9C
+ lsls r3, 1
+ adds r1, r4, r3
+ adds r0, r4, 0
+ bl sub_80216A8
+ bl sub_8010434
+ b _080231A8
+_08023184:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _080231AE
+ movs r0, 0x2B
+ bl PlaySE
+ movs r0, 0xB
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ movs r1, 0
+ movs r0, 0x5
+ strh r0, [r4, 0x12]
+ strb r1, [r4, 0xC]
+ b _080231AE
+_080231A8:
+ ldrb r0, [r4, 0xC]
+ adds r0, 0x1
+_080231AC:
+ strb r0, [r4, 0xC]
+_080231AE:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8023070
+
+ thumb_func_start sub_80231B8
+sub_80231B8: @ 80231B8
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldrb r1, [r4, 0xC]
+ cmp r1, 0x1
+ beq _0802321C
+ cmp r1, 0x1
+ bgt _080231CC
+ cmp r1, 0
+ beq _080231D6
+ b _080232DC
+_080231CC:
+ cmp r1, 0x2
+ beq _0802329C
+ cmp r1, 0x3
+ beq _080232BE
+ b _080232DC
+_080231D6:
+ ldrh r0, [r4, 0x2A]
+ adds r0, 0x4
+ strh r0, [r4, 0x2A]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080231E4
+ b _080232E2
+_080231E4:
+ strh r1, [r4, 0x2A]
+ ldr r0, =0x00000139
+ adds r3, r4, r0
+ movs r0, 0x4
+ strb r0, [r3]
+ movs r2, 0x9C
+ lsls r2, 1
+ adds r1, r4, r2
+ movs r0, 0
+ strb r0, [r1]
+ ldr r2, =gUnknown_082F326C
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ movs r2, 0x9D
+ lsls r2, 1
+ adds r1, r4, r2
+ strb r0, [r1]
+ movs r0, 0xD6
+ bl PlaySE
+ b _080232DC
+ .pool
+_0802321C:
+ ldr r7, =gUnknown_082F326C
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r6, r4, r0
+ ldr r1, =0x00000139
+ adds r5, r4, r1
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ ldrb r2, [r6]
+ adds r0, r2
+ adds r0, r7
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ strh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x12
+ bl SetGpuReg
+ ldrh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x1A
+ bl SetGpuReg
+ ldrh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x1E
+ bl SetGpuReg
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ movs r1, 0x9D
+ lsls r1, 1
+ adds r2, r4, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r2]
+ cmp r0, r1
+ bcc _080232E2
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080232DC
+ subs r0, 0x1
+ strb r0, [r5]
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ adds r0, r7
+ ldrb r0, [r0]
+ strb r0, [r2]
+ movs r0, 0
+ strb r0, [r6]
+ b _080232E2
+ .pool
+_0802329C:
+ movs r0, 0
+ strh r0, [r4, 0x2C]
+ movs r0, 0x12
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1A
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1E
+ movs r1, 0
+ bl SetGpuReg
+ bl sub_8010434
+ b _080232DC
+_080232BE:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _080232E2
+ movs r0, 0xC
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ movs r1, 0
+ movs r0, 0x6
+ strh r0, [r4, 0x12]
+ strb r1, [r4, 0xC]
+ b _080232E2
+_080232DC:
+ ldrb r0, [r4, 0xC]
+ adds r0, 0x1
+ strb r0, [r4, 0xC]
+_080232E2:
+ movs r0, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80231B8
+
+ thumb_func_start sub_80232EC
+sub_80232EC: @ 80232EC
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrb r0, [r4, 0xC]
+ cmp r0, 0x1
+ beq _0802330C
+ cmp r0, 0x1
+ bgt _08023302
+ cmp r0, 0
+ beq _08023332
+ b _0802338C
+_08023302:
+ cmp r0, 0x2
+ beq _0802332A
+ cmp r0, 0x3
+ beq _08023338
+ b _0802338C
+_0802330C:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08023392
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0x78
+ movs r3, 0x50
+ bl sub_802EB24
+ b _0802338C
+_0802332A:
+ bl sub_802EB84
+ cmp r0, 0
+ bne _08023392
+_08023332:
+ bl sub_8010434
+ b _0802338C
+_08023338:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08023392
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r4, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r2, =0x00000139
+ adds r1, r4, r2
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r1, r4, r2
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r1, r4, r2
+ strb r0, [r1]
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0
+ bne _08023378
+ movs r0, 0xD
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ b _08023382
+ .pool
+_08023378:
+ movs r0, 0xE
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+_08023382:
+ movs r1, 0
+ movs r0, 0x7
+ strh r0, [r4, 0x12]
+ strb r1, [r4, 0xC]
+ b _08023392
+_0802338C:
+ ldrb r0, [r4, 0xC]
+ adds r0, 0x1
+ strb r0, [r4, 0xC]
+_08023392:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80232EC
+
+ thumb_func_start sub_802339C
+sub_802339C: @ 802339C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r4, r0, 0
+ movs r0, 0
+ mov r8, r0
+ movs r2, 0
+ adds r7, r2, 0
+ ldrb r1, [r4, 0x9]
+ cmp r7, r1
+ bcs _080234AA
+ movs r2, 0x5E
+ adds r2, r4
+ mov r9, r2
+ ldr r3, =gUnknown_082F325C
+ mov r10, r3
+_080233C0:
+ lsls r0, r7, 4
+ ldr r1, =gRecvCmds
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ movs r3, 0xBC
+ lsls r3, 6
+ cmp r0, r3
+ bne _0802349E
+ ldrh r0, [r2, 0x2]
+ cmp r0, 0x2
+ bne _0802349E
+ ldrb r1, [r2, 0x4]
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _08023496
+ mov r0, r9
+ ldrb r2, [r0]
+ lsrs r1, r2, 3
+ mov r3, r10
+ adds r0, r7, r3
+ ldrb r0, [r0]
+ orrs r1, r0
+ lsls r1, 3
+ movs r0, 0x7
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r9
+ strb r0, [r1]
+ lsls r2, r7, 5
+ adds r3, r4, r2
+ mov r12, r3
+ mov r1, r12
+ adds r1, 0xB5
+ movs r0, 0x1
+ strb r0, [r1]
+ subs r1, 0x7
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ subs r1, 0x8
+ ldrh r0, [r4, 0x28]
+ ldrh r1, [r1]
+ subs r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ mov r5, r12
+ adds r5, 0xAA
+ ldrh r1, [r5]
+ subs r0, r1, 0x1
+ adds r6, r2, 0
+ cmp r3, r0
+ blt _08023468
+ adds r0, r1, 0x1
+ cmp r3, r0
+ bgt _08023468
+ mov r1, r12
+ adds r1, 0xA8
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ strh r3, [r5]
+ mov r0, r12
+ adds r0, 0xAC
+ ldrh r1, [r1]
+ ldrh r2, [r0]
+ cmp r1, r2
+ bls _08023476
+ strh r1, [r0]
+ b _08023476
+ .pool
+_08023468:
+ adds r0, r4, r6
+ adds r2, r0, 0
+ adds r2, 0xA8
+ movs r1, 0
+ strh r1, [r2]
+ adds r0, 0xAA
+ strh r3, [r0]
+_08023476:
+ adds r1, r4, r6
+ ldrh r0, [r4, 0x28]
+ adds r3, r1, 0
+ adds r3, 0xA6
+ movs r2, 0
+ strh r0, [r3]
+ adds r1, 0xB4
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bls _0802349E
+ strb r2, [r1]
+ b _0802349E
+_08023496:
+ lsls r0, r7, 5
+ adds r0, r4, r0
+ adds r0, 0xB5
+ strb r1, [r0]
+_0802349E:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r3, [r4, 0x9]
+ cmp r7, r3
+ bcc _080233C0
+_080234AA:
+ mov r0, r8
+ cmp r0, 0x1
+ bls _080234E0
+ movs r7, 0
+ ldrb r1, [r4, 0x9]
+ cmp r7, r1
+ bcs _080234E0
+ movs r3, 0x2
+_080234BA:
+ lsls r0, r7, 5
+ adds r1, r4, r0
+ adds r2, r1, 0
+ adds r2, 0xB5
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _080234D4
+ orrs r0, r3
+ strb r0, [r2]
+ adds r1, 0xB0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080234D4:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r2, [r4, 0x9]
+ cmp r7, r2
+ bcc _080234BA
+_080234E0:
+ mov r3, r8
+ cmp r3, 0
+ beq _08023548
+ ldrh r0, [r4, 0x2E]
+ add r0, r8
+ strh r0, [r4, 0x2E]
+ ldr r1, =gUnknown_082F3264
+ mov r0, r8
+ subs r0, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ add r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrh r0, [r4, 0x34]
+ add r0, r8
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x1A]
+ add r0, r8
+ strh r0, [r4, 0x1A]
+ movs r1, 0x18
+ ldrsh r0, [r4, r1]
+ movs r3, 0x1A
+ ldrsh r2, [r4, r3]
+ subs r0, r2
+ cmp r0, 0
+ ble _08023534
+ lsls r2, 8
+ ldr r1, [r4, 0x20]
+ adds r0, r2, 0
+ bl sub_81515FC
+ adds r2, r0, 0
+ asrs r2, 8
+ adds r0, r4, 0
+ adds r0, 0x24
+ strb r2, [r0]
+ b _08023548
+ .pool
+_08023534:
+ adds r1, r4, 0
+ adds r1, 0x24
+ movs r0, 0x20
+ strb r0, [r1]
+ adds r2, r4, 0
+ adds r2, 0x5E
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_08023548:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802339C
+
+ thumb_func_start sub_8023558
+sub_8023558: @ 8023558
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ movs r6, 0
+ movs r1, 0
+ adds r4, r1, 0
+ ldrb r0, [r3, 0x9]
+ cmp r4, r0
+ bcs _080235B0
+ adds r5, r3, 0
+ adds r5, 0x64
+_0802356C:
+ lsls r0, r4, 5
+ adds r1, r3, r0
+ adds r0, r1, 0
+ adds r0, 0xB5
+ ldrb r2, [r0]
+ cmp r2, 0
+ beq _080235A4
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r1, 0
+ adds r0, 0xB4
+ ldrb r0, [r0]
+ adds r1, r0, 0x1
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _08023594
+ movs r0, 0x4
+ orrs r1, r0
+_08023594:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r1, r0
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ ldrh r0, [r5]
+ orrs r1, r0
+ strh r1, [r5]
+_080235A4:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r1, [r3, 0x9]
+ cmp r4, r1
+ bcc _0802356C
+_080235B0:
+ adds r0, r3, 0
+ adds r0, 0x24
+ ldrb r1, [r0]
+ adds r0, 0x3C
+ strh r1, [r0]
+ cmp r6, 0
+ bne _080235D4
+ ldr r2, =0x0000013b
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080236A0
+ movs r4, 0x9C
+ lsls r4, 1
+ adds r1, r3, r4
+ b _08023612
+ .pool
+_080235D4:
+ ldr r5, =0x0000013b
+ adds r2, r3, r5
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0802361A
+ ldr r0, =0x00000139
+ adds r1, r3, r0
+ ldrb r2, [r1]
+ cmp r6, r2
+ beq _0802360C
+ subs r0, r6, 0x1
+ strb r0, [r1]
+ ldr r1, =gUnknown_082F3290
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r4, 0x9D
+ lsls r4, 1
+ adds r1, r3, r4
+ strb r0, [r1]
+ b _08023640
+ .pool
+_0802360C:
+ movs r5, 0x9C
+ lsls r5, 1
+ adds r1, r3, r5
+_08023612:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08023640
+_0802361A:
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r3, r0
+ movs r0, 0
+ strb r0, [r1]
+ subs r0, r6, 0x1
+ ldr r4, =0x00000139
+ adds r1, r3, r4
+ strb r0, [r1]
+ ldr r1, =gUnknown_082F3290
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r5, 0x9D
+ lsls r5, 1
+ adds r1, r3, r5
+ strb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r2]
+_08023640:
+ ldr r0, =0x0000013b
+ adds r4, r3, r0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080236A0
+ movs r2, 0x9C
+ lsls r2, 1
+ adds r1, r3, r2
+ movs r5, 0x9D
+ lsls r5, 1
+ adds r2, r3, r5
+ ldrb r0, [r1]
+ ldrb r5, [r2]
+ cmp r0, r5
+ bcc _0802367C
+ movs r0, 0
+ strb r0, [r1]
+ ldr r5, =0x00000139
+ adds r1, r3, r5
+ strb r0, [r1]
+ strb r0, [r2]
+ strb r0, [r4]
+ movs r1, 0
+ b _08023690
+ .pool
+_0802367C:
+ ldr r2, =gUnknown_082F3290
+ ldrb r1, [r1]
+ ldr r4, =0x00000139
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, 0x1
+ adds r1, r0
+ adds r1, r2
+ ldrb r1, [r1]
+_08023690:
+ adds r0, r3, 0
+ adds r0, 0x5F
+ strb r1, [r0]
+ b _080236A8
+ .pool
+_080236A0:
+ adds r1, r3, 0
+ adds r1, 0x5F
+ movs r0, 0
+ strb r0, [r1]
+_080236A8:
+ ldrh r1, [r3, 0x26]
+ adds r0, r3, 0
+ adds r0, 0x62
+ strh r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8023558
+
+ thumb_func_start sub_80236B8
+sub_80236B8: @ 80236B8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ ldr r3, =gMain
+ ldrh r1, [r3, 0x2E]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080236DA
+ adds r2, r5, 0
+ adds r2, 0x5E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080236DA:
+ ldrh r1, [r3, 0x2C]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080236FA
+ ldrb r0, [r5, 0x8]
+ lsls r0, 5
+ adds r0, r5, r0
+ adds r1, r0, 0
+ adds r1, 0xB2
+ ldrh r0, [r1]
+ ldrh r2, [r5, 0x28]
+ cmp r0, r2
+ bcs _080236FA
+ adds r0, 0x1
+ strh r0, [r1]
+_080236FA:
+ ldrb r0, [r5, 0x8]
+ adds r7, r5, 0
+ adds r7, 0x5E
+ cmp r0, 0
+ beq _08023710
+ ldrb r1, [r7]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _08023710
+ b _0802384C
+_08023710:
+ adds r4, r5, 0
+ adds r4, 0x5C
+ movs r0, 0x2
+ strh r0, [r4]
+ ldrh r0, [r5, 0x28]
+ movs r1, 0x1E
+ bl __umodsi3
+ lsls r0, 16
+ mov r8, r4
+ adds r6, r5, 0
+ adds r6, 0x25
+ cmp r0, 0
+ bne _08023768
+ movs r0, 0x2E
+ ldrsh r2, [r5, r0]
+ ldr r1, =gUnknown_082F4444
+ ldrb r0, [r5, 0x9]
+ subs r0, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r2, r0
+ ble _08023754
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ ldrb r0, [r6]
+ movs r1, 0x10
+ orrs r0, r1
+ b _0802375C
+ .pool
+_08023754:
+ ldrb r1, [r6]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r1
+_0802375C:
+ strb r0, [r6]
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+_08023768:
+ ldrh r0, [r5, 0x28]
+ movs r1, 0xF
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080237DE
+ movs r0, 0x34
+ ldrsh r2, [r5, r0]
+ ldr r3, =gUnknown_082F4434
+ ldrb r0, [r5, 0x9]
+ subs r0, 0x2
+ lsls r1, r0, 2
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r2, r0
+ bge _08023798
+ ldrb r1, [r6]
+ movs r0, 0x1F
+ ands r0, r1
+ strb r0, [r6]
+ b _080237D8
+ .pool
+_08023798:
+ adds r0, r3, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bge _080237AC
+ ldrb r0, [r6]
+ movs r1, 0x1F
+ ands r1, r0
+ movs r0, 0x20
+ b _080237D4
+_080237AC:
+ adds r0, r3, 0x2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bge _080237BC
+ movs r0, 0x2
+ strh r0, [r5, 0x34]
+ b _080237D8
+_080237BC:
+ adds r0, r3, 0x3
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bge _080237CC
+ movs r0, 0x3
+ strh r0, [r5, 0x34]
+ b _080237D8
+_080237CC:
+ ldrb r0, [r6]
+ movs r1, 0x1F
+ ands r1, r0
+ movs r0, 0x80
+_080237D4:
+ orrs r1, r0
+ strb r1, [r6]
+_080237D8:
+ movs r0, 0
+ strh r0, [r5, 0x34]
+ b _0802380A
+_080237DE:
+ ldrh r0, [r5, 0x10]
+ adds r0, 0x1
+ strh r0, [r5, 0x10]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3C
+ bls _0802380A
+ cmp r0, 0x46
+ bls _080237FA
+ bl sub_8011AC8
+ movs r0, 0
+ strh r0, [r5, 0x10]
+ b _0802380A
+_080237FA:
+ ldrb r0, [r7]
+ movs r4, 0xF8
+ ands r4, r0
+ cmp r4, 0
+ bne _0802380A
+ bl sub_8011AC8
+ strh r4, [r5, 0x10]
+_0802380A:
+ ldrh r1, [r5, 0x28]
+ ldr r0, =0x00008c9f
+ cmp r1, r0
+ bls _0802381A
+ ldrb r0, [r7]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r7]
+_0802381A:
+ ldrb r1, [r6]
+ lsls r1, 27
+ lsrs r1, 31
+ lsls r1, 1
+ ldrb r2, [r7]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r7]
+ ldrb r0, [r6]
+ lsrs r0, 5
+ adds r2, r5, 0
+ adds r2, 0x66
+ strh r0, [r2]
+ adds r4, r5, 0
+ adds r4, 0x42
+ adds r0, r4, 0
+ mov r1, r8
+ movs r2, 0xC
+ bl memcpy
+ adds r0, r4, 0
+ bl sub_800FE50
+_0802384C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80236B8
+
+ thumb_func_start sub_802385C
+sub_802385C: @ 802385C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+ ldr r3, =gRecvCmds
+ ldrb r0, [r5, 0x9]
+ cmp r4, r0
+ bcs _08023880
+ movs r1, 0
+_0802386C:
+ lsls r0, r4, 5
+ adds r0, r5, r0
+ adds r0, 0xB5
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r5, 0x9]
+ cmp r4, r0
+ bcc _0802386C
+_08023880:
+ adds r2, r3, 0
+ ldrh r0, [r2]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r1, r0
+ movs r0, 0xBC
+ lsls r0, 6
+ cmp r1, r0
+ bne _08023898
+ ldrh r0, [r2, 0x2]
+ cmp r0, 0x2
+ beq _080238AC
+_08023898:
+ adds r2, r5, 0
+ adds r2, 0x25
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ b _080238EA
+ .pool
+_080238AC:
+ adds r4, r5, 0
+ adds r4, 0x4E
+ adds r0, r4, 0
+ adds r1, r3, 0
+ movs r2, 0xE
+ bl memcpy
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x2A]
+ movs r0, 0x5
+ ldrsb r0, [r4, r0]
+ strh r0, [r5, 0x2C]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x28]
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r5, r0
+ adds r0, r5, 0
+ bl sub_80216E0
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080238EA
+ adds r0, r5, 0
+ adds r0, 0x25
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+_080238EA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802385C
+
+ thumb_func_start sub_80238F0
+sub_80238F0: @ 80238F0
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x5C
+ movs r1, 0
+ movs r2, 0xC
+ bl memset
+ adds r0, r4, 0
+ adds r0, 0x4E
+ movs r1, 0
+ movs r2, 0xE
+ bl memset
+ adds r0, r4, 0
+ bl sub_802385C
+ ldrh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x12
+ bl SetGpuReg
+ ldrh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x1A
+ bl SetGpuReg
+ ldrh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x1E
+ bl SetGpuReg
+ adds r0, r4, 0
+ adds r0, 0x25
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08023978
+ ldrh r1, [r4, 0x28]
+ ldr r0, =0x00008c9f
+ cmp r1, r0
+ bls _08023964
+ adds r0, 0x1
+ strh r0, [r4, 0x28]
+ movs r0, 0x10
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ b _0802396E
+ .pool
+_08023964:
+ movs r0, 0xF
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+_0802396E:
+ movs r1, 0
+ movs r0, 0
+ strh r0, [r4, 0x10]
+ strb r1, [r4, 0xC]
+ b _08023992
+_08023978:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ bl sub_802339C
+ adds r0, r4, 0
+ bl sub_8023558
+ adds r0, r4, 0
+ bl sub_80236B8
+ movs r0, 0
+_08023992:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80238F0
+
+ thumb_func_start sub_8023998
+sub_8023998: @ 8023998
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x5C
+ movs r1, 0
+ movs r2, 0xC
+ bl memset
+ adds r0, r4, 0
+ adds r0, 0x4E
+ movs r1, 0
+ movs r2, 0xE
+ bl memset
+ adds r0, r4, 0
+ bl sub_802385C
+ ldrh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x12
+ bl SetGpuReg
+ ldrh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x1A
+ bl SetGpuReg
+ ldrh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x1E
+ bl SetGpuReg
+ adds r0, r4, 0
+ adds r0, 0x25
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08023A20
+ ldrh r1, [r4, 0x28]
+ ldr r0, =0x00008c9f
+ cmp r1, r0
+ bls _08023A0C
+ adds r0, 0x1
+ strh r0, [r4, 0x28]
+ movs r0, 0x10
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ b _08023A16
+ .pool
+_08023A0C:
+ movs r0, 0xF
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+_08023A16:
+ movs r1, 0
+ movs r0, 0
+ strh r0, [r4, 0x10]
+ strb r1, [r4, 0xC]
+ b _08023A28
+_08023A20:
+ adds r0, r4, 0
+ bl sub_80236B8
+ movs r0, 0
+_08023A28:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8023998
+
+ thumb_func_start sub_8023A30
+sub_8023A30: @ 8023A30
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0xC]
+ cmp r0, 0x5
+ bls _08023A3C
+ b _08023BB2
+_08023A3C:
+ lsls r0, 2
+ ldr r1, =_08023A4C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08023A4C:
+ .4byte _08023A64
+ .4byte _08023A8C
+ .4byte _08023ADC
+ .4byte _08023B5C
+ .4byte _08023B7A
+ .4byte _08023B94
+_08023A64:
+ movs r0, 0x8
+ strh r0, [r4, 0x12]
+ movs r0, 0xD6
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ ldr r2, =0x000003ff
+ movs r1, 0x8
+ bl BlendPalettes
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r4, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ b _08023BB2
+ .pool
+_08023A8C:
+ movs r1, 0x9C
+ lsls r1, 1
+ adds r5, r4, r1
+ ldrb r0, [r5]
+ subs r0, 0x1
+ strb r0, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _08023AA2
+ b _08023BB8
+_08023AA2:
+ movs r0, 0x1
+ negs r0, r0
+ ldr r2, =0x000003ff
+ movs r1, 0
+ bl BlendPalettes
+ ldr r2, =0x00000139
+ adds r1, r4, r2
+ movs r0, 0x4
+ strb r0, [r1]
+ movs r0, 0
+ strb r0, [r5]
+ ldr r2, =gUnknown_082F326C
+ ldrb r1, [r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ movs r2, 0x9D
+ lsls r2, 1
+ adds r1, r4, r2
+ strb r0, [r1]
+ b _08023BB2
+ .pool
+_08023ADC:
+ ldr r7, =gUnknown_082F326C
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r6, r4, r0
+ ldr r1, =0x00000139
+ adds r5, r4, r1
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ ldrb r2, [r6]
+ adds r0, r2
+ adds r0, r7
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ strh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x12
+ bl SetGpuReg
+ ldrh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x1A
+ bl SetGpuReg
+ ldrh r1, [r4, 0x2C]
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x1E
+ bl SetGpuReg
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ movs r1, 0x9D
+ lsls r1, 1
+ adds r2, r4, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r2]
+ cmp r0, r1
+ bcc _08023BB8
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _08023BB2
+ subs r0, 0x1
+ strb r0, [r5]
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ adds r0, r7
+ ldrb r0, [r0]
+ strb r0, [r2]
+ movs r0, 0
+ strb r0, [r6]
+ b _08023BB8
+ .pool
+_08023B5C:
+ movs r0, 0
+ strh r0, [r4, 0x2C]
+ movs r0, 0x12
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1A
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1E
+ movs r1, 0
+ bl SetGpuReg
+ b _08023BB2
+_08023B7A:
+ movs r2, 0x9C
+ lsls r2, 1
+ adds r1, r4, r2
+ adds r0, r4, 0
+ bl sub_80218D4
+ cmp r0, 0
+ beq _08023BB8
+ bl sub_8010434
+ movs r0, 0
+ strh r0, [r4, 0x10]
+ b _08023BB2
+_08023B94:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08023BB8
+ movs r0, 0x11
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ movs r1, 0
+ movs r0, 0
+ strh r0, [r4, 0x10]
+ strb r1, [r4, 0xC]
+ b _08023BBA
+_08023BB2:
+ ldrb r0, [r4, 0xC]
+ adds r0, 0x1
+ strb r0, [r4, 0xC]
+_08023BB8:
+ movs r0, 0
+_08023BBA:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8023A30
+
+ thumb_func_start sub_8023BC0
+sub_8023BC0: @ 8023BC0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0x1
+ beq _08023C04
+ cmp r0, 0x1
+ bgt _08023BD8
+ cmp r0, 0
+ beq _08023BE2
+ b _08023C9C
+_08023BD8:
+ cmp r0, 0x2
+ beq _08023C2A
+ cmp r0, 0x3
+ beq _08023C5C
+ b _08023C9C
+_08023BE2:
+ movs r0, 0x9
+ strh r0, [r5, 0x12]
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x8
+ movs r2, 0x1F
+ bl BlendPalettes
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r5, r0
+ movs r0, 0x4
+ strb r0, [r1]
+ b _08023C9C
+_08023C04:
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _08023CA2
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ movs r2, 0x1F
+ bl BlendPalettes
+ movs r0, 0
+ strb r0, [r4]
+ b _08023C9C
+_08023C2A:
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r5, r0
+ adds r0, r5, 0
+ bl sub_80218D4
+ cmp r0, 0
+ beq _08023CA2
+ bl sub_8010434
+ movs r0, 0
+ strh r0, [r5, 0x10]
+ movs r0, 0x12
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1A
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1E
+ movs r1, 0
+ bl SetGpuReg
+ b _08023C9C
+_08023C5C:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08023CA2
+ ldr r0, =gStringVar1
+ ldr r1, [r5, 0x1C]
+ movs r2, 0
+ movs r3, 0x6
+ bl ConvertIntToDecimalStringN
+ movs r4, 0
+ str r4, [sp]
+ adds r0, r6, 0
+ movs r1, 0x7
+ movs r2, 0x1
+ movs r3, 0
+ bl sub_8024644
+ movs r0, 0x13
+ strb r0, [r5, 0xE]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ movs r0, 0
+ strh r4, [r5, 0x10]
+ b _08023CA0
+ .pool
+_08023C9C:
+ ldrb r0, [r5, 0xC]
+ adds r0, 0x1
+_08023CA0:
+ strb r0, [r5, 0xC]
+_08023CA2:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8023BC0
+
+ thumb_func_start sub_8023CAC
+sub_8023CAC: @ 8023CAC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ adds r7, r0, 0
+ ldrb r0, [r7, 0xC]
+ cmp r0, 0x7
+ bls _08023CC2
+ b _0802402E
+_08023CC2:
+ lsls r0, 2
+ ldr r1, =_08023CD0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08023CD0:
+ .4byte _08023CF0
+ .4byte _08023D2A
+ .4byte _08023D38
+ .4byte _08023DA0
+ .4byte _08023F20
+ .4byte _08023FD0
+ .4byte _08023FDC
+ .4byte _08024010
+_08023CF0:
+ adds r4, r7, 0
+ adds r4, 0x42
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x4
+ bl memset
+ ldrb r0, [r7, 0x8]
+ lsls r0, 5
+ adds r0, r7, r0
+ adds r2, r0, 0
+ adds r2, 0xB2
+ ldrh r1, [r7, 0x28]
+ ldrh r0, [r2]
+ cmp r0, r1
+ bls _08023D12
+ strh r1, [r2]
+_08023D12:
+ ldrb r0, [r7, 0x8]
+ lsls r0, 5
+ adds r0, r7, r0
+ adds r0, 0xB2
+ ldrh r0, [r0]
+ strh r0, [r4]
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0x2
+ bl SendBlock
+ b _0802402E
+_08023D2A:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ bne _08023D36
+ b _08024034
+_08023D36:
+ b _08024004
+_08023D38:
+ bl GetBlockReceivedStatus
+ ldr r2, =gUnknown_082F4448
+ ldrb r3, [r7, 0x9]
+ subs r1, r3, 0x2
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _08023D50
+ b _08024034
+_08023D50:
+ movs r0, 0
+ mov r8, r0
+ adds r4, r7, 0
+ adds r4, 0x42
+ cmp r8, r3
+ bcs _08023D7E
+ ldr r2, =gBlockRecvBuffer
+_08023D5E:
+ mov r3, r8
+ lsls r1, r3, 5
+ adds r1, r7, r1
+ lsls r0, r3, 8
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r1, 0xB2
+ strh r0, [r1]
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrb r6, [r7, 0x9]
+ cmp r8, r6
+ bcc _08023D5E
+_08023D7E:
+ movs r0, 0
+ strh r0, [r7, 0x10]
+ strh r0, [r4]
+ bl ResetBlockReceivedFlags
+ ldrb r0, [r7, 0x8]
+ cmp r0, 0
+ bne _08023D9C
+ movs r0, 0x3
+ b _08024032
+ .pool
+_08023D9C:
+ movs r0, 0x6
+ b _08024032
+_08023DA0:
+ adds r0, r7, 0
+ adds r0, 0x68
+ movs r1, 0
+ movs r2, 0x30
+ bl memset
+ ldrh r1, [r7, 0x28]
+ adds r0, r7, 0
+ adds r0, 0x6C
+ strh r1, [r0]
+ movs r0, 0x18
+ ldrsh r4, [r7, r0]
+ ldrh r0, [r7, 0x28]
+ movs r1, 0x3C
+ bl __udivsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl __divsi3
+ adds r1, r7, 0
+ adds r1, 0x6E
+ strh r0, [r1]
+ movs r1, 0x30
+ ldrsh r0, [r7, r1]
+ lsls r0, 8
+ movs r4, 0xC8
+ lsls r4, 6
+ adds r1, r4, 0
+ bl sub_8151574
+ adds r2, r0, 0
+ movs r3, 0x32
+ ldrsh r1, [r7, r3]
+ lsls r1, 8
+ bl sub_81515FC
+ adds r2, r0, r4
+ asrs r2, 8
+ movs r1, 0x7F
+ adds r0, r2, 0
+ ands r0, r1
+ adds r1, r7, 0
+ adds r1, 0x70
+ strh r0, [r1]
+ lsls r2, 8
+ movs r1, 0xC8
+ lsls r1, 7
+ adds r0, r2, 0
+ bl sub_81515FC
+ adds r2, r0, 0
+ ldrb r1, [r7, 0x9]
+ ldr r0, [r7, 0x1C]
+ muls r0, r1
+ lsls r4, r0, 8
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_8151574
+ adds r4, r0, 0
+ asrs r0, r4, 8
+ str r0, [r7, 0x68]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ adds r1, r7, 0
+ adds r1, 0x8F
+ strb r0, [r1]
+ movs r6, 0
+ mov r8, r6
+ mov r9, r1
+ ldrb r0, [r7, 0x9]
+ cmp r8, r0
+ bcc _08023E44
+ b _0802402E
+_08023E44:
+ adds r0, r7, 0
+ adds r0, 0x88
+ add r0, r8
+ mov r1, r8
+ strb r1, [r0]
+ adds r0, r7, 0
+ adds r0, 0x90
+ add r0, r8
+ strb r1, [r0]
+ mov r3, r8
+ lsls r2, r3, 1
+ adds r1, r7, 0
+ adds r1, 0x74
+ adds r1, r2
+ lsls r0, r3, 5
+ adds r3, r7, r0
+ adds r5, r3, 0
+ adds r5, 0xAE
+ ldrh r0, [r5]
+ strh r0, [r1]
+ adds r1, r7, 0
+ adds r1, 0x72
+ ldrh r6, [r1]
+ adds r0, r6
+ strh r0, [r1]
+ mov r1, r9
+ ldrb r0, [r1]
+ adds r6, r2, 0
+ cmp r0, 0x1
+ beq _08023EAE
+ cmp r0, 0x1
+ bgt _08023E8A
+ cmp r0, 0
+ beq _08023E90
+ b _08023F04
+_08023E8A:
+ cmp r0, 0x2
+ beq _08023ECC
+ b _08023F04
+_08023E90:
+ ldrh r0, [r5]
+ cmp r0, 0
+ beq _08023ED2
+ adds r0, r3, 0
+ adds r0, 0xAC
+ ldrh r2, [r0]
+ lsls r2, 8
+ adds r0, r2, 0
+ movs r1, 0xC8
+ lsls r1, 7
+ bl sub_8151574
+ adds r2, r0, 0
+ ldrh r4, [r5]
+ b _08023EFA
+_08023EAE:
+ ldrh r0, [r5]
+ cmp r0, 0
+ beq _08023ED2
+ adds r0, r3, 0
+ adds r0, 0xB0
+ ldrh r2, [r0]
+ lsls r2, 8
+ adds r0, r2, 0
+ movs r1, 0xC8
+ lsls r1, 7
+ bl sub_8151574
+ adds r2, r0, 0
+ ldrh r4, [r5]
+ b _08023EFA
+_08023ECC:
+ ldrh r0, [r5]
+ cmp r0, 0
+ bne _08023ED6
+_08023ED2:
+ movs r4, 0
+ b _08023F04
+_08023ED6:
+ adds r1, r3, 0
+ adds r1, 0xB2
+ ldrh r0, [r1]
+ ldrh r2, [r7, 0x28]
+ cmp r0, r2
+ bcc _08023EE8
+ movs r4, 0xC8
+ lsls r4, 7
+ b _08023F04
+_08023EE8:
+ ldrh r2, [r1]
+ lsls r2, 8
+ adds r0, r2, 0
+ movs r1, 0xC8
+ lsls r1, 7
+ bl sub_8151574
+ adds r2, r0, 0
+ ldrh r4, [r7, 0x28]
+_08023EFA:
+ lsls r4, 8
+ adds r1, r4, 0
+ bl sub_81515FC
+ adds r4, r0, 0
+_08023F04:
+ asrs r4, 4
+ adds r0, r7, 0
+ adds r0, 0x7E
+ adds r0, r6
+ strh r4, [r0]
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrb r3, [r7, 0x9]
+ cmp r8, r3
+ bcc _08023E44
+ b _0802402E
+_08023F20:
+ movs r6, 0
+ mov r8, r6
+ ldrb r0, [r7, 0x9]
+ subs r0, 0x1
+ adds r1, r7, 0
+ adds r1, 0x68
+ str r1, [sp, 0xC]
+ cmp r8, r0
+ bge _08023FC4
+_08023F32:
+ ldrb r0, [r7, 0x9]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r2, r8
+ adds r2, 0x1
+ str r2, [sp, 0x8]
+ cmp r4, r8
+ bls _08023FB4
+ adds r3, r7, 0
+ adds r3, 0x74
+ str r3, [sp]
+ adds r6, r7, 0
+ adds r6, 0x88
+ str r6, [sp, 0x4]
+ movs r0, 0x90
+ adds r0, r7
+ mov r10, r0
+ movs r1, 0x7E
+ adds r1, r7
+ mov r9, r1
+_08023F5C:
+ subs r2, r4, 0x1
+ mov r12, r2
+ lsls r6, r2, 1
+ ldr r0, [sp]
+ adds r3, r0, r6
+ lsls r5, r4, 1
+ adds r1, r0, r5
+ ldrh r2, [r3]
+ ldrh r0, [r1]
+ cmp r2, r0
+ bcs _08023F86
+ ldrh r0, [r1]
+ strh r2, [r1]
+ strh r0, [r3]
+ ldr r1, [sp, 0x4]
+ adds r2, r1, r4
+ ldrb r3, [r2]
+ add r1, r12
+ ldrb r0, [r1]
+ strb r0, [r2]
+ strb r3, [r1]
+_08023F86:
+ mov r2, r9
+ adds r3, r2, r6
+ adds r1, r2, r5
+ ldrh r2, [r3]
+ ldrh r6, [r1]
+ cmp r2, r6
+ bcs _08023FAA
+ ldrh r0, [r1]
+ strh r2, [r1]
+ strh r0, [r3]
+ mov r0, r10
+ adds r2, r0, r4
+ ldrb r3, [r2]
+ mov r1, r10
+ add r1, r12
+ ldrb r0, [r1]
+ strb r0, [r2]
+ strb r3, [r1]
+_08023FAA:
+ mov r1, r12
+ lsls r0, r1, 24
+ lsrs r4, r0, 24
+ cmp r4, r8
+ bhi _08023F5C
+_08023FB4:
+ ldr r2, [sp, 0x8]
+ lsls r0, r2, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrb r0, [r7, 0x9]
+ subs r0, 0x1
+ cmp r8, r0
+ blt _08023F32
+_08023FC4:
+ movs r0, 0
+ ldr r1, [sp, 0xC]
+ movs r2, 0x30
+ bl SendBlock
+ b _0802402E
+_08023FD0:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08024034
+ b _08024004
+_08023FDC:
+ bl GetBlockReceivedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08024034
+ adds r4, r7, 0
+ adds r4, 0x68
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x30
+ bl memset
+ ldr r1, =gBlockRecvBuffer
+ adds r0, r4, 0
+ movs r2, 0x30
+ bl memcpy
+ bl ResetBlockReceivedFlags
+_08024004:
+ movs r0, 0
+ strh r0, [r7, 0x10]
+ b _0802402E
+ .pool
+_08024010:
+ bl sub_8020E58
+ movs r0, 0x12
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ movs r0, 0
+ movs r1, 0xB
+ strh r1, [r7, 0x12]
+ strb r0, [r7, 0xC]
+ adds r1, r7, 0
+ adds r1, 0x24
+ strb r0, [r1]
+ b _08024034
+_0802402E:
+ ldrb r0, [r7, 0xC]
+ adds r0, 0x1
+_08024032:
+ strb r0, [r7, 0xC]
+_08024034:
+ movs r0, 0
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8023CAC
+
+ thumb_func_start sub_8024048
+sub_8024048: @ 8024048
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0x4
+ bhi _08024124
+ lsls r0, 2
+ ldr r1, =_08024064
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08024064:
+ .4byte _08024078
+ .4byte _0802408A
+ .4byte _0802409C
+ .4byte _080240CC
+ .4byte _080240DC
+_08024078:
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r5, r0
+ adds r0, r5, 0
+ bl sub_8022070
+ cmp r0, 0
+ bne _08024124
+ b _0802412A
+_0802408A:
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r5, r0
+ movs r0, 0x1E
+ strb r0, [r1]
+ b _08024124
+_0802409C:
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080240AE
+ subs r0, 0x1
+ strb r0, [r1]
+ b _0802412A
+_080240AE:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802412A
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_802222C
+ b _08024124
+ .pool
+_080240CC:
+ ldrh r0, [r5, 0x12]
+ cmp r0, 0xC
+ bhi _08024124
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r5, 0x12]
+ strb r1, [r5, 0xC]
+ b _0802412A
+_080240DC:
+ ldr r0, =gStringVar1
+ ldr r1, [r5, 0x1C]
+ movs r2, 0
+ movs r3, 0x6
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar2
+ bl sub_80247BC
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0x6
+ bl ConvertIntToDecimalStringN
+ movs r4, 0
+ str r4, [sp]
+ adds r0, r6, 0
+ movs r1, 0x2
+ movs r2, 0x3
+ movs r3, 0
+ bl sub_8024644
+ movs r0, 0x13
+ strb r0, [r5, 0xE]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ strb r4, [r5, 0xC]
+ b _0802412A
+ .pool
+_08024124:
+ ldrb r0, [r5, 0xC]
+ adds r0, 0x1
+ strb r0, [r5, 0xC]
+_0802412A:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8024048
+
+ thumb_func_start sub_8024134
+sub_8024134: @ 8024134
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0x4
+ bhi _08024218
+ lsls r0, 2
+ ldr r1, =_08024150
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08024150:
+ .4byte _08024164
+ .4byte _080241A0
+ .4byte _080241A6
+ .4byte _080241F0
+ .4byte _08024204
+_08024164:
+ ldrh r1, [r5, 0x28]
+ ldr r0, =0x00008c9f
+ cmp r1, r0
+ bls _08024176
+ movs r1, 0x9C
+ lsls r1, 1
+ adds r0, r5, r1
+ bl sub_8022554
+_08024176:
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0x8
+ movs r2, 0
+ movs r3, 0
+ bl sub_8024644
+ movs r4, 0
+ movs r0, 0x13
+ strb r0, [r5, 0xE]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ strb r4, [r5, 0xC]
+ b _0802421E
+ .pool
+_080241A0:
+ bl sub_8010434
+ b _08024218
+_080241A6:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802421E
+ movs r0, 0
+ movs r1, 0
+ bl NewMenuHelpers_DrawDialogueFrame
+ ldr r2, =gText_SavingDontTurnOffPower
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ str r0, [sp, 0xC]
+ movs r0, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl AddTextPrinterParameterized
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r0, =sub_8153688
+ movs r1, 0
+ bl CreateTask
+ b _08024218
+ .pool
+_080241F0:
+ ldr r0, =sub_8153688
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ beq _08024218
+ b _0802421E
+ .pool
+_08024204:
+ movs r0, 0x14
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ movs r1, 0
+ movs r0, 0xF
+ strh r0, [r5, 0x12]
+ strb r1, [r5, 0xC]
+ b _0802421E
+_08024218:
+ ldrb r0, [r5, 0xC]
+ adds r0, 0x1
+ strb r0, [r5, 0xC]
+_0802421E:
+ movs r0, 0
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8024134
+
+ thumb_func_start sub_8024228
+sub_8024228: @ 8024228
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0x1
+ beq _0802426A
+ cmp r0, 0x1
+ bgt _08024240
+ cmp r0, 0
+ beq _08024246
+ b _080242D0
+_08024240:
+ cmp r0, 0x2
+ beq _08024270
+ b _080242D0
+_08024246:
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r6, 0
+ movs r1, 0x4
+ movs r2, 0
+ movs r3, 0
+ bl sub_8024644
+ movs r0, 0x14
+ strb r0, [r5, 0xE]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ movs r0, 0
+ strb r0, [r5, 0xC]
+ b _080242D8
+_0802426A:
+ bl sub_8197930
+ b _080242D0
+_08024270:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r4, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r4, r0
+ beq _080242D6
+ adds r0, r5, 0
+ adds r0, 0x42
+ movs r1, 0
+ movs r2, 0xC
+ bl memset
+ cmp r4, 0
+ bne _080242A2
+ bl HasAtLeastOneBerry
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802429E
+ strh r4, [r5, 0x14]
+ b _080242A6
+_0802429E:
+ movs r0, 0x3
+ b _080242A4
+_080242A2:
+ movs r0, 0x1
+_080242A4:
+ strh r0, [r5, 0x14]
+_080242A6:
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8197434
+ movs r4, 0
+ str r4, [sp]
+ adds r0, r6, 0
+ movs r1, 0x8
+ movs r2, 0
+ movs r3, 0
+ bl sub_8024644
+ movs r0, 0x15
+ strb r0, [r5, 0xE]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ strb r4, [r5, 0xC]
+ b _080242D6
+_080242D0:
+ ldrb r0, [r5, 0xC]
+ adds r0, 0x1
+ strb r0, [r5, 0xC]
+_080242D6:
+ movs r0, 0
+_080242D8:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8024228
+
+ thumb_func_start sub_80242E0
+sub_80242E0: @ 80242E0
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ ldrb r0, [r4, 0xC]
+ cmp r0, 0x1
+ beq _08024306
+ cmp r0, 0x1
+ bgt _080242F6
+ cmp r0, 0
+ beq _08024300
+ b _080243AC
+_080242F6:
+ cmp r0, 0x2
+ beq _08024328
+ cmp r0, 0x3
+ beq _08024336
+ b _080243AC
+_08024300:
+ bl sub_8010434
+ b _080243AC
+_08024306:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _080243B2
+ ldrh r0, [r4, 0x14]
+ adds r1, r4, 0
+ adds r1, 0x42
+ strh r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x4E
+ strh r5, [r0]
+ movs r0, 0
+ movs r2, 0x2
+ bl SendBlock
+ b _080243AC
+_08024328:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _080243B2
+ strh r5, [r4, 0x10]
+ b _080243AC
+_08024336:
+ bl GetBlockReceivedStatus
+ ldr r2, =gUnknown_082F4448
+ ldrb r3, [r4, 0x9]
+ subs r1, r3, 0x2
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080243B2
+ adds r7, r4, 0
+ adds r7, 0x42
+ adds r6, r4, 0
+ adds r6, 0x4E
+ cmp r5, r3
+ bcs _08024374
+ adds r1, r6, 0
+ ldr r2, =gBlockRecvBuffer
+_0802435C:
+ lsls r0, r5, 8
+ adds r0, r2
+ ldrh r0, [r0]
+ ldrh r3, [r1]
+ adds r0, r3
+ strh r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r4, 0x9]
+ cmp r5, r0
+ bcc _0802435C
+_08024374:
+ ldrh r0, [r6]
+ cmp r0, 0
+ beq _08024390
+ movs r0, 0x17
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ b _0802439A
+ .pool
+_08024390:
+ movs r0, 0x16
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+_0802439A:
+ bl ResetBlockReceivedFlags
+ movs r1, 0
+ movs r0, 0
+ strh r0, [r7]
+ strh r0, [r6]
+ strh r0, [r4, 0x10]
+ strb r1, [r4, 0xC]
+ b _080243B4
+_080243AC:
+ ldrb r0, [r4, 0xC]
+ adds r0, 0x1
+ strb r0, [r4, 0xC]
+_080243B2:
+ movs r0, 0
+_080243B4:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80242E0
+
+ thumb_func_start sub_80243BC
+sub_80243BC: @ 80243BC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrb r4, [r5, 0xC]
+ cmp r4, 0x1
+ beq _080243EA
+ cmp r4, 0x1
+ bgt _080243D2
+ cmp r4, 0
+ beq _080243DC
+ b _08024434
+_080243D2:
+ cmp r4, 0x2
+ beq _080243F6
+ cmp r4, 0x3
+ beq _0802441A
+ b _08024434
+_080243DC:
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0x10
+ b _08024410
+_080243EA:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ beq _08024434
+ b _0802443A
+_080243F6:
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8197434
+ adds r0, r5, 0
+ bl sub_8021488
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+_08024410:
+ bl BeginNormalPaletteFade
+ bl UpdatePaletteFade
+ b _08024434
+_0802441A:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802443A
+ movs r0, 0x7
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ movs r0, 0
+ strh r4, [r5, 0x12]
+ b _08024438
+_08024434:
+ ldrb r0, [r5, 0xC]
+ adds r0, 0x1
+_08024438:
+ strb r0, [r5, 0xC]
+_0802443A:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80243BC
+
+ thumb_func_start sub_8024444
+sub_8024444: @ 8024444
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ ldrb r4, [r5, 0xC]
+ cmp r4, 0x1
+ beq _080244BC
+ cmp r4, 0x1
+ bgt _0802445A
+ cmp r4, 0
+ beq _08024460
+ b _080244F6
+_0802445A:
+ cmp r4, 0x2
+ beq _080244D4
+ b _080244F6
+_08024460:
+ movs r0, 0
+ movs r1, 0
+ bl NewMenuHelpers_DrawDialogueFrame
+ ldrh r1, [r5, 0x14]
+ cmp r1, 0x3
+ bne _08024490
+ ldr r0, =gUnknown_082F32A4
+ ldr r2, [r0, 0x14]
+ ldrb r3, [r5, 0xB]
+ str r4, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ movs r0, 0
+ movs r1, 0x1
+ bl AddTextPrinterParameterized
+ b _080244AC
+ .pool
+_08024490:
+ ldr r0, =gUnknown_082F32A4
+ ldr r2, [r0, 0x18]
+ ldrb r3, [r5, 0xB]
+ str r4, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ str r0, [sp, 0xC]
+ movs r0, 0
+ movs r1, 0x1
+ bl AddTextPrinterParameterized
+_080244AC:
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ b _080244F6
+ .pool
+_080244BC:
+ movs r0, 0
+ bl IsTextPrinterActive
+ lsls r0, 16
+ cmp r0, 0
+ bne _080244FC
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r5, r0
+ movs r0, 0x78
+ strb r0, [r1]
+ b _080244F6
+_080244D4:
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _080244E8
+ subs r0, 0x1
+ strb r0, [r1]
+ b _080244FC
+_080244E8:
+ movs r0, 0x18
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ strb r4, [r5, 0xC]
+ b _080244FC
+_080244F6:
+ ldrb r0, [r5, 0xC]
+ adds r0, 0x1
+ strb r0, [r5, 0xC]
+_080244FC:
+ movs r0, 0
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8024444
+
+ thumb_func_start sub_8024508
+sub_8024508: @ 8024508
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrb r4, [r5, 0xC]
+ cmp r4, 0x1
+ beq _08024528
+ cmp r4, 0x1
+ bgt _0802451C
+ cmp r4, 0
+ beq _08024522
+ b _08024558
+_0802451C:
+ cmp r4, 0x2
+ beq _08024538
+ b _08024558
+_08024522:
+ bl sub_8010434
+ b _08024558
+_08024528:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802455E
+ bl sub_800AC34
+ b _08024558
+_08024538:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0802455E
+ movs r0, 0x19
+ strb r0, [r5, 0xE]
+ movs r0, 0x5
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8022BEC
+ strb r4, [r5, 0xC]
+ b _0802455E
+ .pool
+_08024558:
+ ldrb r0, [r5, 0xC]
+ adds r0, 0x1
+ strb r0, [r5, 0xC]
+_0802455E:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8024508
+
+ thumb_func_start sub_8024568
+sub_8024568: @ 8024568
+ push {lr}
+ movs r0, 0
+ bl sub_8020C0C
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8024568
+
+ thumb_func_start sub_8024578
+sub_8024578: @ 8024578
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ movs r0, 0x33
+ bl IncrementGameStat
+ strb r5, [r4, 0xD]
+ movs r1, 0
+ strh r5, [r4, 0x10]
+ movs r0, 0x2
+ strh r0, [r4, 0x12]
+ strh r5, [r4, 0x14]
+ str r5, [r4, 0x1C]
+ strh r5, [r4, 0x18]
+ strh r5, [r4, 0x1A]
+ str r5, [r4, 0x20]
+ adds r0, r4, 0
+ adds r0, 0x24
+ strb r1, [r0]
+ adds r1, r4, 0
+ adds r1, 0x25
+ movs r0, 0
+ strb r0, [r1]
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x28]
+ strh r5, [r4, 0x2E]
+ ldr r0, =0x0000ffff
+ strh r0, [r4, 0x32]
+ strh r5, [r4, 0x30]
+ strh r5, [r4, 0x34]
+ movs r6, 0
+ movs r3, 0
+_080245B8:
+ lsls r0, r5, 5
+ adds r2, r4, r0
+ adds r1, r2, 0
+ adds r1, 0xA4
+ ldr r0, =0x0000ffff
+ strh r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0xA6
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ adds r1, 0x6
+ movs r0, 0x1
+ strh r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0xAC
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ adds r0, 0x2
+ strb r6, [r0]
+ adds r0, 0x1
+ strb r6, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _080245B8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8024578
+
+ thumb_func_start sub_8024604
+sub_8024604: @ 8024604
+ push {r4-r6,lr}
+ sub sp, 0x8
+ str r2, [sp, 0x4]
+ ldr r5, [sp, 0x18]
+ ldr r6, [sp, 0x1C]
+ ldr r4, [sp, 0x20]
+ mov r2, sp
+ strh r4, [r2]
+ add r4, sp, 0x4
+ ldrb r2, [r4]
+ strb r2, [r0]
+ ldrb r2, [r4, 0x1]
+ strb r2, [r0, 0x1]
+ ldrb r2, [r4, 0x2]
+ strb r2, [r0, 0x2]
+ ldrb r2, [r4, 0x3]
+ strb r2, [r0, 0x3]
+ strb r3, [r0, 0x4]
+ strb r5, [r0, 0x5]
+ strb r6, [r0, 0x6]
+ mov r2, sp
+ ldrb r2, [r2]
+ strb r2, [r0, 0x7]
+ mov r2, sp
+ ldrb r2, [r2, 0x1]
+ strb r2, [r0, 0x8]
+ strb r1, [r0, 0x9]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8024604
+
+ thumb_func_start sub_8024644
+sub_8024644: @ 8024644
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, [sp, 0x10]
+ mov r4, sp
+ strh r3, [r4]
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ mov r1, sp
+ ldrb r1, [r1]
+ strb r1, [r0, 0x2]
+ mov r1, sp
+ ldrb r1, [r1, 0x1]
+ strb r1, [r0, 0x3]
+ strb r5, [r0, 0x4]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8024644
+
+ thumb_func_start sub_8024668
+sub_8024668: @ 8024668
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ adds r1, 0xAC
+ ldr r0, [r0]
+ ldr r1, [r1]
+ eors r0, r1
+ bx lr
+ .pool
+ thumb_func_end sub_8024668
+
+ thumb_func_start SetBerryPowder
+SetBerryPowder: @ 802467C
+ ldr r2, =gSaveBlock2Ptr
+ ldr r2, [r2]
+ adds r2, 0xAC
+ ldr r2, [r2]
+ eors r2, r1
+ str r2, [r0]
+ bx lr
+ .pool
+ thumb_func_end SetBerryPowder
+
+ thumb_func_start ApplyNewEncryptionKeyToBerryPowder
+ApplyNewEncryptionKeyToBerryPowder: @ 8024690
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r2, 0xFA
+ lsls r2, 1
+ adds r0, r2
+ bl ApplyNewEncryptionKeyToWord
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ApplyNewEncryptionKeyToBerryPowder
+
+ thumb_func_start sub_80246AC
+sub_80246AC: @ 80246AC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r1, 0xFA
+ lsls r1, 1
+ adds r0, r1
+ bl sub_8024668
+ cmp r0, r4
+ bcc _080246CC
+ movs r0, 0x1
+ b _080246CE
+ .pool
+_080246CC:
+ movs r0, 0
+_080246CE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80246AC
+
+ thumb_func_start sub_80246D4
+sub_80246D4: @ 80246D4
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r1, 0xFA
+ lsls r1, 1
+ adds r0, r1
+ bl sub_8024668
+ ldr r1, =gSpecialVar_0x8004
+ ldrh r1, [r1]
+ cmp r0, r1
+ bcc _080246F8
+ movs r0, 0x1
+ b _080246FA
+ .pool
+_080246F8:
+ movs r0, 0
+_080246FA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80246D4
+
+ thumb_func_start sub_8024700
+sub_8024700: @ 8024700
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r1, 0xFA
+ lsls r1, 1
+ adds r5, r0, r1
+ adds r0, r5, 0
+ bl sub_8024668
+ adds r1, r0, r4
+ ldr r2, =0x0001869f
+ cmp r1, r2
+ bhi _08024730
+ adds r0, r5, 0
+ bl SetBerryPowder
+ movs r0, 0x1
+ b _0802473A
+ .pool
+_08024730:
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl SetBerryPowder
+ movs r0, 0
+_0802473A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8024700
+
+ thumb_func_start sub_8024740
+sub_8024740: @ 8024740
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r1, 0xFA
+ lsls r1, 1
+ adds r4, r0, r1
+ adds r0, r5, 0
+ bl sub_80246AC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08024774
+ adds r0, r4, 0
+ bl sub_8024668
+ adds r1, r0, 0
+ subs r1, r5
+ adds r0, r4, 0
+ bl SetBerryPowder
+ movs r0, 0x1
+ b _08024776
+ .pool
+_08024774:
+ movs r0, 0
+_08024776:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8024740
+
+ thumb_func_start sub_802477C
+sub_802477C: @ 802477C
+ push {r4,r5,lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r1, 0xFA
+ lsls r1, 1
+ adds r4, r0, r1
+ ldr r5, =gSpecialVar_0x8004
+ ldrh r0, [r5]
+ bl sub_80246AC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080247B4
+ adds r0, r4, 0
+ bl sub_8024668
+ adds r1, r0, 0
+ ldrh r0, [r5]
+ subs r1, r0
+ adds r0, r4, 0
+ bl SetBerryPowder
+ movs r0, 0x1
+ b _080247B6
+ .pool
+_080247B4:
+ movs r0, 0
+_080247B6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802477C
+
+ thumb_func_start sub_80247BC
+sub_80247BC: @ 80247BC
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r1, 0xFA
+ lsls r1, 1
+ adds r0, r1
+ bl sub_8024668
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80247BC
+
+ thumb_func_start sub_80247D4
+sub_80247D4: @ 80247D4
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0xC
+ adds r6, r0, 0
+ mov r8, r2
+ adds r4, r3, 0
+ ldr r5, [sp, 0x24]
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, =gStringVar1
+ mov r9, r0
+ movs r2, 0x1
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ movs r1, 0x1
+ mov r2, r9
+ mov r3, r8
+ bl PrintTextOnWindow
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80247D4
+
+ thumb_func_start sub_802482C
+sub_802482C: @ 802482C
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0xC
+ adds r6, r0, 0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ mov r8, r3
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ movs r1, 0
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl SetWindowBorderStyle
+ ldr r2, =gText_Powder
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ adds r0, r6, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ str r4, [sp]
+ adds r0, r6, 0
+ mov r1, r8
+ movs r2, 0x1A
+ movs r3, 0x11
+ bl sub_80247D4
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802482C
+
+ thumb_func_start sub_802488C
+sub_802488C: @ 802488C
+ push {lr}
+ sub sp, 0x4
+ bl sub_80247BC
+ adds r1, r0, 0
+ ldr r0, =gUnknown_02022C94
+ ldrb r0, [r0]
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x1A
+ movs r3, 0x11
+ bl sub_80247D4
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802488C
+
+ thumb_func_start sub_80248B0
+sub_80248B0: @ 80248B0
+ push {r4,r5,lr}
+ sub sp, 0x18
+ movs r0, 0x7
+ str r0, [sp]
+ movs r0, 0x4
+ str r0, [sp, 0x4]
+ movs r0, 0xF
+ str r0, [sp, 0x8]
+ movs r0, 0x1C
+ str r0, [sp, 0xC]
+ add r0, sp, 0x10
+ movs r1, 0
+ movs r2, 0x1
+ movs r3, 0x1
+ bl SetWindowTemplateFields
+ ldr r4, =gUnknown_02022C94
+ add r0, sp, 0x10
+ bl AddWindow
+ strb r0, [r4]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldrb r0, [r4]
+ bl PutWindowTilemap
+ ldrb r0, [r4]
+ ldr r5, =0x0000021d
+ adds r1, r5, 0
+ movs r2, 0xD0
+ bl box_border_load_tiles_and_pal
+ ldrb r4, [r4]
+ bl sub_80247BC
+ adds r3, r0, 0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xD
+ bl sub_802482C
+ add sp, 0x18
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80248B0
+
+ thumb_func_start sub_8024918
+sub_8024918: @ 8024918
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C94
+ ldrb r0, [r4]
+ bl ClearWindowTilemap
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8198070
+ ldrb r0, [r4]
+ bl RemoveWindow
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8024918
+
+ thumb_func_start sub_802493C
+sub_802493C: @ 802493C
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, =gUnknown_03000DB0
+ movs r0, 0
+ str r0, [r1]
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08024A10
+ ldr r4, =gUnknown_02022C98
+ ldr r0, =0x00003330
+ bl AllocZeroed
+ str r0, [r4]
+ cmp r0, 0
+ beq _08024A10
+ bl sub_8024A1C
+ ldr r0, [r4]
+ bl sub_8024A30
+ ldr r0, [r4]
+ str r5, [r0]
+ bl GetMultiplayerId
+ ldr r1, [r4]
+ adds r1, 0x28
+ strb r0, [r1]
+ ldr r1, [r4]
+ ldr r2, =0x000032cc
+ adds r0, r1, r2
+ adds r2, r1, 0
+ adds r2, 0x28
+ ldrb r3, [r2]
+ lsls r2, r3, 4
+ subs r2, r3
+ lsls r2, 2
+ adds r1, r2
+ ldr r2, =0x000031a0
+ adds r1, r2
+ movs r2, 0x3C
+ bl memcpy
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0x28
+ ldrb r1, [r1]
+ lsls r1, 2
+ ldr r2, =0x0000318c
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0x64
+ muls r1, r6
+ ldr r2, =gPlayerParty
+ adds r1, r2
+ bl sub_80261F8
+ ldr r0, =sub_8024BC8
+ movs r1, 0x1
+ bl CreateTask
+ ldr r0, =sub_80261CC
+ bl SetMainCallback2
+ bl sub_80273F0
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x24
+ ldrb r0, [r0]
+ adds r1, r2, 0
+ adds r1, 0x44
+ adds r2, 0x48
+ bl sub_8026B5C
+ bl StopMapMusic
+ ldr r0, =0x0000021e
+ bl PlayNewMapMusic
+ b _08024A16
+ .pool
+_08024A10:
+ adds r0, r5, 0
+ bl SetMainCallback2
+_08024A16:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802493C
+
+ thumb_func_start sub_8024A1C
+sub_8024A1C: @ 8024A1C
+ push {lr}
+ bl ResetTasks
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8024A1C
+
+ thumb_func_start sub_8024A30
+sub_8024A30: @ 8024A30
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ adds r2, r0, 0
+ movs r0, 0
+ strb r0, [r2, 0xC]
+ strb r0, [r2, 0x10]
+ strb r0, [r2, 0x14]
+ strb r0, [r2, 0x18]
+ strb r0, [r2, 0x1C]
+ movs r3, 0x8E
+ lsls r3, 1
+ adds r1, r2, r3
+ str r0, [r1]
+ movs r7, 0x90
+ lsls r7, 1
+ adds r1, r2, r7
+ str r0, [r1]
+ adds r1, r2, 0
+ adds r1, 0x30
+ strb r0, [r1]
+ adds r1, 0x10
+ strb r0, [r1]
+ subs r1, 0x4
+ strb r0, [r1]
+ adds r3, 0x10
+ adds r1, r2, r3
+ str r0, [r1]
+ movs r5, 0
+ adds r1, r2, 0
+ adds r1, 0x98
+ movs r3, 0
+_08024A76:
+ adds r0, r1, r5
+ strb r3, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _08024A76
+ movs r5, 0
+ adds r7, r2, 0
+ adds r7, 0xA8
+ str r7, [sp]
+ adds r0, r2, 0
+ adds r0, 0xB0
+ str r0, [sp, 0xC]
+ movs r1, 0x4A
+ adds r1, r2
+ mov r10, r1
+ movs r3, 0x4C
+ adds r3, r2
+ mov r9, r3
+ movs r7, 0x4E
+ adds r7, r2
+ mov r12, r7
+ subs r0, 0x60
+ str r0, [sp, 0x24]
+ adds r6, r2, 0
+ adds r6, 0x54
+ adds r1, r2, 0
+ adds r1, 0xD0
+ str r1, [sp, 0x1C]
+ adds r3, r2, 0
+ adds r3, 0xDC
+ str r3, [sp, 0x20]
+ adds r7, r2, 0
+ adds r7, 0xC4
+ str r7, [sp, 0x14]
+ adds r0, 0xA4
+ str r0, [sp, 0x4]
+ adds r1, 0x25
+ str r1, [sp, 0x8]
+ subs r3, 0xBC
+ str r3, [sp, 0x10]
+ movs r7, 0x24
+ adds r7, r2
+ mov r8, r7
+ subs r0, 0xC0
+ str r0, [sp, 0x18]
+ movs r3, 0
+ movs r1, 0x86
+ lsls r1, 1
+ adds r4, r2, r1
+ movs r7, 0x98
+ lsls r7, 1
+ adds r2, r7
+_08024AE2:
+ ldr r1, [sp]
+ adds r0, r1, r5
+ strb r3, [r0]
+ ldr r7, [sp, 0xC]
+ adds r0, r7, r5
+ strb r3, [r0]
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 2
+ mov r7, r10
+ adds r1, r7, r0
+ strh r3, [r1]
+ mov r7, r9
+ adds r1, r7, r0
+ strh r3, [r1]
+ mov r7, r12
+ adds r1, r7, r0
+ strh r3, [r1]
+ ldr r7, [sp, 0x24]
+ adds r1, r7, r0
+ strh r3, [r1]
+ adds r0, r6, r0
+ strh r3, [r0]
+ adds r0, r4, r5
+ strb r3, [r0]
+ lsls r0, r5, 2
+ adds r0, r2, r0
+ str r3, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _08024AE2
+ movs r5, 0
+ movs r3, 0
+ movs r4, 0xFF
+ ldr r6, [sp, 0x1C]
+_08024B2C:
+ adds r0, r6, r5
+ strb r3, [r0]
+ ldr r1, [sp, 0x20]
+ adds r0, r1, r5
+ strb r3, [r0]
+ ldr r7, [sp, 0x14]
+ adds r0, r7, r5
+ strb r3, [r0]
+ lsls r1, r5, 1
+ ldr r0, [sp, 0x4]
+ adds r2, r0, r1
+ ldrb r0, [r2]
+ orrs r0, r4
+ strb r0, [r2]
+ ldr r7, [sp, 0x8]
+ adds r1, r7, r1
+ ldrb r0, [r1]
+ orrs r0, r4
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xA
+ bls _08024B2C
+ bl GetMultiplayerId
+ movs r1, 0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08024B6A
+ movs r1, 0x1
+_08024B6A:
+ ldr r0, [sp, 0x10]
+ strb r1, [r0]
+ bl GetLinkPlayerCount
+ mov r1, r8
+ strb r0, [r1]
+ bl GetMultiplayerId
+ ldr r3, [sp, 0x18]
+ strb r0, [r3]
+ movs r5, 0x1
+ mov r7, r8
+ ldrb r7, [r7]
+ cmp r5, r7
+ bcs _08024BB6
+ ldr r7, [sp, 0x18]
+ mov r6, r8
+_08024B8C:
+ adds r4, r7, r5
+ subs r0, r5, 0x1
+ adds r0, r7, r0
+ ldrb r0, [r0]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldrb r2, [r4]
+ ldrb r1, [r6]
+ subs r0, r1, 0x1
+ cmp r2, r0
+ ble _08024BAA
+ adds r0, r2, 0
+ bl __umodsi3
+ strb r0, [r4]
+_08024BAA:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r6]
+ cmp r5, r0
+ bcc _08024B8C
+_08024BB6:
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8024A30
+
+ thumb_func_start sub_8024BC8
+sub_8024BC8: @ 8024BC8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, =gUnknown_02022C98
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xC]
+ cmp r0, 0x7
+ bls _08024BDC
+ b _08024D34
+_08024BDC:
+ lsls r0, 2
+ ldr r1, =_08024BF0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08024BF0:
+ .4byte _08024C10
+ .4byte _08024C24
+ .4byte _08024C4C
+ .4byte _08024C5A
+ .4byte _08024C80
+ .4byte _08024CD4
+ .4byte _08024CE6
+ .4byte _08024D10
+_08024C10:
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r0, =sub_8025910
+ movs r1, 0x4
+ bl sub_802620C
+ b _08024D20
+ .pool
+_08024C24:
+ ldr r0, =sub_8025910
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ beq _08024C32
+ b _08024D40
+_08024C32:
+ ldr r4, =gUnknown_02022C98
+ ldr r0, [r4]
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r1
+ bl sub_8029274
+ ldr r1, [r4]
+ b _08024D24
+ .pool
+_08024C4C:
+ bl sub_802A770
+ cmp r0, 0
+ bne _08024D40
+ bl sub_8010434
+ b _08024D20
+_08024C5A:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08024D40
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08024D20
+ bl sub_800E0E8
+ movs r0, 0
+ movs r1, 0
+ bl CreateWirelessStatusIndicatorSprite
+ b _08024D20
+ .pool
+_08024C80:
+ ldr r0, =gUnknown_02022C98
+ ldr r0, [r0]
+ adds r0, 0x24
+ ldrb r5, [r0]
+ bl sub_80283A8
+ movs r4, 0
+ cmp r4, r5
+ bcs _08024CBA
+_08024C92:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x34
+ adds r0, r4
+ ldrb r2, [r0]
+ lsls r0, r2, 2
+ ldr r3, =0x0000318c
+ adds r0, r3
+ adds r0, r1, r0
+ adds r1, 0x24
+ ldrb r3, [r1]
+ adds r1, r4, 0
+ bl sub_8028408
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _08024C92
+_08024CBA:
+ ldr r4, =gUnknown_02022C98
+ ldr r0, [r4]
+ adds r0, 0x24
+ ldrb r1, [r0]
+ movs r0, 0
+ bl sub_802868C
+ ldr r1, [r4]
+ b _08024D24
+ .pool
+_08024CD4:
+ bl sub_8028A34
+ bl sub_8028A88
+ bl sub_8028D44
+ bl sub_8028734
+ b _08024D20
+_08024CE6:
+ movs r4, 0x1
+ negs r4, r4
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, =sub_80261E4
+ bl SetVBlankCallback
+ b _08024D20
+ .pool
+_08024D10:
+ bl UpdatePaletteFade
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08024D40
+_08024D20:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+_08024D24:
+ ldrb r0, [r1, 0xC]
+ adds r0, 0x1
+ strb r0, [r1, 0xC]
+ b _08024D40
+ .pool
+_08024D34:
+ adds r0, r1, 0
+ bl DestroyTask
+ ldr r0, =sub_802589C
+ bl sub_802621C
+_08024D40:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8024BC8
+
+ thumb_func_start sub_8024D4C
+sub_8024D4C: @ 8024D4C
+ push {lr}
+ bl sub_8025D04
+ ldr r1, =gUnknown_082F7AC4
+ ldr r0, =gUnknown_02022C98
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x18]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, =gUnknown_03000DB0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08024D70
+ bl sub_8026AF4
+_08024D70:
+ bl sub_8025D50
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8024D4C
+
+ thumb_func_start sub_8024D84
+sub_8024D84: @ 8024D84
+ push {lr}
+ bl sub_8025E0C
+ ldr r1, =gUnknown_082F7AF4
+ ldr r0, =gUnknown_02022C98
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x18]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, =gUnknown_03000DB0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08024DA8
+ bl sub_8026B28
+_08024DA8:
+ bl sub_8025ED8
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8024D84
+
+ thumb_func_start sub_8024DBC
+sub_8024DBC: @ 8024DBC
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C98
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0
+ beq _08024DD4
+ cmp r0, 0x1
+ beq _08024DEA
+ b _08024DF8
+ .pool
+_08024DD4:
+ movs r0, 0x1
+ bl sub_8028504
+ movs r0, 0x1
+ bl sub_80292E0
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x10]
+ adds r0, 0x1
+ strb r0, [r1, 0x10]
+ b _08024DF8
+_08024DEA:
+ bl sub_802A770
+ cmp r0, 0
+ bne _08024DF8
+ movs r0, 0x1
+ bl sub_8026240
+_08024DF8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8024DBC
+
+ thumb_func_start sub_8024E00
+sub_8024E00: @ 8024E00
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C98
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x10]
+ cmp r0, 0
+ bne _08024E20
+ bl sub_80262C0
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x10]
+ adds r0, 0x1
+ strb r0, [r1, 0x10]
+ b _08024E30
+ .pool
+_08024E20:
+ movs r0, 0x8C
+ lsls r0, 1
+ adds r1, r0
+ movs r0, 0x1
+ str r0, [r1]
+ movs r0, 0x2
+ bl sub_8026240
+_08024E30:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8024E00
+
+ thumb_func_start sub_8024E38
+sub_8024E38: @ 8024E38
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, =gUnknown_02022C98
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x10]
+ adds r4, r1, 0
+ cmp r0, 0x5
+ bhi _08024F08
+ lsls r0, 2
+ ldr r1, =_08024E5C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08024E5C:
+ .4byte _08024E74
+ .4byte _08024E90
+ .4byte _08024EA0
+ .4byte _08024EC4
+ .4byte _08024ED8
+ .4byte _08024EF8
+_08024E74:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x7
+ movs r1, 0x8
+ movs r2, 0x78
+ movs r3, 0x50
+ bl sub_802EB24
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ b _08024EF0
+ .pool
+_08024E90:
+ bl sub_8010434
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ b _08024EF0
+ .pool
+_08024EA0:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08024F08
+ ldr r2, =gUnknown_02022C98
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x10]
+ adds r0, 0x1
+ movs r3, 0
+ strb r0, [r1, 0x10]
+ ldr r0, [r2]
+ adds r0, 0x30
+ strb r3, [r0]
+ b _08024F08
+ .pool
+_08024EC4:
+ bl sub_802EB84
+ cmp r0, 0
+ bne _08024F08
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ b _08024EF0
+ .pool
+_08024ED8:
+ ldr r1, [r4]
+ adds r1, 0x30
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bls _08024F08
+ bl sub_8010434
+ ldr r1, [r4]
+_08024EF0:
+ ldrb r0, [r1, 0x10]
+ adds r0, 0x1
+ strb r0, [r1, 0x10]
+ b _08024F08
+_08024EF8:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08024F08
+ movs r0, 0x3
+ bl sub_8026240
+_08024F08:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8024E38
+
+ thumb_func_start sub_8024F10
+sub_8024F10: @ 8024F10
+ push {lr}
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x10]
+ cmp r0, 0
+ bne _08024F2E
+ movs r2, 0x8E
+ lsls r2, 1
+ adds r0, r1, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08024F2E
+ movs r0, 0x4
+ bl sub_8026240
+_08024F2E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8024F10
+
+ thumb_func_start sub_8024F38
+sub_8024F38: @ 8024F38
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C98
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x10]
+ cmp r0, 0
+ bne _08024FF6
+ adds r0, r2, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bhi _08024FE8
+ adds r0, r2, 0
+ adds r0, 0xA8
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08024FEE
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08024F88
+ ldr r1, =0x000031cc
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _08024FEE
+ ldr r3, =0x000031d0
+ adds r0, r2, r3
+ strb r1, [r0]
+ movs r0, 0x2
+ b _08024FC2
+ .pool
+_08024F88:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08024FA8
+ ldr r3, =0x000031cc
+ adds r0, r2, r3
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _08024FEE
+ adds r3, 0x4
+ adds r0, r2, r3
+ strb r1, [r0]
+ movs r0, 0x1
+ b _08024FC2
+ .pool
+_08024FA8:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08024FD4
+ ldr r3, =0x000031cc
+ adds r0, r2, r3
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _08024FEE
+ adds r3, 0x4
+ adds r0, r2, r3
+ strb r1, [r0]
+ movs r0, 0x3
+_08024FC2:
+ bl sub_8027518
+ ldr r1, [r4]
+ ldr r2, =0x000031cc
+ adds r1, r2
+ strb r0, [r1]
+ b _08024FEE
+ .pool
+_08024FD4:
+ movs r0, 0
+ bl sub_8027518
+ ldr r1, [r4]
+ ldr r3, =0x000031cc
+ adds r1, r3
+ strb r0, [r1]
+ b _08024FEE
+ .pool
+_08024FE8:
+ movs r0, 0xB
+ bl sub_8026240
+_08024FEE:
+ bl sub_802671C
+ bl sub_8025F48
+_08024FF6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8024F38
+
+ thumb_func_start sub_8024FFC
+sub_8024FFC: @ 8024FFC
+ push {lr}
+ ldr r0, =gUnknown_02022C98
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bhi _080250C4
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802504C
+ adds r0, r2, 0
+ adds r0, 0x28
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2, r0
+ ldr r1, =0x000031cc
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080250CA
+ ldr r3, =0x000032f8
+ adds r1, r2, r3
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080250CA
+ .pool
+_0802504C:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08025080
+ adds r0, r2, 0
+ adds r0, 0x28
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2, r0
+ ldr r1, =0x000031cc
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080250CA
+ ldr r3, =0x000032f8
+ adds r1, r2, r3
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080250CA
+ .pool
+_08025080:
+ movs r0, 0x20
+ ands r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _080250B8
+ adds r0, r2, 0
+ adds r0, 0x28
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2, r0
+ ldr r1, =0x000031cc
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080250CA
+ ldr r3, =0x000032f8
+ adds r1, r2, r3
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080250CA
+ .pool
+_080250B8:
+ ldr r3, =0x000032f8
+ adds r0, r2, r3
+ strb r1, [r0]
+ b _080250CA
+ .pool
+_080250C4:
+ movs r0, 0xB
+ bl sub_8026240
+_080250CA:
+ bl sub_8026044
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8024FFC
+
+ thumb_func_start sub_80250D4
+sub_80250D4: @ 80250D4
+ push {r4,r5,lr}
+ bl sub_802671C
+ bl sub_8025F48
+ bl sub_8026C50
+ cmp r0, 0x1
+ bne _080250F2
+ bl sub_80272A4
+ movs r0, 0x5
+ bl sub_8026240
+ b _08025150
+_080250F2:
+ ldr r0, =gUnknown_02022C98
+ ldr r2, [r0]
+ movs r1, 0x96
+ lsls r1, 1
+ adds r4, r2, r1
+ movs r1, 0x1
+ str r1, [r4]
+ movs r3, 0x1
+ adds r1, r2, 0
+ adds r1, 0x24
+ adds r5, r0, 0
+ ldrb r1, [r1]
+ cmp r3, r1
+ bcs _08025150
+ movs r1, 0x9A
+ lsls r1, 1
+ adds r0, r2, r1
+ ldr r0, [r0]
+ cmp r0, 0x1
+ beq _08025124
+ movs r0, 0
+ str r0, [r4]
+ b _08025150
+ .pool
+_08025124:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, [r5]
+ adds r0, r2, 0
+ adds r0, 0x24
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _08025150
+ lsls r0, r3, 2
+ movs r4, 0x98
+ lsls r4, 1
+ adds r1, r2, r4
+ adds r1, r0
+ ldr r0, [r1]
+ cmp r0, 0x1
+ beq _08025124
+ movs r0, 0x96
+ lsls r0, 1
+ adds r1, r2, r0
+ movs r0, 0
+ str r0, [r1]
+_08025150:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80250D4
+
+ thumb_func_start sub_8025158
+sub_8025158: @ 8025158
+ push {lr}
+ bl sub_8026044
+ bl sub_8026C90
+ cmp r0, 0x1
+ bne _0802516C
+ movs r0, 0x5
+ bl sub_8026240
+_0802516C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8025158
+
+ thumb_func_start sub_8025170
+sub_8025170: @ 8025170
+ push {r4,lr}
+ bl GetBlockReceivedStatus
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_800A9D8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ beq _0802518C
+ movs r0, 0
+ b _08025192
+_0802518C:
+ bl ResetBlockReceivedFlags
+ movs r0, 0x1
+_08025192:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8025170
+
+ thumb_func_start sub_8025198
+sub_8025198: @ 8025198
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_02022C98
+ ldr r1, [r5]
+ ldrb r4, [r1, 0x10]
+ cmp r4, 0x1
+ beq _080251D0
+ cmp r4, 0x1
+ bgt _080251B4
+ cmp r4, 0
+ beq _080251BA
+ b _0802520C
+ .pool
+_080251B4:
+ cmp r4, 0x2
+ beq _080251DC
+ b _0802520C
+_080251BA:
+ adds r1, 0x4A
+ movs r0, 0
+ movs r2, 0x3C
+ bl SendBlock
+ lsls r0, 24
+ cmp r0, 0
+ beq _08025226
+ ldr r0, [r5]
+ strb r4, [r0, 0x8]
+ b _08025202
+_080251D0:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08025226
+ b _08025202
+_080251DC:
+ bl sub_8025170
+ cmp r0, 0
+ beq _080251EE
+ ldr r0, [r5]
+ adds r1, r0, 0
+ adds r1, 0x24
+ ldrb r1, [r1]
+ strb r1, [r0, 0x8]
+_080251EE:
+ ldr r2, [r5]
+ adds r1, r2, 0
+ adds r1, 0x24
+ ldrb r0, [r2, 0x8]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08025226
+ ldrb r0, [r2, 0x14]
+ adds r0, 0x1
+ strb r0, [r2, 0x14]
+_08025202:
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x10]
+ adds r0, 0x1
+ strb r0, [r1, 0x10]
+ b _08025226
+_0802520C:
+ movs r0, 0x1
+ bl WaitFanfare
+ lsls r0, 24
+ cmp r0, 0
+ beq _08025226
+ movs r0, 0x6
+ bl sub_8026240
+ ldr r0, =0x0000020b
+ movs r1, 0x4
+ bl FadeOutAndPlayNewMapMusic
+_08025226:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8025198
+
+ thumb_func_start sub_8025230
+sub_8025230: @ 8025230
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_02022C98
+ ldr r2, [r5]
+ ldrb r4, [r2, 0x10]
+ cmp r4, 0x1
+ beq _08025274
+ cmp r4, 0x1
+ bgt _0802524C
+ cmp r4, 0
+ beq _08025252
+ b _080252DC
+ .pool
+_0802524C:
+ cmp r4, 0x2
+ beq _08025282
+ b _080252DC
+_08025252:
+ ldrb r0, [r2, 0x14]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, 0x4A
+ adds r1, r2, r1
+ movs r0, 0
+ movs r2, 0x3C
+ bl SendBlock
+ lsls r0, 24
+ cmp r0, 0
+ beq _08025316
+ ldr r0, [r5]
+ strb r4, [r0, 0x8]
+ ldr r1, [r5]
+ b _080252CC
+_08025274:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08025316
+ ldr r1, [r5]
+ b _080252CC
+_08025282:
+ bl sub_8025170
+ cmp r0, 0
+ beq _080252B4
+ movs r4, 0
+ b _080252AA
+_0802528E:
+ ldr r0, [r5]
+ adds r0, 0x4A
+ ldr r1, =gBlockRecvBuffer
+ movs r2, 0x3C
+ bl memcpy
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x24
+ ldrb r0, [r0]
+ strb r0, [r1, 0x8]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080252AA:
+ ldr r0, [r5]
+ adds r0, 0x24
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _0802528E
+_080252B4:
+ ldr r3, =gUnknown_02022C98
+ ldr r2, [r3]
+ adds r1, r2, 0
+ adds r1, 0x24
+ ldrb r0, [r2, 0x8]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08025316
+ ldrb r0, [r2, 0x14]
+ adds r0, 0x1
+ strb r0, [r2, 0x14]
+ ldr r1, [r3]
+_080252CC:
+ ldrb r0, [r1, 0x10]
+ adds r0, 0x1
+ strb r0, [r1, 0x10]
+ b _08025316
+ .pool
+_080252DC:
+ movs r0, 0x1
+ bl WaitFanfare
+ lsls r0, 24
+ cmp r0, 0
+ beq _08025316
+ ldr r0, =gUnknown_02022C98
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r0, r2, 0
+ adds r0, 0x54
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r3, 0x8A
+ lsls r3, 1
+ adds r0, r2, r3
+ strh r1, [r0]
+ movs r0, 0x6
+ bl sub_8026240
+ ldr r0, =0x0000020b
+ movs r1, 0x4
+ bl FadeOutAndPlayNewMapMusic
+_08025316:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8025230
+
+ thumb_func_start sub_8025324
+sub_8025324: @ 8025324
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r1, 0x1
+ mov r0, sp
+ strb r1, [r0]
+ ldr r0, =gUnknown_02022C98
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0x4
+ bls _0802533A
+ b _08025458
+_0802533A:
+ lsls r0, 2
+ ldr r1, =_0802534C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0802534C:
+ .4byte _08025360
+ .4byte _08025384
+ .4byte _0802539C
+ .4byte _080253BC
+ .4byte _080253DC
+_08025360:
+ bl sub_802749C
+ movs r0, 0x1
+ bl sub_80289E8
+ bl sub_8028DFC
+ movs r0, 0x1
+ bl sub_8028EC8
+ movs r0, 0x2
+ bl sub_80292E0
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ b _08025448
+ .pool
+_08025384:
+ bl sub_802A770
+ cmp r0, 0
+ bne _08025466
+ movs r0, 0x5
+ bl sub_80292E0
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ b _08025448
+ .pool
+_0802539C:
+ bl sub_802A794
+ mov r1, sp
+ strb r0, [r1]
+ movs r0, 0
+ movs r2, 0x1
+ bl SendBlock
+ lsls r0, 24
+ cmp r0, 0
+ beq _08025466
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ b _08025448
+ .pool
+_080253BC:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08025466
+ ldr r3, =gUnknown_02022C98
+ ldr r1, [r3]
+ ldrb r0, [r1, 0x10]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r1, 0x10]
+ ldr r0, [r3]
+ strb r2, [r0, 0x8]
+ b _08025466
+ .pool
+_080253DC:
+ bl sub_8025170
+ cmp r0, 0
+ beq _08025422
+ movs r2, 0
+ ldr r1, =gUnknown_02022C98
+ ldr r0, [r1]
+ adds r0, 0x24
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _08025422
+ adds r3, r1, 0
+ movs r5, 0x86
+ lsls r5, 1
+ ldr r4, =gBlockRecvBuffer
+_080253FA:
+ ldr r1, [r3]
+ adds r1, r2, r1
+ adds r1, r5
+ lsls r0, r2, 8
+ adds r0, r4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r1, [r3]
+ adds r0, r1, 0
+ adds r0, 0x24
+ ldrb r0, [r0]
+ strb r0, [r1, 0x8]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, [r3]
+ adds r0, 0x24
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080253FA
+_08025422:
+ ldr r4, =gUnknown_02022C98
+ ldr r2, [r4]
+ adds r1, r2, 0
+ adds r1, 0x24
+ ldrb r0, [r2, 0x8]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08025466
+ ldrb r0, [r2, 0x14]
+ adds r0, 0x1
+ strb r0, [r2, 0x14]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x77
+ bls _08025466
+ movs r0, 0x6
+ bl sub_80292E0
+ ldr r1, [r4]
+_08025448:
+ ldrb r0, [r1, 0x10]
+ adds r0, 0x1
+ strb r0, [r1, 0x10]
+ b _08025466
+ .pool
+_08025458:
+ bl sub_802A770
+ cmp r0, 0
+ bne _08025466
+ movs r0, 0x7
+ bl sub_8026240
+_08025466:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8025324
+
+ thumb_func_start sub_8025470
+sub_8025470: @ 8025470
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r4, =gUnknown_02022C98
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0x7
+ bls _08025480
+ b _08025606
+_08025480:
+ lsls r0, 2
+ ldr r1, =_08025494
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08025494:
+ .4byte _080254B4
+ .4byte _080254D4
+ .4byte _080254F0
+ .4byte _08025504
+ .4byte _08025520
+ .4byte _0802553C
+ .4byte _08025564
+ .4byte _08025578
+_080254B4:
+ bl sub_8027748
+ ldr r1, =0x00000bb7
+ cmp r0, r1
+ bls _080254C4
+ movs r0, 0x4
+ bl sub_80292E0
+_080254C4:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ b _080255E8
+ .pool
+_080254D4:
+ bl sub_802A770
+ cmp r0, 0
+ beq _080254DE
+ b _0802563C
+_080254DE:
+ movs r0, 0x3
+ bl sub_80292E0
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ b _080255E8
+ .pool
+_080254F0:
+ bl sub_8028FCC
+ bl sub_80272E8
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ b _080255E8
+ .pool
+_08025504:
+ bl sub_802A794
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ strb r0, [r1]
+ cmp r0, 0
+ bne _08025516
+ b _0802563C
+_08025516:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ b _080255E8
+ .pool
+_08025520:
+ bl sub_802A770
+ cmp r0, 0
+ beq _0802552A
+ b _0802563C
+_0802552A:
+ movs r0, 0x5
+ bl sub_80292E0
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ b _080255E8
+ .pool
+_0802553C:
+ bl sub_802A794
+ mov r1, sp
+ strb r0, [r1]
+ movs r0, 0
+ movs r2, 0x1
+ bl SendBlock
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802563C
+ ldr r2, =gUnknown_02022C98
+ ldr r1, [r2]
+ movs r0, 0
+ strb r0, [r1, 0x8]
+ ldr r1, [r2]
+ b _080255E8
+ .pool
+_08025564:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802563C
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ b _080255E8
+ .pool
+_08025578:
+ bl sub_8025170
+ cmp r0, 0
+ beq _080255BE
+ movs r2, 0
+ ldr r1, =gUnknown_02022C98
+ ldr r0, [r1]
+ adds r0, 0x24
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080255BE
+ adds r3, r1, 0
+ movs r5, 0x86
+ lsls r5, 1
+ ldr r4, =gBlockRecvBuffer
+_08025596:
+ ldr r1, [r3]
+ adds r1, r2, r1
+ adds r1, r5
+ lsls r0, r2, 8
+ adds r0, r4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r1, [r3]
+ adds r0, r1, 0
+ adds r0, 0x24
+ ldrb r0, [r0]
+ strb r0, [r1, 0x8]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, [r3]
+ adds r0, 0x24
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _08025596
+_080255BE:
+ ldr r4, =gUnknown_02022C98
+ ldr r2, [r4]
+ adds r1, r2, 0
+ adds r1, 0x24
+ ldrb r0, [r2, 0x8]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _080255F8
+ ldrb r0, [r2, 0x14]
+ adds r0, 0x1
+ strb r0, [r2, 0x14]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x77
+ bls _0802563C
+ bl sub_8027608
+ movs r0, 0x6
+ bl sub_80292E0
+ ldr r1, [r4]
+_080255E8:
+ ldrb r0, [r1, 0x10]
+ adds r0, 0x1
+ strb r0, [r1, 0x10]
+ b _0802563C
+ .pool
+_080255F8:
+ bl sub_8027554
+ b _0802563C
+_080255FE:
+ movs r0, 0x8
+ bl sub_8026240
+ b _0802563C
+_08025606:
+ bl sub_802A770
+ cmp r0, 0
+ bne _0802563C
+ movs r2, 0
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x24
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _08025636
+ movs r4, 0x86
+ lsls r4, 1
+ adds r3, r1, r4
+ adds r1, r0, 0
+_08025624:
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080255FE
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r1
+ bcc _08025624
+_08025636:
+ movs r0, 0xA
+ bl sub_8026240
+_0802563C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8025470
+
+ thumb_func_start sub_8025644
+sub_8025644: @ 8025644
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C98
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0x1
+ beq _08025672
+ cmp r0, 0x1
+ bgt _08025660
+ cmp r0, 0
+ beq _08025666
+ b _08025692
+ .pool
+_08025660:
+ cmp r0, 0x2
+ beq _0802567C
+ b _08025692
+_08025666:
+ bl sub_800AC34
+ movs r0, 0x7
+ bl sub_80292E0
+ b _08025688
+_08025672:
+ bl sub_802A770
+ cmp r0, 0
+ bne _080256A0
+ b _08025688
+_0802567C:
+ bl sub_802A794
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bne _080256A0
+_08025688:
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x10]
+ adds r0, 0x1
+ strb r0, [r1, 0x10]
+ b _080256A0
+_08025692:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080256A0
+ movs r0, 0x9
+ bl sub_8026240
+_080256A0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8025644
+
+ thumb_func_start sub_80256AC
+sub_80256AC: @ 80256AC
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, =gUnknown_02022C98
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x10]
+ cmp r1, 0x1
+ beq _080256E0
+ cmp r1, 0x1
+ bgt _080256C8
+ cmp r1, 0
+ beq _080256CE
+ b _08025728
+ .pool
+_080256C8:
+ cmp r1, 0x2
+ beq _080256F8
+ b _08025728
+_080256CE:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _0802571A
+_080256E0:
+ bl UpdatePaletteFade
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802574C
+ b _0802571A
+ .pool
+_080256F8:
+ bl sub_8028B80
+ bl sub_80287E4
+ ldr r0, [r4]
+ adds r0, 0x24
+ ldrb r0, [r0]
+ bl sub_8028614
+ bl sub_8028E84
+ ldr r1, =gUnknown_03000DB0
+ movs r0, 0x1
+ str r0, [r1]
+ movs r0, 0x8
+ bl sub_80292E0
+_0802571A:
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x10]
+ adds r0, 0x1
+ strb r0, [r1, 0x10]
+ b _0802574C
+ .pool
+_08025728:
+ bl sub_802A770
+ cmp r0, 0
+ bne _0802574C
+ ldr r4, =gUnknown_02022C98
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl SetMainCallback2
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x4]
+ bl DestroyTask
+ ldr r0, [r4]
+ bl Free
+ bl FreeAllWindowBuffers
+_0802574C:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80256AC
+
+ thumb_func_start sub_8025758
+sub_8025758: @ 8025758
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, =gUnknown_02022C98
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x10]
+ cmp r0, 0x6
+ bls _08025768
+ b _0802585C
+_08025768:
+ lsls r0, 2
+ ldr r1, =_0802577C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0802577C:
+ .4byte _08025798
+ .4byte _08025838
+ .4byte _080257B0
+ .4byte _08025802
+ .4byte _08025808
+ .4byte _08025818
+ .4byte _08025838
+_08025798:
+ movs r0, 0x9
+ bl sub_80292E0
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _08025848
+_080257B0:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ b _08025848
+_08025802:
+ bl StopMapMusic
+ b _08025848
+_08025808:
+ ldr r0, =0x0000021e
+ bl PlayNewMapMusic
+ bl sub_8028E4C
+ b _08025848
+ .pool
+_08025818:
+ movs r4, 0x1
+ negs r4, r4
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _08025848
+_08025838:
+ bl UpdatePaletteFade
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802588C
+_08025848:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x10]
+ adds r0, 0x1
+ strb r0, [r1, 0x10]
+ b _0802588C
+ .pool
+_0802585C:
+ ldrb r0, [r1, 0x4]
+ bl DestroyTask
+ ldr r0, =sub_802589C
+ bl sub_802621C
+ bl sub_802903C
+ ldr r0, [r4]
+ bl sub_8024A30
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08025882
+ ldr r0, [r4]
+ adds r0, 0x24
+ movs r1, 0x1
+ strb r1, [r0]
+_08025882:
+ bl sub_80273F0
+ movs r0, 0
+ bl sub_8028EC8
+_0802588C:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8025758
+
+ thumb_func_start sub_802589C
+sub_802589C: @ 802589C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =gUnknown_02022C98
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x10]
+ adds r4, r1, 0
+ cmp r0, 0x1
+ beq _080258C8
+ cmp r0, 0x1
+ bgt _080258BC
+ cmp r0, 0
+ beq _080258C2
+ b _080258E0
+ .pool
+_080258BC:
+ cmp r0, 0x2
+ beq _080258CE
+ b _080258E0
+_080258C2:
+ bl sub_8026264
+ b _080258D2
+_080258C8:
+ bl sub_80286E4
+ b _080258D6
+_080258CE:
+ bl sub_8028828
+_080258D2:
+ cmp r0, 0x1
+ bne _08025904
+_080258D6:
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x10]
+ adds r0, 0x1
+ strb r0, [r1, 0x10]
+ b _08025904
+_080258E0:
+ ldr r0, [r4]
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080258F8
+ ldr r0, =sub_8024D4C
+ bl sub_802621C
+ b _080258FE
+ .pool
+_080258F8:
+ ldr r0, =sub_8024D84
+ bl sub_802621C
+_080258FE:
+ adds r0, r5, 0
+ bl DestroyTask
+_08025904:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802589C
+
+ thumb_func_start sub_8025910
+sub_8025910: @ 8025910
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r5, r0, r1
+ movs r0, 0
+ ldrsh r4, [r5, r0]
+ cmp r4, 0x1
+ beq _0802596C
+ cmp r4, 0x1
+ bgt _08025938
+ cmp r4, 0
+ beq _0802593E
+ b _080259E8
+ .pool
+_08025938:
+ cmp r4, 0x2
+ beq _0802597E
+ b _080259E8
+_0802593E:
+ ldr r6, =gUnknown_02022C98
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ lsls r0, 2
+ ldr r2, =0x0000318c
+ adds r0, r2
+ adds r1, r0
+ movs r0, 0
+ movs r2, 0x1
+ bl SendBlock
+ lsls r0, 24
+ cmp r0, 0
+ beq _080259E8
+ ldr r0, [r6]
+ strb r4, [r0, 0x8]
+ b _08025976
+ .pool
+_0802596C:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _080259E8
+_08025976:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ b _080259E8
+_0802597E:
+ bl sub_8025170
+ cmp r0, 0
+ beq _080259C4
+ movs r2, 0
+ ldr r1, =gUnknown_02022C98
+ ldr r0, [r1]
+ adds r0, 0x24
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080259C4
+ adds r3, r1, 0
+ ldr r5, =gBlockRecvBuffer
+ ldr r4, =0x0000318c
+_0802599A:
+ ldr r0, [r3]
+ lsls r1, r2, 2
+ adds r1, r0
+ adds r1, r4
+ lsls r0, r2, 8
+ adds r0, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r1, [r3]
+ adds r0, r1, 0
+ adds r0, 0x24
+ ldrb r0, [r0]
+ strb r0, [r1, 0x8]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, [r3]
+ adds r0, 0x24
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _0802599A
+_080259C4:
+ ldr r4, =gUnknown_02022C98
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0x24
+ ldrb r0, [r0, 0x8]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _080259E8
+ adds r0, r6, 0
+ bl DestroyTask
+ movs r0, 0x6
+ bl sub_80292E0
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x10]
+ adds r0, 0x1
+ strb r0, [r1, 0x10]
+_080259E8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8025910
+
+ thumb_func_start sub_80259FC
+sub_80259FC: @ 80259FC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x18
+ ldr r6, =gUnknown_02022C98
+ ldr r0, [r6]
+ adds r1, r0, 0
+ adds r1, 0x24
+ ldrb r7, [r1]
+ ldr r2, =0x000031a0
+ adds r1, r0, r2
+ ldr r3, =0x000031cc
+ adds r2, r0, r3
+ ldr r4, =0x00003208
+ adds r3, r0, r4
+ ldr r5, =0x00003244
+ adds r4, r0, r5
+ str r4, [sp]
+ adds r5, 0x3C
+ adds r4, r0, r5
+ str r4, [sp, 0x4]
+ adds r5, 0x3C
+ adds r4, r0, r5
+ str r4, [sp, 0x8]
+ adds r4, r0, 0
+ adds r4, 0x40
+ str r4, [sp, 0xC]
+ movs r5, 0x90
+ lsls r5, 1
+ adds r4, r0, r5
+ str r4, [sp, 0x10]
+ movs r4, 0x96
+ lsls r4, 1
+ adds r0, r4
+ str r0, [sp, 0x14]
+ movs r0, 0
+ bl sub_8028164
+ ldr r1, [r6]
+ ldr r5, =0x000031b0
+ adds r2, r1, r5
+ str r0, [r2]
+ movs r0, 0x94
+ lsls r0, 1
+ adds r1, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r5, 0x1
+ cmp r5, r7
+ bcs _08025AA4
+_08025A60:
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0xA8
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08025A9A
+ lsls r0, r5, 4
+ subs r0, r5
+ lsls r4, r0, 2
+ adds r1, r4, r1
+ ldr r2, =0x000031cc
+ adds r1, r2
+ adds r0, r5, 0
+ bl sub_8028318
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _08025A9A
+ ldr r0, [r6]
+ adds r0, r4
+ ldr r3, =0x000031cc
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r6]
+ movs r4, 0x94
+ lsls r4, 1
+ adds r0, r4
+ strb r1, [r0]
+_08025A9A:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r7
+ bcc _08025A60
+_08025AA4:
+ ldr r5, =gUnknown_02022C98
+ ldr r1, [r5]
+ movs r6, 0x92
+ lsls r6, 1
+ adds r1, r6
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3B
+ bls _08025B02
+ ldr r1, [r5]
+ movs r2, 0x94
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrb r4, [r0]
+ cmp r4, 0
+ beq _08025AF0
+ bl sub_8011AC8
+ ldr r0, [r5]
+ adds r0, r6
+ movs r1, 0
+ strb r1, [r0]
+ b _08025B02
+ .pool
+_08025AF0:
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ cmp r0, 0x46
+ bls _08025B02
+ bl sub_8011AC8
+ ldr r0, [r5]
+ adds r0, r6
+ strb r4, [r0]
+_08025B02:
+ movs r5, 0
+ cmp r5, r7
+ bcs _08025BF6
+ ldr r3, =0x000031cc
+ mov r12, r3
+ ldr r4, =gUnknown_02022C98
+ mov r8, r4
+_08025B10:
+ mov r6, r8
+ ldr r2, [r6]
+ lsls r0, r5, 4
+ subs r1, r0, r5
+ lsls r1, 2
+ adds r1, r2, r1
+ add r1, r12
+ ldrb r1, [r1]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _08025B36
+ adds r0, r2, 0
+ adds r0, 0xA8
+ adds r1, r0, r5
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08025B36
+ movs r0, 0x1
+ strb r0, [r1]
+_08025B36:
+ adds r3, r4, 0
+ ldr r1, [r3]
+ adds r0, r1, 0
+ adds r0, 0xA8
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bgt _08025B54
+ cmp r0, 0x1
+ bge _08025B5A
+ b _08025BEC
+ .pool
+_08025B54:
+ cmp r0, 0x4
+ beq _08025BA8
+ b _08025BEC
+_08025B5A:
+ adds r1, 0xB0
+ adds r1, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bls _08025BEC
+ ldr r0, [r3]
+ adds r0, 0xB0
+ adds r0, r5
+ strb r2, [r0]
+ ldr r0, [r3]
+ adds r0, 0xA8
+ adds r0, r5
+ strb r2, [r0]
+ ldr r0, [r3]
+ subs r1, r6, r5
+ lsls r1, 2
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ ldr r0, [r3]
+ adds r0, r1
+ ldr r6, =0x000031d0
+ adds r0, r6
+ strb r2, [r0]
+ ldr r0, [r3]
+ adds r0, r1
+ ldr r1, =0x000031d4
+ adds r0, r1
+ b _08025BEA
+ .pool
+_08025BA8:
+ adds r1, 0xB0
+ adds r1, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x27
+ bls _08025BEC
+ ldr r0, [r4]
+ adds r0, 0xB0
+ adds r0, r5
+ strb r2, [r0]
+ ldr r0, [r4]
+ adds r0, 0xA8
+ adds r0, r5
+ strb r2, [r0]
+ ldr r0, [r4]
+ subs r1, r6, r5
+ lsls r1, 2
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ ldr r0, [r4]
+ adds r0, r1
+ ldr r3, =0x000031d0
+ adds r0, r3
+ strb r2, [r0]
+ ldr r0, [r4]
+ adds r0, r1
+ ldr r6, =0x000031d4
+ adds r0, r6
+_08025BEA:
+ strb r2, [r0]
+_08025BEC:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r7
+ bcc _08025B10
+_08025BF6:
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80259FC
+
+ thumb_func_start sub_8025C0C
+sub_8025C0C: @ 8025C0C
+ push {r4-r7,lr}
+ sub sp, 0x18
+ ldr r5, =gUnknown_02022C98
+ ldr r0, [r5]
+ adds r1, r0, 0
+ adds r1, 0x24
+ ldrb r6, [r1]
+ ldr r2, =0x000031a0
+ adds r1, r0, r2
+ ldr r3, =0x000031cc
+ adds r2, r0, r3
+ ldr r4, =0x00003208
+ adds r3, r0, r4
+ ldr r7, =0x00003244
+ adds r4, r0, r7
+ str r4, [sp]
+ adds r7, 0x3C
+ adds r4, r0, r7
+ str r4, [sp, 0x4]
+ adds r7, 0x3C
+ adds r4, r0, r7
+ str r4, [sp, 0x8]
+ adds r4, r0, 0
+ adds r4, 0x40
+ str r4, [sp, 0xC]
+ movs r7, 0x90
+ lsls r7, 1
+ adds r4, r0, r7
+ str r4, [sp, 0x10]
+ movs r4, 0x96
+ lsls r4, 1
+ adds r0, r4
+ str r0, [sp, 0x14]
+ movs r0, 0
+ bl sub_8028164
+ ldr r1, [r5]
+ ldr r7, =0x000031b0
+ adds r2, r1, r7
+ str r0, [r2]
+ movs r0, 0x94
+ lsls r0, 1
+ adds r1, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r4, 0x1
+ cmp r4, r6
+ bcs _08025C9C
+_08025C6C:
+ adds r0, r4, 0
+ bl sub_8028374
+ cmp r0, 0
+ beq _08025C92
+ ldr r0, =gUnknown_02022C98
+ ldr r2, [r0]
+ lsls r1, r4, 2
+ movs r3, 0x98
+ lsls r3, 1
+ adds r0, r2, r3
+ adds r0, r1
+ movs r1, 0x1
+ str r1, [r0]
+ movs r7, 0x94
+ lsls r7, 1
+ adds r1, r2, r7
+ movs r0, 0
+ strb r0, [r1]
+_08025C92:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r6
+ bcc _08025C6C
+_08025C9C:
+ ldr r5, =gUnknown_02022C98
+ ldr r1, [r5]
+ movs r6, 0x92
+ lsls r6, 1
+ adds r1, r6
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3B
+ bls _08025CFA
+ ldr r1, [r5]
+ movs r2, 0x94
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrb r4, [r0]
+ cmp r4, 0
+ beq _08025CE8
+ bl sub_8011AC8
+ ldr r0, [r5]
+ adds r0, r6
+ movs r1, 0
+ strb r1, [r0]
+ b _08025CFA
+ .pool
+_08025CE8:
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ cmp r0, 0x46
+ bls _08025CFA
+ bl sub_8011AC8
+ ldr r0, [r5]
+ adds r0, r6
+ strb r4, [r0]
+_08025CFA:
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8025C0C
+
+ thumb_func_start sub_8025D04
+sub_8025D04: @ 8025D04
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_02022C98
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x18]
+ cmp r0, 0x4
+ beq _08025D40
+ cmp r0, 0x4
+ bgt _08025D20
+ cmp r0, 0x3
+ beq _08025D26
+ b _08025D4A
+ .pool
+_08025D20:
+ cmp r0, 0xB
+ beq _08025D46
+ b _08025D4A
+_08025D26:
+ bl sub_8026BB8
+ adds r4, r0, 0
+ cmp r4, 0x1
+ bne _08025D4A
+ bl sub_8026C28
+ ldr r0, [r5]
+ movs r1, 0x8E
+ lsls r1, 1
+ adds r0, r1
+ str r4, [r0]
+ b _08025D4A
+_08025D40:
+ bl sub_80259FC
+ b _08025D4A
+_08025D46:
+ bl sub_8025C0C
+_08025D4A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8025D04
+
+ thumb_func_start sub_8025D50
+sub_8025D50: @ 8025D50
+ push {r4-r6,lr}
+ sub sp, 0x14
+ ldr r0, =gUnknown_02022C98
+ ldr r5, [r0]
+ ldrb r0, [r5, 0x18]
+ cmp r0, 0x4
+ beq _08025D68
+ cmp r0, 0xB
+ beq _08025DB8
+ b _08025DF4
+ .pool
+_08025D68:
+ ldr r1, =0x000032cc
+ adds r0, r5, r1
+ ldr r2, =0x000031cc
+ adds r1, r5, r2
+ ldr r3, =0x00003208
+ adds r2, r5, r3
+ ldr r4, =0x00003244
+ adds r3, r5, r4
+ movs r6, 0xCA
+ lsls r6, 6
+ adds r4, r5, r6
+ str r4, [sp]
+ adds r6, 0x3C
+ adds r4, r5, r6
+ str r4, [sp, 0x4]
+ adds r4, r5, 0
+ adds r4, 0x40
+ ldrb r4, [r4]
+ str r4, [sp, 0x8]
+ movs r6, 0x90
+ lsls r6, 1
+ adds r4, r5, r6
+ ldr r4, [r4]
+ str r4, [sp, 0xC]
+ adds r6, 0xC
+ adds r4, r5, r6
+ ldr r4, [r4]
+ str r4, [sp, 0x10]
+ bl sub_8027E30
+ b _08025DF4
+ .pool
+_08025DB8:
+ ldr r1, =0x000032cc
+ adds r0, r5, r1
+ ldr r2, =0x000031cc
+ adds r1, r5, r2
+ ldr r3, =0x00003208
+ adds r2, r5, r3
+ ldr r4, =0x00003244
+ adds r3, r5, r4
+ movs r6, 0xCA
+ lsls r6, 6
+ adds r4, r5, r6
+ str r4, [sp]
+ adds r6, 0x3C
+ adds r4, r5, r6
+ str r4, [sp, 0x4]
+ adds r4, r5, 0
+ adds r4, 0x40
+ ldrb r4, [r4]
+ str r4, [sp, 0x8]
+ movs r6, 0x90
+ lsls r6, 1
+ adds r4, r5, r6
+ ldr r4, [r4]
+ str r4, [sp, 0xC]
+ adds r6, 0xC
+ adds r4, r5, r6
+ ldr r4, [r4]
+ str r4, [sp, 0x10]
+ bl sub_8027E30
+_08025DF4:
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8025D50
+
+ thumb_func_start sub_8025E0C
+sub_8025E0C: @ 8025E0C
+ push {r4-r6,lr}
+ sub sp, 0x18
+ ldr r0, =gUnknown_02022C98
+ ldr r5, [r0]
+ ldrb r0, [r5, 0x18]
+ cmp r0, 0x4
+ beq _08025E24
+ cmp r0, 0xB
+ beq _08025E7C
+ b _08025EC0
+ .pool
+_08025E24:
+ adds r0, r5, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 2
+ ldr r2, =0x000031a0
+ adds r1, r2
+ adds r1, r5, r1
+ ldr r3, =0x000031cc
+ adds r2, r5, r3
+ ldr r4, =0x00003208
+ adds r3, r5, r4
+ ldr r6, =0x00003244
+ adds r4, r5, r6
+ str r4, [sp]
+ adds r6, 0x3C
+ adds r4, r5, r6
+ str r4, [sp, 0x4]
+ adds r6, 0x3C
+ adds r4, r5, r6
+ str r4, [sp, 0x8]
+ adds r4, r5, 0
+ adds r4, 0x40
+ str r4, [sp, 0xC]
+ movs r6, 0x90
+ lsls r6, 1
+ adds r4, r5, r6
+ str r4, [sp, 0x10]
+ adds r6, 0xC
+ adds r4, r5, r6
+ str r4, [sp, 0x14]
+ bl sub_8028164
+ b _08025EC0
+ .pool
+_08025E7C:
+ adds r0, r5, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 2
+ ldr r2, =0x000031a0
+ adds r1, r2
+ adds r1, r5, r1
+ ldr r3, =0x000031cc
+ adds r2, r5, r3
+ ldr r4, =0x00003208
+ adds r3, r5, r4
+ ldr r6, =0x00003244
+ adds r4, r5, r6
+ str r4, [sp]
+ adds r6, 0x3C
+ adds r4, r5, r6
+ str r4, [sp, 0x4]
+ adds r6, 0x3C
+ adds r4, r5, r6
+ str r4, [sp, 0x8]
+ adds r4, r5, 0
+ adds r4, 0x40
+ str r4, [sp, 0xC]
+ movs r6, 0x90
+ lsls r6, 1
+ adds r4, r5, r6
+ str r4, [sp, 0x10]
+ adds r6, 0xC
+ adds r4, r5, r6
+ str r4, [sp, 0x14]
+ bl sub_8028164
+_08025EC0:
+ add sp, 0x18
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8025E0C
+
+ thumb_func_start sub_8025ED8
+sub_8025ED8: @ 8025ED8
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C98
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x18]
+ cmp r0, 0x4
+ beq _08025F0E
+ cmp r0, 0x4
+ bgt _08025EF4
+ cmp r0, 0x3
+ beq _08025EFA
+ b _08025F40
+ .pool
+_08025EF4:
+ cmp r0, 0xB
+ beq _08025F24
+ b _08025F40
+_08025EFA:
+ movs r0, 0x1
+ bl sub_8027DD0
+ ldr r0, [r4]
+ movs r1, 0x8E
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0x1
+ str r1, [r0]
+ b _08025F40
+_08025F0E:
+ ldr r2, =0x000032f8
+ adds r1, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08025F40
+ bl sub_80282EC
+ b _08025F40
+ .pool
+_08025F24:
+ movs r2, 0x90
+ lsls r2, 1
+ adds r0, r1, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08025F40
+ adds r2, 0xC
+ adds r0, r1, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08025F40
+ movs r0, 0x1
+ bl sub_8028350
+_08025F40:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8025ED8
+
+ thumb_func_start sub_8025F48
+sub_8025F48: @ 8025F48
+ push {r4-r6,lr}
+ ldr r6, =gUnknown_02022C98
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0x28
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r2, r0
+ ldr r3, =0x000031cc
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08025F88
+ bl IsSEPlaying
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08025FEA
+ ldr r0, [r6]
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r2
+ strb r1, [r0]
+ b _08025FEA
+ .pool
+_08025F88:
+ ldr r3, =0x000031d0
+ adds r0, r1, r3
+ ldrb r4, [r0]
+ cmp r4, 0x1
+ bne _08025FB8
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08025FEA
+ movs r0, 0x1F
+ bl m4aSongNumStop
+ movs r0, 0x1F
+ bl PlaySE
+ ldr r0, [r6]
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r2
+ b _08025FE8
+ .pool
+_08025FB8:
+ ldr r3, =0x000031d4
+ adds r0, r1, r3
+ ldrb r4, [r0]
+ cmp r4, 0x1
+ bne _08025FEA
+ movs r5, 0xA2
+ lsls r5, 1
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08025FEA
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08025FEA
+ movs r0, 0x16
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_80284CC
+ ldr r0, [r6]
+ adds r0, r5
+_08025FE8:
+ strb r4, [r0]
+_08025FEA:
+ ldr r0, =gUnknown_02022C98
+ ldr r2, [r0]
+ movs r5, 0xAA
+ lsls r5, 1
+ adds r1, r2, r5
+ ldrb r1, [r1]
+ adds r4, r0, 0
+ cmp r1, 0
+ bne _0802601C
+ adds r0, r2, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bls _0802601C
+ bl StopMapMusic
+ ldr r0, [r4]
+ adds r0, r5
+ movs r1, 0x1
+ b _0802603A
+ .pool
+_0802601C:
+ ldr r0, [r4]
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0802603C
+ movs r0, 0xB
+ bl PlayFanfareByFanfareNum
+ ldr r0, [r4]
+ movs r2, 0xAA
+ lsls r2, 1
+ adds r0, r2
+ movs r1, 0x2
+_0802603A:
+ strb r1, [r0]
+_0802603C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8025F48
+
+ thumb_func_start sub_8026044
+sub_8026044: @ 8026044
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r6, =gUnknown_02022C98
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0x44
+ ldrb r0, [r0]
+ mov r8, r0
+ adds r0, r2, 0
+ adds r0, 0x48
+ ldrb r7, [r0]
+ subs r0, 0x20
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r2, r0
+ ldr r3, =0x000031cc
+ adds r0, r1, r3
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _0802609C
+ ldr r4, =0x000031d0
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080260FE
+ adds r4, 0x4
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080260FE
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r0, r2, r1
+ strb r3, [r0]
+ b _080260FE
+ .pool
+_0802609C:
+ ldr r3, =0x000031d0
+ adds r0, r1, r3
+ ldrb r4, [r0]
+ cmp r4, 0x1
+ bne _080260CC
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080260FE
+ movs r0, 0x1F
+ bl m4aSongNumStop
+ movs r0, 0x1F
+ bl PlaySE
+ ldr r0, [r6]
+ movs r3, 0xA2
+ lsls r3, 1
+ adds r0, r3
+ b _080260FC
+ .pool
+_080260CC:
+ ldr r4, =0x000031d4
+ adds r0, r1, r4
+ ldrb r4, [r0]
+ cmp r4, 0x1
+ bne _080260FE
+ movs r5, 0xA2
+ lsls r5, 1
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080260FE
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _080260FE
+ movs r0, 0x16
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_80284CC
+ ldr r0, [r6]
+ adds r0, r5
+_080260FC:
+ strb r4, [r0]
+_080260FE:
+ mov r4, r8
+ cmp r4, r7
+ bcs _08026172
+ ldr r5, =gUnknown_02022C98
+_08026106:
+ ldr r2, [r5]
+ adds r0, r2, 0
+ adds r0, 0x28
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, =0x000031a0
+ adds r0, r1
+ adds r0, r2, r0
+ adds r1, r0, 0
+ adds r1, 0x14
+ adds r0, 0x1F
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bls _0802615C
+ movs r3, 0xA4
+ lsls r3, 1
+ adds r0, r2, r3
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08026168
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ adds r0, 0x4A
+ bl PlaySE
+ ldr r0, [r5]
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r4
+ movs r1, 0x1
+ b _08026166
+ .pool
+_0802615C:
+ movs r3, 0xA4
+ lsls r3, 1
+ adds r0, r2, r3
+ adds r0, r4
+ movs r1, 0
+_08026166:
+ strb r1, [r0]
+_08026168:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r7
+ bcc _08026106
+_08026172:
+ ldr r0, =gUnknown_02022C98
+ ldr r2, [r0]
+ movs r5, 0xAA
+ lsls r5, 1
+ adds r1, r2, r5
+ ldrb r1, [r1]
+ adds r4, r0, 0
+ cmp r1, 0
+ bne _080261A0
+ adds r0, r2, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bls _080261A0
+ bl StopMapMusic
+ ldr r0, [r4]
+ adds r0, r5
+ movs r1, 0x1
+ b _080261BE
+ .pool
+_080261A0:
+ ldr r0, [r4]
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080261C0
+ movs r0, 0xB
+ bl PlayFanfareByFanfareNum
+ ldr r0, [r4]
+ movs r3, 0xAA
+ lsls r3, 1
+ adds r0, r3
+ movs r1, 0x2
+_080261BE:
+ strb r1, [r0]
+_080261C0:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8026044
+
+ thumb_func_start sub_80261CC
+sub_80261CC: @ 80261CC
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80261CC
+
+ thumb_func_start sub_80261E4
+sub_80261E4: @ 80261E4
+ push {lr}
+ bl TransferPlttBuffer
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80261E4
+
+ thumb_func_start sub_80261F8
+sub_80261F8: @ 80261F8
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ bl IsMonShiny
+ strb r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80261F8
+
+ thumb_func_start sub_802620C
+sub_802620C: @ 802620C
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ bl CreateTask
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802620C
+
+ thumb_func_start sub_802621C
+sub_802621C: @ 802621C
+ push {lr}
+ movs r1, 0x1
+ bl CreateTask
+ ldr r1, =gUnknown_02022C98
+ ldr r3, [r1]
+ movs r2, 0
+ strb r0, [r3, 0x4]
+ ldr r0, [r1]
+ strb r2, [r0, 0x10]
+ ldr r0, [r1]
+ strb r2, [r0, 0xC]
+ ldr r0, [r1]
+ strb r2, [r0, 0x14]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802621C
+
+ thumb_func_start sub_8026240
+sub_8026240: @ 8026240
+ push {r4,lr}
+ ldr r2, =gUnknown_02022C98
+ ldr r1, [r2]
+ ldrb r3, [r1, 0x18]
+ movs r4, 0
+ strb r3, [r1, 0x1C]
+ ldr r1, [r2]
+ strb r0, [r1, 0x18]
+ ldr r0, [r2]
+ strb r4, [r0, 0x10]
+ ldr r0, [r2]
+ strb r4, [r0, 0x14]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8026240
+
+ thumb_func_start sub_8026264
+sub_8026264: @ 8026264
+ push {r4,lr}
+ ldr r3, =gUnknown_02022C98
+ ldr r1, [r3]
+ ldrb r0, [r1, 0x14]
+ lsrs r2, r0, 2
+ adds r0, 0x1
+ strb r0, [r1, 0x14]
+ cmp r2, 0
+ beq _080262B8
+ ldr r3, [r3]
+ ldrb r0, [r3, 0x14]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _080262B8
+ ldr r1, =gUnknown_082F7A94
+ adds r0, r3, 0
+ adds r0, 0x24
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080262A0
+ movs r0, 0x1
+ b _080262BA
+ .pool
+_080262A0:
+ lsls r4, r2, 3
+ adds r1, r4, 0
+ movs r0, 0x14
+ bl SetGpuReg
+ negs r4, r4
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0x18
+ adds r1, r4, 0
+ bl SetGpuReg
+_080262B8:
+ movs r0, 0
+_080262BA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8026264
+
+ thumb_func_start sub_80262C0
+sub_80262C0: @ 80262C0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r2, =gUnknown_02022C98
+ ldr r0, [r2]
+ adds r1, r0, 0
+ adds r1, 0x44
+ adds r0, 0x48
+ ldrb r5, [r0]
+ ldrb r1, [r1]
+ cmp r1, r5
+ bcs _0802630C
+ mov r8, r2
+ ldr r0, =0x000032e0
+ mov r12, r0
+ movs r7, 0
+ movs r6, 0x1
+_080262E2:
+ mov r2, r8
+ ldr r0, [r2]
+ mov r2, r12
+ adds r4, r0, r2
+ ldr r2, =0x000032eb
+ adds r0, r2
+ adds r2, r0, r1
+ movs r3, 0
+ adds r0, r1, 0
+ ands r0, r6
+ cmp r0, 0
+ bne _080262FC
+ movs r3, 0x1
+_080262FC:
+ strb r3, [r2]
+ adds r0, r4, r1
+ strb r7, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, r5
+ bcc _080262E2
+_0802630C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80262C0
+
+ thumb_func_start sub_8026324
+sub_8026324: @ 8026324
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x44
+ ldrb r0, [r0]
+ str r0, [sp]
+ adds r0, r1, 0
+ adds r0, 0x48
+ ldrb r0, [r0]
+ str r0, [sp, 0x4]
+ adds r0, r1, 0
+ adds r0, 0x24
+ ldrb r0, [r0]
+ str r0, [sp, 0x8]
+ adds r0, r1, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bls _08026358
+ b _08026614
+_08026358:
+ movs r6, 0
+ ldr r0, [sp, 0x8]
+ cmp r6, r0
+ bcs _08026440
+_08026360:
+ ldr r3, =gUnknown_02022C98
+ lsls r0, r6, 4
+ subs r1, r0, r6
+ lsls r1, 2
+ ldr r2, [r3]
+ adds r1, r2
+ ldr r4, =0x000031cc
+ adds r4, r1
+ mov r8, r4
+ ldrb r1, [r4]
+ mov r9, r0
+ adds r0, r6, 0x1
+ str r0, [sp, 0xC]
+ cmp r1, 0
+ beq _08026434
+ adds r0, r2, 0
+ adds r0, 0xA8
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08026434
+ ldr r1, [sp]
+ mov r10, r1
+ ldr r2, [sp, 0x4]
+ cmp r10, r2
+ bcs _08026434
+ adds r7, r3, 0
+_08026396:
+ ldr r0, =gUnknown_082F449C
+ add r0, r10
+ ldrb r5, [r0]
+ ldr r1, [r7]
+ lsls r4, r5, 1
+ adds r0, r1, 0
+ adds r0, 0xF4
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, r6
+ beq _08026434
+ adds r0, r1, 0
+ adds r0, 0xF5
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, r6
+ beq _08026434
+ mov r0, r8
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ adds r2, r5, 0
+ bl sub_8026634
+ cmp r0, 0x1
+ bne _08026410
+ movs r2, 0
+ ldr r3, =gUnknown_02022C98
+ mov r8, r4
+_080263CE:
+ ldr r0, [r3]
+ mov r4, r8
+ adds r1, r2, r4
+ adds r0, 0xF4
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _08026404
+ strb r6, [r1]
+ ldr r0, [r3]
+ adds r0, 0xA8
+ adds r0, r6
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r0, [r3]
+ adds r0, 0xC4
+ adds r0, r5
+ movs r1, 0x1
+ strb r1, [r0]
+ b _08026434
+ .pool
+_08026404:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1
+ bls _080263CE
+ b _08026434
+_08026410:
+ ldr r0, [r7]
+ mov r2, r9
+ subs r1, r2, r6
+ lsls r1, 2
+ adds r0, r1
+ ldr r4, =0x000031d4
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08026434
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, [sp, 0x4]
+ cmp r10, r0
+ bcc _08026396
+_08026434:
+ ldr r1, [sp, 0xC]
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ ldr r2, [sp, 0x8]
+ cmp r6, r2
+ bcc _08026360
+_08026440:
+ ldr r4, [sp]
+ mov r10, r4
+ ldr r0, [sp, 0x4]
+ cmp r10, r0
+ bcc _0802644C
+ b _08026614
+_0802644C:
+ ldr r1, =gUnknown_02022C98
+ mov r9, r1
+_08026450:
+ movs r6, 0xFF
+ ldr r0, =gUnknown_082F449C
+ add r0, r10
+ ldrb r5, [r0]
+ mov r2, r9
+ ldr r0, [r2]
+ adds r0, 0xC4
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08026468
+ b _08026602
+_08026468:
+ adds r0, r5, 0
+ bl sub_8026D8C
+ mov r1, r9
+ ldr r4, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ adds r1, 0x90
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r1, 0x7
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1
+ bls _0802648E
+ movs r3, 0x2
+_0802648E:
+ ldr r2, =gUnknown_082F7A88
+ ldr r0, =0x000031b4
+ adds r1, r4, r0
+ adds r1, r5
+ lsls r0, r3, 1
+ adds r0, r3
+ ldrb r1, [r1]
+ adds r0, r1
+ adds r0, r2
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0xD0
+ adds r0, r5
+ ldrb r0, [r0]
+ subs r2, r1, r0
+ cmp r2, 0x5
+ bgt _080264BC
+ adds r1, r4, 0
+ adds r1, 0x9C
+ adds r1, r5
+ ldrb r0, [r1]
+ adds r0, r2
+ strb r0, [r1]
+_080264BC:
+ mov r2, r9
+ ldr r1, [r2]
+ adds r1, 0x9C
+ adds r1, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r1]
+ movs r4, 0xFF
+ ands r0, r4
+ cmp r0, 0x5
+ bhi _080264D6
+ b _08026602
+_080264D6:
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, 0x9C
+ adds r0, r5
+ strb r2, [r0]
+ ldr r3, [r1]
+ lsls r1, r5, 1
+ adds r0, r3, 0
+ adds r0, 0xF4
+ adds r2, r0, r1
+ ldrb r0, [r2]
+ mov r8, r1
+ cmp r0, 0xFF
+ bne _08026518
+ adds r0, r3, 0
+ adds r0, 0xF5
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08026500
+ b _08026602
+_08026500:
+ b _08026528
+ .pool
+_08026518:
+ adds r0, r3, 0
+ adds r0, 0xF5
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08026528
+ ldrb r4, [r2]
+ b _0802654E
+_08026528:
+ mov r2, r9
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0xF4
+ add r0, r8
+ ldrb r7, [r0]
+ adds r1, 0xF5
+ add r1, r8
+ ldrb r6, [r1]
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _0802654A
+ adds r4, r7, 0
+ b _0802654E
+_0802654A:
+ adds r4, r6, 0
+ adds r6, r7, 0
+_0802654E:
+ mov r1, r9
+ ldr r0, [r1]
+ ldr r2, =0x000032eb
+ adds r0, r2
+ adds r0, r5
+ movs r1, 0x7
+ strb r1, [r0]
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, 0xC4
+ adds r0, r5
+ movs r1, 0x2
+ strb r1, [r0]
+ mov r2, r9
+ ldr r0, [r2]
+ adds r0, 0xA8
+ adds r0, r4
+ movs r1, 0x3
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r0, 0xB8
+ adds r0, r5
+ strb r4, [r0]
+ ldr r1, [r2]
+ lsls r0, r4, 4
+ subs r0, r4
+ lsls r0, 2
+ adds r1, r0
+ ldr r2, =0x000031d0
+ adds r1, r2
+ movs r0, 0x1
+ strb r0, [r1]
+ mov r2, r9
+ ldr r1, [r2]
+ lsls r0, r6, 4
+ subs r0, r6
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, =0x000031d4
+ adds r1, r0
+ movs r2, 0x1
+ strb r2, [r1]
+ mov r0, r9
+ ldr r1, [r0]
+ lsls r0, r4, 1
+ adds r1, 0x86
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_8026F1C
+ movs r0, 0x1
+ bl sub_8027234
+ adds r0, r4, 0
+ bl sub_8026D1C
+ mov r1, r9
+ ldr r0, [r1]
+ adds r1, r0, 0
+ adds r1, 0xE8
+ adds r1, r5
+ ldr r2, =0x000032e0
+ adds r0, r2
+ adds r0, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ mov r4, r9
+ ldr r0, [r4]
+ adds r0, r2
+ adds r0, r5
+ movs r1, 0x3
+ strb r1, [r0]
+ ldr r1, [r4]
+ adds r1, 0xF4
+ add r1, r8
+ ldrb r0, [r1]
+ movs r2, 0xFF
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, [r4]
+ adds r1, 0xF5
+ add r1, r8
+ ldrb r0, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+_08026602:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r4, [sp, 0x4]
+ cmp r10, r4
+ bcs _08026614
+ b _08026450
+_08026614:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8026324
+
+ thumb_func_start sub_8026634
+sub_8026634: @ 8026634
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ movs r7, 0
+ ldr r2, =gUnknown_02022C98
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x24
+ ldrb r0, [r0]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =0x000032e0
+ adds r1, r0
+ mov r12, r2
+ cmp r3, 0x2
+ beq _08026670
+ cmp r3, 0x2
+ bgt _08026676
+ cmp r3, 0x1
+ beq _08026674
+ b _08026676
+ .pool
+_08026670:
+ movs r7, 0x1
+ b _08026676
+_08026674:
+ movs r7, 0x2
+_08026676:
+ adds r0, r1, 0
+ adds r0, 0xB
+ adds r0, r6
+ ldrb r0, [r0]
+ subs r0, 0x6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080266D4
+ ldr r0, =gUnknown_082F449C+0x113
+ lsls r1, r4, 1
+ adds r1, r4
+ adds r1, r7, r1
+ lsls r2, r5, 4
+ subs r2, r5
+ adds r1, r2
+ adds r1, r0
+ ldrb r1, [r1]
+ cmp r6, r1
+ bne _0802670A
+ mov r0, r12
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xC4
+ adds r0, r6
+ ldrb r0, [r0]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080266D0
+ lsls r0, r4, 4
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r1, r0
+ ldr r1, =0x000031d4
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ b _0802670A
+ .pool
+_080266D0:
+ movs r0, 0x1
+ b _0802670C
+_080266D4:
+ ldr r0, =gUnknown_082F449C+0x113
+ lsls r1, r4, 1
+ adds r1, r4
+ adds r1, r7, r1
+ lsls r2, r5, 4
+ subs r2, r5
+ adds r1, r2
+ adds r1, r0
+ ldrb r1, [r1]
+ cmp r6, r1
+ bne _0802670A
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, 0xA8
+ adds r0, r4
+ movs r1, 0x4
+ strb r1, [r0]
+ mov r0, r12
+ ldr r1, [r0]
+ lsls r0, r4, 4
+ subs r0, r4
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, =0x000031d4
+ adds r1, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_0802670A:
+ movs r0, 0
+_0802670C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8026634
+
+ thumb_func_start sub_802671C
+sub_802671C: @ 802671C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r2, =gUnknown_02022C98
+ ldr r4, [r2]
+ adds r0, r4, 0
+ adds r0, 0x44
+ ldrb r1, [r0]
+ adds r0, 0x4
+ ldrb r0, [r0]
+ mov r9, r0
+ movs r3, 0
+ mov r10, r3
+ movs r5, 0x90
+ lsls r5, 1
+ adds r0, r4, r5
+ str r3, [r0]
+ adds r5, r1, 0
+ mov r0, r9
+ subs r0, 0x1
+ cmp r5, r0
+ blt _0802674E
+ b _08026974
+_0802674E:
+ mov r8, r2
+_08026750:
+ mov r0, r8
+ ldr r4, [r0]
+ adds r0, r4, 0
+ adds r0, 0xC4
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _08026762
+ b _0802686C
+_08026762:
+ movs r1, 0x90
+ lsls r1, 1
+ adds r0, r4, r1
+ movs r2, 0x1
+ str r2, [r0]
+ ldr r1, =0x000032eb
+ adds r0, r4, r1
+ adds r6, r0, r5
+ ldrb r0, [r6]
+ cmp r0, 0x9
+ bls _080267FC
+ movs r7, 0
+ movs r0, 0xA
+ strb r0, [r6]
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0xC4
+ adds r0, r5
+ movs r1, 0x3
+ strb r1, [r0]
+ mov r1, r8
+ ldr r0, [r1]
+ movs r6, 0xA4
+ lsls r6, 1
+ adds r0, r6
+ adds r1, r0, r5
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080267AC
+ strb r2, [r1]
+ ldr r2, =0x000032e0
+ adds r0, r4, r2
+ adds r0, r5
+ ldrb r0, [r0]
+ adds r0, 0x4A
+ bl PlaySE
+_080267AC:
+ mov r0, r8
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bls _080267C2
+ mov r2, r10
+ cmp r2, 0x1
+ beq _080267C2
+ b _08026964
+_080267C2:
+ movs r0, 0x1
+ mov r10, r0
+ adds r0, r1, r6
+ adds r0, r5
+ strb r7, [r0]
+ mov r1, r8
+ ldr r0, [r1]
+ adds r1, r0, 0
+ adds r1, 0x40
+ ldrb r0, [r1]
+ cmp r0, 0x9
+ bhi _080267DE
+ adds r0, 0x1
+ strb r0, [r1]
+_080267DE:
+ movs r0, 0x3
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8026F1C
+ movs r0, 0
+ bl sub_8027234
+ b _08026964
+ .pool
+_080267FC:
+ adds r0, r5, 0
+ bl sub_8026D8C
+ mov r2, r8
+ ldr r7, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r7, 0
+ adds r1, 0x90
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r1, 0x7
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1
+ bls _08026822
+ movs r3, 0x2
+_08026822:
+ ldr r2, =gUnknown_082F7A88
+ ldr r0, =0x000032e0
+ adds r1, r4, r0
+ adds r1, r5
+ lsls r0, r3, 1
+ adds r0, r3
+ ldrb r1, [r1]
+ adds r0, r1
+ adds r0, r2
+ ldrb r2, [r0]
+ adds r1, r7, 0
+ adds r1, 0xD0
+ adds r1, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r3, 0
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r2
+ bcc _0802685C
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0xD0
+ adds r0, r5
+ strb r3, [r0]
+_0802685C:
+ bl sub_8026324
+ b _08026964
+ .pool
+_0802686C:
+ cmp r0, 0x2
+ bne _080268F4
+ movs r2, 0x90
+ lsls r2, 1
+ adds r0, r4, r2
+ movs r6, 0x1
+ str r6, [r0]
+ adds r1, r4, 0
+ adds r1, 0xDC
+ adds r1, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r3, 0
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bls _08026964
+ mov r0, r8
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0xB8
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r2, r0
+ ldr r1, =0x000031d0
+ adds r2, r1
+ strb r3, [r2]
+ mov r2, r8
+ ldr r0, [r2]
+ adds r0, 0xDC
+ adds r0, r5
+ strb r3, [r0]
+ ldr r0, [r2]
+ adds r0, 0xD0
+ adds r0, r5
+ strb r3, [r0]
+ ldr r0, [r2]
+ adds r0, 0xC4
+ adds r0, r5
+ strb r3, [r0]
+ ldr r1, =0x000032eb
+ adds r0, r4, r1
+ adds r0, r5
+ strb r6, [r0]
+ adds r0, r5, 0
+ bl sub_8026D8C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r5, 0
+ bl sub_8026DB0
+ ldr r2, =0x000032e0
+ adds r1, r4, r2
+ adds r1, r5
+ strb r0, [r1]
+ b _08026964
+ .pool
+_080268F4:
+ cmp r0, 0x3
+ bne _08026964
+ adds r1, r4, 0
+ adds r1, 0xDC
+ adds r1, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bls _08026964
+ mov r0, r8
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bhi _08026964
+ adds r0, r1, 0
+ adds r0, 0xDC
+ adds r0, r5
+ strb r2, [r0]
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0xD0
+ adds r0, r5
+ strb r2, [r0]
+ ldr r0, [r1]
+ adds r0, 0xC4
+ adds r0, r5
+ strb r2, [r0]
+ ldr r2, =0x000032eb
+ adds r0, r4, r2
+ adds r0, r5
+ movs r1, 0x1
+ strb r1, [r0]
+ mov r0, r8
+ ldr r1, [r0]
+ adds r1, 0xE8
+ adds r1, r5
+ subs r2, 0xB
+ adds r4, r2
+ adds r4, r5
+ ldrb r0, [r4]
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8026D8C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r5, 0
+ bl sub_8026DB0
+ strb r0, [r4]
+_08026964:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r9
+ subs r0, 0x1
+ cmp r5, r0
+ bge _08026974
+ b _08026750
+_08026974:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802671C
+
+ thumb_func_start sub_8026988
+sub_8026988: @ 8026988
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, =gUnknown_02022C98
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0x44
+ adds r0, 0x48
+ ldrb r0, [r0]
+ mov r8, r0
+ ldrb r6, [r1]
+ cmp r6, r8
+ bcs _08026A7A
+ ldr r0, =gUnknown_082F449C
+ mov r9, r0
+_080269A8:
+ ldr r0, =gUnknown_02022C98
+ ldr r3, [r0]
+ adds r0, r3, 0
+ adds r0, 0x28
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ ldr r2, =0x000031a0
+ adds r0, r2
+ adds r7, r3, r0
+ movs r0, 0xB
+ adds r2, r1, 0
+ muls r2, r0
+ adds r2, r6, r2
+ adds r3, 0x24
+ ldrb r1, [r3]
+ subs r1, 0x1
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 3
+ subs r0, r1
+ adds r2, r0
+ add r2, r9
+ ldrb r4, [r2]
+ adds r0, r7, 0
+ adds r0, 0x1F
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080269FC
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_8028BF8
+ b _08026A04
+ .pool
+_080269FC:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_8028BF8
+_08026A04:
+ adds r0, r7, 0
+ adds r0, 0x1F
+ adds r5, r0, r4
+ ldrb r0, [r5]
+ cmp r0, 0x9
+ bls _08026A30
+ adds r0, r7, 0
+ adds r0, 0x14
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r1, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_8028CA4
+ ldrb r1, [r5]
+ lsls r1, 25
+ movs r0, 0xFF
+ lsls r0, 24
+ adds r1, r0
+ b _08026A52
+_08026A30:
+ adds r0, r7, 0
+ adds r0, 0x14
+ adds r3, r0, r4
+ ldrb r0, [r3]
+ cmp r0, 0x3
+ bne _08026A5C
+ movs r0, 0x7
+ strb r0, [r5]
+ adds r0, r6, 0
+ movs r1, 0x6
+ bl sub_8028CA4
+ ldrb r1, [r5]
+ lsls r1, 25
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r1, r2
+_08026A52:
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_8028C7C
+ b _08026A70
+_08026A5C:
+ ldrb r1, [r3]
+ adds r0, r6, 0
+ bl sub_8028CA4
+ ldrb r1, [r5]
+ lsls r1, 25
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_8028C7C
+_08026A70:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, r8
+ bcc _080269A8
+_08026A7A:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8026988
+
+ thumb_func_start sub_8026A88
+sub_8026A88: @ 8026A88
+ push {r4-r6,lr}
+ ldr r1, =gUnknown_02022C98
+ ldr r0, [r1]
+ adds r0, 0x24
+ ldrb r5, [r0]
+ movs r4, 0
+ cmp r4, r5
+ bcs _08026ABA
+ adds r6, r1, 0
+_08026A9A:
+ lsls r0, r4, 4
+ subs r0, r4
+ lsls r0, 2
+ ldr r1, [r6]
+ adds r0, r1
+ ldr r1, =0x000031cc
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80286B4
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _08026A9A
+_08026ABA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8026A88
+
+ thumb_func_start sub_8026AC8
+sub_8026AC8: @ 8026AC8
+ push {r4,r5,lr}
+ ldr r0, =gUnknown_02022C98
+ ldr r0, [r0]
+ adds r0, 0x24
+ ldrb r5, [r0]
+ movs r4, 0
+ cmp r4, r5
+ bcs _08026AEA
+_08026AD8:
+ adds r0, r4, 0
+ movs r1, 0x4
+ bl sub_80286B4
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _08026AD8
+_08026AEA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8026AC8
+
+ thumb_func_start sub_8026AF4
+sub_8026AF4: @ 8026AF4
+ push {lr}
+ bl sub_8026988
+ ldr r0, =gUnknown_02022C98
+ ldr r0, [r0]
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bls _08026B10
+ bl sub_8026AC8
+ b _08026B14
+ .pool
+_08026B10:
+ bl sub_8026A88
+_08026B14:
+ ldr r0, =gUnknown_02022C98
+ ldr r0, [r0]
+ adds r0, 0x40
+ ldrb r0, [r0]
+ bl sub_80288D4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8026AF4
+
+ thumb_func_start sub_8026B28
+sub_8026B28: @ 8026B28
+ push {lr}
+ bl sub_8026988
+ ldr r0, =gUnknown_02022C98
+ ldr r0, [r0]
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bls _08026B44
+ bl sub_8026AC8
+ b _08026B48
+ .pool
+_08026B44:
+ bl sub_8026A88
+_08026B48:
+ ldr r0, =gUnknown_02022C98
+ ldr r0, [r0]
+ adds r0, 0x40
+ ldrb r0, [r0]
+ bl sub_80288D4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8026B28
+
+ thumb_func_start sub_8026B5C
+sub_8026B5C: @ 8026B5C
+ push {lr}
+ adds r3, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r0, 0x4
+ bhi _08026BB4
+ lsls r0, 2
+ ldr r1, =_08026B78
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08026B78:
+ .4byte _08026B8C
+ .4byte _08026B94
+ .4byte _08026B9C
+ .4byte _08026BA4
+ .4byte _08026BAC
+_08026B8C:
+ movs r0, 0x4
+ strb r0, [r3]
+ movs r0, 0x7
+ b _08026BB2
+_08026B94:
+ movs r0, 0x3
+ strb r0, [r3]
+ movs r0, 0x8
+ b _08026BB2
+_08026B9C:
+ movs r0, 0x2
+ strb r0, [r3]
+ movs r0, 0x9
+ b _08026BB2
+_08026BA4:
+ movs r0, 0x1
+ strb r0, [r3]
+ movs r0, 0xA
+ b _08026BB2
+_08026BAC:
+ movs r0, 0
+ strb r0, [r3]
+ movs r0, 0xB
+_08026BB2:
+ strb r0, [r2]
+_08026BB4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8026B5C
+
+ thumb_func_start sub_8026BB8
+sub_8026BB8: @ 8026BB8
+ push {r4-r6,lr}
+ ldr r1, =gUnknown_02022C98
+ ldr r0, [r1]
+ adds r0, 0x24
+ ldrb r5, [r0]
+ movs r4, 0x1
+ cmp r4, r5
+ bcs _08026C1E
+ adds r6, r1, 0
+_08026BCA:
+ ldr r0, [r6]
+ movs r1, 0xAC
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08026BEC
+ adds r0, r4, 0
+ bl sub_8027DFC
+ ldr r1, [r6]
+ movs r2, 0xAC
+ lsls r2, 1
+ adds r1, r2
+ adds r1, r4
+ strb r0, [r1]
+_08026BEC:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _08026BCA
+ cmp r4, r5
+ bcs _08026C1E
+ ldr r0, =gUnknown_02022C98
+ ldr r0, [r0]
+ movs r2, 0xAC
+ lsls r2, 1
+ adds r1, r0, r2
+_08026C04:
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08026C14
+ movs r0, 0
+ b _08026C20
+ .pool
+_08026C14:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _08026C04
+_08026C1E:
+ movs r0, 0x1
+_08026C20:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8026BB8
+
+ thumb_func_start sub_8026C28
+sub_8026C28: @ 8026C28
+ push {r4,lr}
+ movs r1, 0
+ ldr r4, =gUnknown_02022C98
+ movs r3, 0xAC
+ lsls r3, 1
+ movs r2, 0
+_08026C34:
+ ldr r0, [r4]
+ adds r0, r3
+ adds r0, r1
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _08026C34
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8026C28
+
+ thumb_func_start sub_8026C50
+sub_8026C50: @ 8026C50
+ push {r4,lr}
+ ldr r3, =gUnknown_02022C98
+ ldr r1, [r3]
+ adds r2, r1, 0
+ adds r2, 0x40
+ ldrb r0, [r2]
+ cmp r0, 0x9
+ bls _08026C88
+ movs r4, 0x90
+ lsls r4, 1
+ adds r0, r1, r4
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08026C88
+ movs r0, 0xA
+ strb r0, [r2]
+ ldr r0, [r3]
+ movs r1, 0x96
+ lsls r1, 1
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08026C88
+ movs r0, 0x1
+ b _08026C8A
+ .pool
+_08026C88:
+ movs r0, 0
+_08026C8A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8026C50
+
+ thumb_func_start sub_8026C90
+sub_8026C90: @ 8026C90
+ push {r4-r6,lr}
+ ldr r4, =gUnknown_02022C98
+ ldr r1, [r4]
+ adds r2, r1, 0
+ adds r2, 0x40
+ ldrb r0, [r2]
+ cmp r0, 0x9
+ bls _08026D14
+ adds r0, r1, 0
+ adds r0, 0x44
+ ldrb r3, [r0]
+ adds r0, 0x4
+ ldrb r5, [r0]
+ movs r0, 0xA
+ strb r0, [r2]
+ ldr r4, [r4]
+ mov r12, r4
+ movs r0, 0x96
+ lsls r0, 1
+ add r0, r12
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08026D14
+ adds r4, r3, 0
+ cmp r4, r5
+ bcs _08026D04
+ mov r0, r12
+ adds r0, 0x28
+ ldrb r3, [r0]
+ lsls r1, r3, 4
+ subs r1, r3
+ lsls r1, 2
+ ldr r6, =gUnknown_082F449C
+ subs r0, 0x4
+ ldrb r2, [r0]
+ subs r2, 0x1
+ add r1, r12
+ movs r0, 0xB
+ muls r3, r0
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 3
+ subs r2, r0, r2
+ ldr r0, =0x000031bf
+ adds r1, r0
+_08026CEA:
+ adds r0, r4, r3
+ adds r0, r2
+ adds r0, r6
+ ldrb r0, [r0]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ bne _08026D14
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _08026CEA
+_08026D04:
+ movs r0, 0x1
+ b _08026D16
+ .pool
+_08026D14:
+ movs r0, 0
+_08026D16:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8026C90
+
+ thumb_func_start sub_8026D1C
+sub_8026D1C: @ 8026D1C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, =gUnknown_082F7A9C
+ mov r8, r0
+ ldr r0, =gUnknown_02022C98
+ ldr r6, [r0]
+ adds r0, r6, 0
+ adds r0, 0x90
+ adds r0, r5
+ mov r9, r0
+ ldrb r7, [r0]
+ adds r0, r7, 0
+ movs r1, 0x7
+ bl __umodsi3
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ add r4, r8
+ adds r0, r7, 0
+ movs r1, 0x7
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldrb r4, [r4]
+ adds r0, r4
+ lsls r0, 24
+ lsls r5, 1
+ adds r6, 0x86
+ adds r6, r5
+ ldrh r1, [r6]
+ lsrs r0, 24
+ cmp r1, r0
+ bcc _08026D76
+ adds r0, r7, 0x1
+ mov r1, r9
+ strb r0, [r1]
+_08026D76:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8026D1C
+
+ thumb_func_start sub_8026D8C
+sub_8026D8C: @ 8026D8C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, =gUnknown_082F449C+0x1AC
+ ldr r1, =gUnknown_02022C98
+ ldr r1, [r1]
+ adds r1, 0x24
+ ldrb r1, [r1]
+ subs r1, 0x1
+ movs r2, 0xB
+ muls r1, r2
+ adds r0, r1
+ adds r0, r3
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_8026D8C
+
+ thumb_func_start sub_8026DB0
+sub_8026DB0: @ 8026DB0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r4, =gUnknown_02022C98
+ ldr r1, [r4]
+ adds r1, 0x24
+ ldrb r2, [r1]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, =gUnknown_082F449C+0x15E
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r0, r2, 4
+ subs r0, r2
+ adds r1, r0
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ mov r12, r0
+ adds r0, r3, 0x1
+ adds r0, r1, r0
+ ldrb r7, [r0]
+ adds r3, 0x2
+ adds r1, r3
+ ldrb r1, [r1]
+ mov r8, r1
+ movs r3, 0
+ ldr r1, =gUnknown_082F449C+0x1E3
+ lsls r0, r2, 2
+ adds r2, r0, r2
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08026E18
+ adds r6, r1, 0
+_08026DFE:
+ adds r0, r3, r2
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _08026E3C
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r3, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08026DFE
+_08026E18:
+ ldr r0, [r4]
+ adds r0, 0x90
+ mov r1, r12
+ adds r2, r0, r1
+ adds r1, r0, r7
+ ldrb r0, [r2]
+ ldrb r3, [r1]
+ cmp r0, r3
+ bls _08026E46
+ adds r1, r0, 0
+ b _08026E48
+ .pool
+_08026E3C:
+ ldr r0, [r4]
+ adds r0, 0x90
+ adds r0, r7
+ ldrb r0, [r0]
+ b _08026E5A
+_08026E46:
+ ldrb r1, [r1]
+_08026E48:
+ ldr r0, [r4]
+ adds r0, 0x90
+ mov r2, r8
+ adds r4, r0, r2
+ ldrb r0, [r4]
+ cmp r0, r1
+ bls _08026E58
+ adds r1, r0, 0
+_08026E58:
+ adds r0, r1, 0
+_08026E5A:
+ adds r1, r5, 0
+ bl sub_8026E70
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8026DB0
+
+ thumb_func_start sub_8026E70
+sub_8026E70: @ 8026E70
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =gUnknown_02022C98
+ ldr r2, [r2]
+ adds r2, 0xE8
+ adds r2, r1
+ ldrb r4, [r2]
+ movs r1, 0x7
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bhi _08026EDE
+ lsls r0, 2
+ ldr r1, =_08026EA4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08026EA4:
+ .4byte _08026EDE
+ .4byte _08026ED6
+ .4byte _08026EE2
+ .4byte _08026EC0
+ .4byte _08026EC6
+ .4byte _08026ECC
+ .4byte _08026ED2
+_08026EC0:
+ cmp r4, 0
+ beq _08026ED6
+ b _08026EDE
+_08026EC6:
+ cmp r4, 0
+ beq _08026EE2
+ b _08026EDE
+_08026ECC:
+ cmp r4, 0x2
+ beq _08026ED6
+ b _08026EE2
+_08026ED2:
+ cmp r4, 0
+ bne _08026EDA
+_08026ED6:
+ movs r0, 0x1
+ b _08026EE4
+_08026EDA:
+ cmp r4, 0x1
+ beq _08026EE2
+_08026EDE:
+ movs r0, 0
+ b _08026EE4
+_08026EE2:
+ movs r0, 0x2
+_08026EE4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8026E70
+
+ thumb_func_start sub_8026EEC
+sub_8026EEC: @ 8026EEC
+ push {r4-r6,lr}
+ movs r6, 0
+ movs r5, 0
+ adds r4, r0, 0
+ b _08026EFE
+_08026EF6:
+ ldrh r0, [r4, 0x6]
+ adds r6, r0
+ adds r4, 0xC
+ adds r5, 0x1
+_08026EFE:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ blt _08026EF6
+ cmp r6, 0xA
+ bgt _08026F12
+ movs r0, 0
+ b _08026F14
+_08026F12:
+ movs r0, 0x1
+_08026F14:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8026EEC
+
+ thumb_func_start sub_8026F1C
+sub_8026F1C: @ 8026F1C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r6, =gUnknown_02022C98
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0x24
+ ldrb r5, [r0]
+ cmp r3, 0
+ bge _08026F3A
+ b _0802722C
+_08026F3A:
+ cmp r3, 0x2
+ ble _08026F48
+ cmp r3, 0x3
+ beq _08026F78
+ b _0802722C
+ .pool
+_08026F48:
+ ldr r3, =0x000031b4
+ adds r0, r1, r3
+ adds r0, r4
+ ldrb r4, [r0]
+ lsls r4, 1
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0
+ adds r0, r1, 0
+ adds r0, 0x4A
+ adds r0, r4
+ ldrh r0, [r0]
+ ldr r1, =0x00004e20
+ bl sub_8027A28
+ ldr r1, [r6]
+ adds r1, 0x4A
+ adds r1, r4
+ b _0802722A
+ .pool
+_08026F78:
+ adds r0, r1, 0
+ adds r0, 0x4A
+ bl sub_8026EEC
+ cmp r0, 0
+ beq _08026F86
+ b _0802722C
+_08026F86:
+ cmp r5, 0x3
+ bne _08026F8C
+ b _08027154
+_08026F8C:
+ cmp r5, 0x3
+ bgt _08026F98
+ cmp r5, 0x2
+ bne _08026F96
+ b _080271E8
+_08026F96:
+ b _0802722C
+_08026F98:
+ cmp r5, 0x4
+ bne _08026F9E
+ b _08027090
+_08026F9E:
+ cmp r5, 0x5
+ beq _08026FA4
+ b _0802722C
+_08026FA4:
+ cmp r4, 0x9
+ bls _08026FAA
+ b _0802722C
+_08026FAA:
+ lsls r0, r4, 2
+ ldr r1, =_08026FB8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08026FB8:
+ .4byte _08026FE0
+ .4byte _08026FF8
+ .4byte _08027004
+ .4byte _0802701C
+ .4byte _08027028
+ .4byte _08027040
+ .4byte _0802704C
+ .4byte _08027060
+ .4byte _0802706C
+ .4byte _08027084
+_08026FE0:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0x68
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ adds r1, 0x74
+ b _08027226
+ .pool
+_08026FF8:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r1, 0x74
+ b _08027226
+ .pool
+_08027004:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0x74
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ adds r1, 0x80
+ b _08027226
+ .pool
+_0802701C:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r1, 0x80
+ b _08027226
+ .pool
+_08027028:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0x80
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ adds r1, 0x50
+ b _08027226
+ .pool
+_08027040:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r1, 0x50
+ b _08027226
+ .pool
+_0802704C:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0x50
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ b _08027224
+ .pool
+_08027060:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ b _08027224
+ .pool
+_0802706C:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0x5C
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ adds r1, 0x68
+ b _08027226
+ .pool
+_08027084:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r1, 0x68
+ b _08027226
+ .pool
+_08027090:
+ subs r0, r4, 0x1
+ cmp r0, 0x7
+ bls _08027098
+ b _0802722C
+_08027098:
+ lsls r0, 2
+ ldr r1, =_080270A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080270A8:
+ .4byte _080270C8
+ .4byte _080270E0
+ .4byte _080270EC
+ .4byte _08027104
+ .4byte _08027110
+ .4byte _08027124
+ .4byte _08027130
+ .4byte _08027148
+_080270C8:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0x68
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ adds r1, 0x74
+ b _08027226
+ .pool
+_080270E0:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r1, 0x74
+ b _08027226
+ .pool
+_080270EC:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0x74
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ adds r1, 0x50
+ b _08027226
+ .pool
+_08027104:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r1, 0x50
+ b _08027226
+ .pool
+_08027110:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0x50
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ b _08027224
+ .pool
+_08027124:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ b _08027224
+ .pool
+_08027130:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0x5C
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ adds r1, 0x68
+ b _08027226
+ .pool
+_08027148:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r1, 0x68
+ b _08027226
+ .pool
+_08027154:
+ subs r0, r4, 0x2
+ cmp r0, 0x5
+ bhi _0802722C
+ lsls r0, 2
+ ldr r1, =_08027168
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08027168:
+ .4byte _08027180
+ .4byte _08027198
+ .4byte _080271A4
+ .4byte _080271BC
+ .4byte _080271C8
+ .4byte _080271DC
+_08027180:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0x5C
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ adds r1, 0x68
+ b _08027226
+ .pool
+_08027198:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r1, 0x68
+ b _08027226
+ .pool
+_080271A4:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0x68
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ adds r1, 0x50
+ b _08027226
+ .pool
+_080271BC:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r1, 0x50
+ b _08027226
+ .pool
+_080271C8:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0x50
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ b _08027224
+ .pool
+_080271DC:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ b _08027224
+ .pool
+_080271E8:
+ cmp r4, 0x4
+ beq _0802720E
+ cmp r4, 0x4
+ bgt _080271F6
+ cmp r4, 0x3
+ beq _08027200
+ b _0802722C
+_080271F6:
+ cmp r4, 0x5
+ beq _08027214
+ cmp r4, 0x6
+ beq _08027222
+ b _0802722C
+_08027200:
+ ldr r1, [r6]
+ adds r2, r1, 0
+ adds r2, 0x50
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ b _08027224
+_0802720E:
+ ldr r1, [r6]
+ adds r1, 0x50
+ b _08027226
+_08027214:
+ ldr r1, [r6]
+ adds r2, r1, 0
+ adds r2, 0x50
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ b _08027224
+_08027222:
+ ldr r1, [r6]
+_08027224:
+ adds r1, 0x5C
+_08027226:
+ ldrh r0, [r1]
+ adds r0, 0x1
+_0802722A:
+ strh r0, [r1]
+_0802722C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8026F1C
+
+ thumb_func_start sub_8027234
+sub_8027234: @ 8027234
+ push {r4,r5,lr}
+ adds r1, r0, 0
+ ldr r4, =gUnknown_02022C98
+ ldr r3, [r4]
+ adds r0, r3, 0
+ adds r0, 0x24
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bne _0802729E
+ cmp r1, 0x1
+ bne _08027280
+ movs r5, 0x89
+ lsls r5, 1
+ adds r1, r3, r5
+ ldrh r0, [r1]
+ adds r2, r0, 0x1
+ strh r2, [r1]
+ movs r0, 0x8A
+ lsls r0, 1
+ adds r1, r3, r0
+ lsls r0, r2, 16
+ lsrs r0, 16
+ ldrh r3, [r1]
+ cmp r0, r3
+ bls _08027268
+ strh r2, [r1]
+_08027268:
+ ldr r0, [r4]
+ adds r2, r0, r5
+ ldrh r0, [r2]
+ ldr r1, =0x0000270f
+ cmp r0, r1
+ bls _0802729E
+ strh r1, [r2]
+ b _0802729E
+ .pool
+_08027280:
+ movs r2, 0x89
+ lsls r2, 1
+ adds r0, r3, r2
+ movs r5, 0x8A
+ lsls r5, 1
+ adds r1, r3, r5
+ ldrh r0, [r0]
+ ldrh r3, [r1]
+ cmp r0, r3
+ bls _08027296
+ strh r0, [r1]
+_08027296:
+ ldr r0, [r4]
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0]
+_0802729E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8027234
+
+ thumb_func_start sub_80272A4
+sub_80272A4: @ 80272A4
+ push {r4,r5,lr}
+ movs r3, 0
+ ldr r2, =gUnknown_02022C98
+ ldr r0, [r2]
+ adds r0, 0x24
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _080272DC
+ adds r5, r2, 0
+ movs r4, 0x8A
+ lsls r4, 1
+_080272BA:
+ ldr r2, [r5]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r1, r2, 0
+ adds r1, 0x54
+ adds r1, r0
+ adds r0, r2, r4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r2, 0x24
+ ldrb r2, [r2]
+ cmp r3, r2
+ bcc _080272BA
+_080272DC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80272A4
+
+ thumb_func_start sub_80272E8
+sub_80272E8: @ 80272E8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r5, 0
+ ldr r7, =gUnknown_02022C98
+ movs r4, 0
+ ldr r0, =0x000031bf
+ mov r10, r0
+_080272FC:
+ movs r2, 0
+ lsls r6, r5, 4
+ lsls r1, r5, 1
+ mov r8, r1
+ lsls r0, r5, 3
+ mov r12, r0
+ adds r1, r5, 0x1
+ mov r9, r1
+ subs r0, r6, r5
+ lsls r3, r0, 2
+_08027310:
+ ldr r0, [r7]
+ adds r1, r2, r3
+ add r0, r10
+ adds r0, r1
+ strb r4, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xA
+ bls _08027310
+ ldr r0, [r7]
+ subs r1, r6, r5
+ lsls r1, 2
+ adds r0, r1
+ ldr r2, =0x000031cc
+ adds r0, r2
+ strb r4, [r0]
+ ldr r0, [r7]
+ adds r0, r1
+ ldr r1, =0x000031d0
+ adds r0, r1
+ strb r4, [r0]
+ ldr r0, [r7]
+ adds r0, 0x90
+ adds r0, r5
+ strb r4, [r0]
+ ldr r1, [r7]
+ adds r0, r1, 0
+ adds r0, 0x86
+ add r0, r8
+ strh r4, [r0]
+ add r1, r12
+ ldr r2, =0x00003308
+ adds r1, r2
+ strb r4, [r1]
+ ldr r2, [r7]
+ ldr r1, =0x0000330c
+ adds r0, r2, r1
+ add r0, r12
+ str r4, [r0]
+ mov r0, r8
+ adds r1, r0, r5
+ lsls r1, 2
+ adds r0, r2, 0
+ adds r0, 0x4A
+ adds r0, r1
+ strh r4, [r0]
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r1
+ strh r4, [r0]
+ adds r0, r2, 0
+ adds r0, 0x4E
+ adds r0, r1
+ strh r4, [r0]
+ adds r0, r2, 0
+ adds r0, 0x50
+ adds r0, r1
+ strh r4, [r0]
+ adds r0, r2, 0
+ adds r0, 0x52
+ adds r0, r1
+ strh r4, [r0]
+ adds r0, r2, 0
+ adds r0, 0x54
+ adds r0, r1
+ strh r4, [r0]
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _080272FC
+ ldr r2, =gUnknown_02022C98
+ ldr r0, [r2]
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r1
+ movs r2, 0
+ strb r2, [r0]
+ ldr r1, =gUnknown_02022C98
+ ldr r0, [r1]
+ movs r1, 0x89
+ lsls r1, 1
+ adds r3, r0, r1
+ movs r1, 0
+ strh r2, [r3]
+ adds r0, 0x40
+ strb r1, [r0]
+ bl sub_8026A88
+ bl sub_8026988
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80272E8
+
+ thumb_func_start sub_80273F0
+sub_80273F0: @ 80273F0
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r0, =gUnknown_02022C98
+ ldr r0, [r0]
+ adds r0, 0x24
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ beq _0802740C
+ cmp r0, 0x5
+ beq _08027410
+ b _08027412
+ .pool
+_0802740C:
+ movs r4, 0x1
+ b _08027412
+_08027410:
+ movs r4, 0x2
+_08027412:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0
+ lsls r1, r4, 2
+ ldr r5, =gUnknown_02022C98
+ ldr r2, =gUnknown_082F7AA4
+ adds r1, r4
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r2
+ ldrb r2, [r0]
+_08027436:
+ ldr r1, [r5]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r1, 0x52
+ adds r1, r0
+ strh r2, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x4
+ bls _08027436
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80273F0
+
+ thumb_func_start sub_802745C
+sub_802745C: @ 802745C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_02022C98
+ ldr r2, [r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r0, r2, 0
+ adds r0, 0x4A
+ adds r0, r1
+ ldrh r3, [r0]
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r2, 0x4E
+ adds r2, r1
+ adds r3, r0
+ ldrh r2, [r2]
+ adds r0, r3, r2
+ ldr r1, =0x0000270f
+ cmp r0, r1
+ bls _0802748E
+ adds r0, r1, 0
+_0802748E:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802745C
+
+ thumb_func_start sub_802749C
+sub_802749C: @ 802749C
+ push {r4-r6,lr}
+ ldr r5, =gUnknown_02022C98
+ ldr r0, [r5]
+ adds r0, 0x28
+ ldrb r0, [r0]
+ bl sub_802745C
+ ldr r1, =0x0000270f
+ bl sub_8027A38
+ adds r4, r0, 0
+ ldr r0, [r5]
+ adds r0, 0x28
+ ldrb r0, [r0]
+ bl sub_80276C0
+ ldr r1, =0x000f4236
+ bl sub_8027A38
+ adds r2, r0, 0
+ ldr r3, =gSaveBlock2Ptr
+ ldr r0, [r3]
+ movs r6, 0x83
+ lsls r6, 2
+ adds r1, r0, r6
+ ldr r0, [r1]
+ cmp r0, r2
+ bcs _080274D6
+ str r2, [r1]
+_080274D6:
+ ldr r0, [r3]
+ movs r2, 0x84
+ lsls r2, 2
+ adds r1, r0, r2
+ ldrh r0, [r1]
+ cmp r0, r4
+ bcs _080274E6
+ strh r4, [r1]
+_080274E6:
+ ldr r0, [r3]
+ ldr r6, =0x00000212
+ adds r2, r0, r6
+ ldr r0, [r5]
+ movs r1, 0x8A
+ lsls r1, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r0, [r2]
+ cmp r0, r1
+ bcs _080274FE
+ strh r1, [r2]
+_080274FE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802749C
+
+ thumb_func_start sub_8027518
+sub_8027518: @ 8027518
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, =gUnknown_02022C98
+ ldr r0, [r1]
+ adds r0, 0x9B
+ ldrb r6, [r0]
+ movs r3, 0x3
+ adds r5, r1, 0
+ adds r4, r5, 0
+_0802752C:
+ ldr r0, [r4]
+ adds r0, 0x98
+ adds r2, r0, r3
+ subs r1, r3, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ lsls r1, 24
+ lsrs r3, r1, 24
+ cmp r3, 0
+ bne _0802752C
+ ldr r0, [r5]
+ adds r0, 0x98
+ strb r7, [r0]
+ adds r0, r6, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8027518
+
+ thumb_func_start sub_8027554
+sub_8027554: @ 8027554
+ push {r4,lr}
+ ldr r4, =gUnknown_02022C98
+ ldr r3, [r4]
+ adds r0, r3, 0
+ adds r0, 0x28
+ ldrb r1, [r0]
+ adds r0, 0x88
+ adds r2, r0, r1
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _080275FC
+ ldr r0, =gMain
+ ldrh r2, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ beq _08027594
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3, r0
+ ldr r1, =0x000031cc
+ adds r0, r1
+ movs r1, 0x2
+ b _080275CA
+ .pool
+_08027594:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _080275B0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3, r0
+ ldr r1, =0x000031cc
+ adds r0, r1
+ movs r1, 0x3
+ b _080275CA
+ .pool
+_080275B0:
+ movs r0, 0x10
+ ands r0, r2
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _080275E8
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3, r0
+ ldr r1, =0x000031cc
+ adds r0, r1
+ movs r1, 0x1
+_080275CA:
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0x28
+ adds r0, 0xB0
+ ldrb r1, [r1]
+ adds r0, r1
+ movs r1, 0x6
+ strb r1, [r0]
+ movs r0, 0xD4
+ bl PlaySE
+ b _08027600
+ .pool
+_080275E8:
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3, r0
+ ldr r1, =0x000031cc
+ adds r0, r1
+ strb r2, [r0]
+ b _08027600
+ .pool
+_080275FC:
+ subs r0, 0x1
+ strb r0, [r2]
+_08027600:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8027554
+
+ thumb_func_start sub_8027608
+sub_8027608: @ 8027608
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x28
+ ldrb r2, [r0]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, =0x000031cc
+ adds r1, r0
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_8027608
+
+ thumb_func_start sub_802762C
+sub_802762C: @ 802762C
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x28
+ ldrb r2, [r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r1, 0x52
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x85
+ lsls r0, 16
+ lsrs r0, 16
+ bx lr
+ .pool
+ thumb_func_end sub_802762C
+
+ thumb_func_start sub_8027650
+sub_8027650: @ 8027650
+ ldr r0, =gUnknown_02022C98
+ ldr r0, [r0]
+ adds r0, 0x24
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_8027650
+
+ thumb_func_start sub_8027660
+sub_8027660: @ 8027660
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0802768C
+ ldr r0, =gUnknown_02022C98
+ lsls r1, r2, 4
+ subs r1, r2
+ lsls r1, 2
+ ldr r2, =0x000031a0
+ adds r1, r2
+ ldr r0, [r0]
+ b _08027694
+ .pool
+_0802768C:
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ ldr r1, =gLinkPlayers + 8
+_08027694:
+ adds r0, r1
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8027660
+
+ thumb_func_start sub_80276A0
+sub_80276A0: @ 80276A0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r2, =gUnknown_02022C98
+ ldr r3, [r2]
+ lsrs r1, 23
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 2
+ adds r1, r2
+ adds r3, 0x4A
+ adds r3, r1
+ ldrh r0, [r3]
+ bx lr
+ .pool
+ thumb_func_end sub_80276A0
+
+ thumb_func_start sub_80276C0
+sub_80276C0: @ 80276C0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r5, 0
+ movs r3, 0
+ ldr r0, =gUnknown_02022C98
+ mov r9, r0
+ ldr r2, =gUnknown_082F7B24
+ mov r10, r2
+ ldr r2, [r0]
+ lsls r1, r4, 1
+ adds r0, r1, r4
+ lsls r0, 2
+ str r0, [sp]
+ adds r6, r2, 0
+ adds r6, 0x4A
+ mov r12, r1
+ mov r8, r10
+_080276EE:
+ lsls r1, r3, 1
+ ldr r7, [sp]
+ adds r0, r1, r7
+ adds r0, r6, r0
+ ldrh r2, [r0]
+ add r1, r8
+ movs r7, 0
+ ldrsh r0, [r1, r7]
+ muls r0, r2
+ adds r5, r0
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x2
+ bls _080276EE
+ mov r0, r9
+ ldr r1, [r0]
+ mov r2, r12
+ adds r0, r2, r4
+ lsls r0, 2
+ adds r1, 0x50
+ adds r1, r0
+ ldrh r1, [r1]
+ mov r3, r10
+ movs r7, 0x6
+ ldrsh r0, [r3, r7]
+ muls r0, r1
+ cmp r5, r0
+ bls _08027734
+ subs r0, r5, r0
+ b _08027736
+ .pool
+_08027734:
+ movs r0, 0
+_08027736:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80276C0
+
+ thumb_func_start sub_8027748
+sub_8027748: @ 8027748
+ push {r4-r6,lr}
+ ldr r0, =gUnknown_02022C98
+ ldr r0, [r0]
+ adds r0, 0x24
+ ldrb r6, [r0]
+ movs r0, 0
+ bl sub_80276C0
+ adds r5, r0, 0
+ movs r4, 0x1
+ cmp r4, r6
+ bcs _08027776
+_08027760:
+ adds r0, r4, 0
+ bl sub_80276C0
+ cmp r0, r5
+ bls _0802776C
+ adds r5, r0, 0
+_0802776C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r6
+ bcc _08027760
+_08027776:
+ ldr r1, =0x000f4236
+ adds r0, r5, 0
+ bl sub_8027A38
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8027748
+
+ thumb_func_start sub_802778C
+sub_802778C: @ 802778C
+ push {r4,r5,lr}
+ lsls r0, 24
+ ldr r1, =gUnknown_02022C98
+ ldr r2, [r1]
+ adds r1, r2, 0
+ adds r1, 0x24
+ ldrb r5, [r1]
+ lsrs r4, r0, 23
+ adds r2, 0x4A
+ adds r0, r2, r4
+ ldrh r3, [r0]
+ movs r1, 0
+ cmp r1, r5
+ bcs _080277C4
+_080277A8:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4, r0
+ adds r0, r2, r0
+ ldrh r0, [r0]
+ cmp r0, r3
+ bls _080277BA
+ adds r3, r0, 0
+_080277BA:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, r5
+ bcc _080277A8
+_080277C4:
+ adds r0, r3, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802778C
+
+ thumb_func_start sub_80277D0
+sub_80277D0: @ 80277D0
+ push {r4-r7,lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0x1
+ ldr r0, =gUnknown_02022C98
+ ldr r0, [r0]
+ adds r0, 0x24
+ ldrb r5, [r0]
+ movs r4, 0
+ cmp r4, r5
+ bcs _080277FE
+_080277E8:
+ adds r0, r4, 0
+ bl sub_80276C0
+ lsls r1, r4, 2
+ add r1, sp
+ str r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _080277E8
+_080277FE:
+ lsls r7, 2
+ mov r12, r7
+ cmp r6, 0
+ beq _08027838
+ subs r7, r5, 0x1
+_08027808:
+ movs r6, 0
+ movs r4, 0
+ cmp r6, r7
+ bge _08027834
+ adds r5, r7, 0
+_08027812:
+ lsls r0, r4, 2
+ mov r2, sp
+ adds r1, r2, r0
+ adds r4, 0x1
+ lsls r0, r4, 2
+ adds r3, r2, r0
+ ldr r0, [r1]
+ ldr r2, [r3]
+ cmp r0, r2
+ bcs _0802782C
+ str r2, [r1]
+ str r0, [r3]
+ movs r6, 0x1
+_0802782C:
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ blt _08027812
+_08027834:
+ cmp r6, 0
+ bne _08027808
+_08027838:
+ mov r0, sp
+ add r0, r12
+ ldr r0, [r0]
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80277D0
+
+ thumb_func_start sub_802784C
+sub_802784C: @ 802784C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0
+ mov r10, r0
+ mov r8, r0
+ mov r9, r0
+ ldr r6, =gUnknown_02022C98
+ ldr r0, [r6]
+ adds r0, 0x24
+ ldrb r5, [r0]
+ bl sub_8027748
+ bl sub_8027748
+ cmp r0, 0
+ bne _080278A0
+ movs r4, 0
+ cmp r9, r5
+ bcs _080278A0
+ adds r2, r6, 0
+ ldr r1, =0x00003308
+ mov r12, r1
+ movs r7, 0
+ movs r6, 0x4
+ ldr r3, =0x0000330c
+_08027884:
+ ldr r0, [r2]
+ lsls r1, r4, 3
+ adds r0, r1
+ add r0, r12
+ strb r6, [r0]
+ ldr r0, [r2]
+ adds r0, r3
+ adds r0, r1
+ str r7, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _08027884
+_080278A0:
+ movs r4, 0
+ cmp r4, r5
+ bcs _080278CA
+_080278A6:
+ adds r0, r4, 0
+ bl sub_80276C0
+ ldr r1, =0x000f4236
+ bl sub_8027A38
+ ldr r1, =gUnknown_02022C98
+ ldr r1, [r1]
+ lsls r2, r4, 3
+ ldr r3, =0x0000330c
+ adds r1, r3
+ adds r1, r2
+ str r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _080278A6
+_080278CA:
+ mov r0, r10
+ bl sub_80277D0
+ adds r6, r0, 0
+ mov r3, r8
+ movs r4, 0
+ cmp r4, r5
+ bcs _08027916
+ ldr r7, =gUnknown_02022C98
+ mov r10, r7
+_080278DE:
+ mov r0, r10
+ ldr r2, [r0]
+ lsls r1, r4, 3
+ ldr r7, =0x0000330c
+ adds r0, r2, r7
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r6, r0
+ bne _0802790C
+ adds r0, r2, r1
+ ldr r1, =0x00003308
+ adds r0, r1
+ strb r3, [r0]
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0802790C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _080278DE
+_08027916:
+ mov r10, r8
+ cmp r9, r5
+ bcc _080278CA
+ movs r0, 0
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802784C
+
+ thumb_func_start sub_802793C
+sub_802793C: @ 802793C
+ lsls r1, 24
+ ldr r2, =gUnknown_02022C98
+ ldr r2, [r2]
+ lsrs r1, 21
+ ldr r3, =0x00003308
+ adds r2, r3
+ adds r2, r1
+ ldr r1, [r2]
+ ldr r2, [r2, 0x4]
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ bx lr
+ .pool
+ thumb_func_end sub_802793C
+
+ thumb_func_start sub_802795C
+sub_802795C: @ 802795C
+ push {r4-r7,lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r7, 0
+ ldr r0, =gUnknown_02022C98
+ ldr r0, [r0]
+ adds r0, 0x24
+ ldrb r5, [r0]
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0x14
+ bl memset
+ movs r4, 0
+ cmp r7, r5
+ bcs _08027994
+_0802797E:
+ adds r0, r4, 0
+ bl sub_80276C0
+ lsls r1, r4, 2
+ add r1, sp
+ str r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _0802797E
+_08027994:
+ lsls r0, r6, 2
+ add r0, sp
+ ldr r1, [r0]
+ movs r4, 0
+_0802799C:
+ cmp r4, r6
+ beq _080279B0
+ lsls r0, r4, 2
+ add r0, sp
+ ldr r0, [r0]
+ cmp r1, r0
+ bcs _080279B0
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_080279B0:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _0802799C
+ adds r0, r7, 0
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802795C
+
+ thumb_func_start sub_80279C8
+sub_80279C8: @ 80279C8
+ push {r4-r6,lr}
+ ldr r0, =gUnknown_02022C98
+ ldr r0, [r0]
+ adds r0, 0x28
+ ldrb r4, [r0]
+ bl sub_802762C
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r6, r5, 0
+ adds r0, r4, 0
+ bl sub_80276C0
+ adds r4, r0, 0
+ bl sub_8027748
+ cmp r4, r0
+ beq _080279F4
+ movs r0, 0x3
+ b _08027A22
+ .pool
+_080279F4:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl CheckBagHasSpace
+ lsls r0, 24
+ cmp r0, 0
+ bne _08027A06
+ movs r0, 0x2
+ b _08027A22
+_08027A06:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl AddBagItem
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl CheckBagHasSpace
+ lsls r0, 24
+ cmp r0, 0
+ beq _08027A20
+ movs r0, 0
+ b _08027A22
+_08027A20:
+ movs r0, 0x1
+_08027A22:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80279C8
+
+ thumb_func_start sub_8027A28
+sub_8027A28: @ 8027A28
+ push {lr}
+ adds r2, r0, 0
+ adds r0, r1, 0
+ cmp r2, r0
+ bcs _08027A34
+ adds r0, r2, 0x1
+_08027A34:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8027A28
+
+ thumb_func_start sub_8027A38
+sub_8027A38: @ 8027A38
+ push {lr}
+ adds r2, r0, 0
+ adds r0, r1, 0
+ cmp r2, r0
+ bcs _08027A44
+ adds r0, r2, 0
+_08027A44:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8027A38
+
+ thumb_func_start sub_8027A48
+sub_8027A48: @ 8027A48
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_02022C98
+ ldr r1, [r1]
+ adds r1, 0x34
+ adds r1, r0
+ ldrb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_8027A48
+
+ thumb_func_start sub_8027A5C
+sub_8027A5C: @ 8027A5C
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r6, =gSpecialVar_Result
+_08027A62:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl GetMonData
+ cmp r0, 0
+ beq _08027A94
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0x55
+ bne _08027A94
+ movs r0, 0x1
+ strh r0, [r6]
+ b _08027AA0
+ .pool
+_08027A94:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08027A62
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0
+ strh r0, [r1]
+_08027AA0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8027A5C
+
+ thumb_func_start sub_8027AAC
+sub_8027AAC: @ 8027AAC
+ push {r4,lr}
+ ldr r4, =sub_8027ACC
+ adds r0, r4, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8027AAC
+
+ thumb_func_start sub_8027ACC
+sub_8027ACC: @ 8027ACC
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r7, r0, r1
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x1
+ beq _08027B94
+ cmp r0, 0x1
+ bgt _08027AF4
+ cmp r0, 0
+ beq _08027AFE
+ b _08027BE2
+ .pool
+_08027AF4:
+ cmp r0, 0x2
+ beq _08027BA0
+ cmp r0, 0x3
+ beq _08027BC8
+ b _08027BE2
+_08027AFE:
+ ldr r0, =gUnknown_082F7B2C
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r1, =gText_BerryPickingRecords
+ movs r0, 0x1
+ movs r2, 0
+ bl GetStringWidth
+ adds r4, r0, 0
+ movs r6, 0
+ ldr r5, =gUnknown_082F7B34
+_08027B18:
+ ldr r1, [r5]
+ movs r0, 0x1
+ movs r2, 0
+ bl GetStringWidth
+ adds r0, 0x32
+ cmp r0, r4
+ ble _08027B2A
+ adds r4, r0, 0
+_08027B2A:
+ adds r5, 0x4
+ adds r6, 0x1
+ cmp r6, 0x2
+ bls _08027B18
+ adds r0, r4, 0x7
+ cmp r0, 0
+ bge _08027B3A
+ adds r0, 0x7
+_08027B3A:
+ asrs r4, r0, 3
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _08027B46
+ adds r4, 0x1
+_08027B46:
+ movs r1, 0x1E
+ subs r1, r4
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ lsls r1, 24
+ lsrs r1, 16
+ ldr r2, =0xffff00ff
+ ldr r0, [sp]
+ ands r0, r2
+ orrs r0, r1
+ lsls r2, r4, 24
+ ldr r1, =0x00ffffff
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp]
+ mov r0, sp
+ bl AddWindow
+ strh r0, [r7, 0x2]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ bl sub_8027BEC
+ ldrb r0, [r7, 0x2]
+ movs r1, 0x3
+ b _08027BB6
+ .pool
+_08027B94:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _08027BE2
+ b _08027BBA
+_08027BA0:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08027BE2
+ ldrb r0, [r7, 0x2]
+ bl rbox_fill_rectangle
+ ldrb r0, [r7, 0x2]
+ movs r1, 0x1
+_08027BB6:
+ bl CopyWindowToVram
+_08027BBA:
+ ldrh r0, [r7]
+ adds r0, 0x1
+ strh r0, [r7]
+ b _08027BE2
+ .pool
+_08027BC8:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _08027BE2
+ ldrb r0, [r7, 0x2]
+ bl RemoveWindow
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_08027BE2:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8027ACC
+
+ thumb_func_start sub_8027BEC
+sub_8027BEC: @ 8027BEC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ str r1, [sp, 0x18]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ movs r2, 0x84
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ str r0, [sp, 0xC]
+ subs r2, 0x4
+ adds r0, r1, r2
+ ldr r0, [r0]
+ str r0, [sp, 0x10]
+ ldr r0, =0x00000212
+ adds r1, r0
+ ldrh r0, [r1]
+ str r0, [sp, 0x14]
+ ldr r4, =0x0000021d
+ adds r0, r7, 0
+ adds r1, r4, 0
+ movs r2, 0xD0
+ bl box_border_load_tiles_and_pal
+ adds r0, r7, 0
+ adds r1, r4, 0
+ movs r2, 0xD
+ bl sub_8098858
+ adds r0, r7, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r4, =gText_BerryPickingRecords
+ ldr r0, [sp, 0x18]
+ lsls r2, r0, 3
+ movs r0, 0x1
+ adds r1, r4, 0
+ bl GetStringCenterAlignXOffset
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl PrintTextOnWindow
+ movs r6, 0
+ ldr r2, =gStringVar1
+ mov r8, r2
+ movs r0, 0xFF
+ mov r10, r0
+ mov r9, r6
+ mov r2, sp
+ adds r2, 0xC
+ str r2, [sp, 0x1C]
+_08027C76:
+ lsls r4, r6, 2
+ ldr r0, [sp, 0x1C]
+ ldm r0!, {r1}
+ str r0, [sp, 0x1C]
+ ldr r0, =gUnknown_082F7B40
+ adds r0, r6, r0
+ ldrb r3, [r0]
+ mov r0, r8
+ movs r2, 0
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x1
+ mov r1, r8
+ movs r2, 0x1
+ negs r2, r2
+ bl GetStringWidth
+ adds r5, r0, 0
+ ldr r0, =gUnknown_082F7B34
+ adds r4, r0
+ ldr r2, [r4]
+ ldr r0, =gUnknown_082F7B44
+ lsls r4, r6, 1
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ str r0, [sp]
+ mov r0, r10
+ str r0, [sp, 0x4]
+ mov r0, r9
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldr r2, [sp, 0x18]
+ lsls r3, r2, 3
+ subs r3, r5
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, =gUnknown_082F7B4A
+ adds r4, r0
+ ldrb r0, [r4]
+ str r0, [sp]
+ mov r0, r10
+ str r0, [sp, 0x4]
+ mov r2, r9
+ str r2, [sp, 0x8]
+ adds r0, r7, 0
+ movs r1, 0x1
+ mov r2, r8
+ bl PrintTextOnWindow
+ adds r6, 0x1
+ cmp r6, 0x2
+ ble _08027C76
+ adds r0, r7, 0
+ bl PutWindowTilemap
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8027BEC
+
+ thumb_func_start sub_8027D20
+sub_8027D20: @ 8027D20
+ push {lr}
+ bl GetLinkPlayerCount
+ ldr r1, =gUnknown_02022C98
+ ldr r1, [r1]
+ adds r1, 0x24
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8027D20
+
+ thumb_func_start sub_8027D38
+sub_8027D38: @ 8027D38
+ push {r4-r7,lr}
+ ldr r0, =gUnknown_02022C98
+ ldr r0, [r0]
+ adds r0, 0x24
+ ldrb r4, [r0]
+ cmp r4, 0x4
+ bhi _08027D66
+ ldr r5, =gUnknown_082F7B90
+_08027D48:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r1, =gLinkPlayers + 8
+ adds r0, r1
+ lsls r1, r4, 2
+ adds r1, r5
+ ldr r1, [r1]
+ bl StringCopy
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _08027D48
+_08027D66:
+ ldr r0, =gUnknown_02022C98
+ ldr r1, [r0]
+ adds r1, 0x24
+ movs r2, 0x5
+ strb r2, [r1]
+ movs r1, 0
+ mov r12, r0
+_08027D74:
+ movs r4, 0
+ mov r2, r12
+ ldr r0, [r2]
+ adds r0, 0x24
+ adds r5, r1, 0x1
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _08027DB2
+ ldr r7, =gUnknown_02022C98
+ lsls r3, r1, 1
+ ldr r6, =gUnknown_082F7B50
+_08027D8A:
+ ldr r2, [r7]
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r3, r0
+ adds r1, r2, 0
+ adds r1, 0x4A
+ adds r1, r0
+ lsls r0, r4, 3
+ adds r0, r3, r0
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r2, 0x24
+ ldrb r2, [r2]
+ cmp r4, r2
+ bcc _08027D8A
+_08027DB2:
+ lsls r0, r5, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _08027D74
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8027D38
+
+ thumb_func_start sub_8027DD0
+sub_8027DD0: @ 8027DD0
+ push {lr}
+ sub sp, 0x8
+ ldr r3, =0xffffff00
+ ldr r1, [sp]
+ ands r1, r3
+ movs r2, 0x1
+ orrs r1, r2
+ str r1, [sp]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp, 0x4]
+ ands r1, r3
+ orrs r1, r0
+ str r1, [sp, 0x4]
+ mov r0, sp
+ bl sub_800FE50
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8027DD0
+
+ thumb_func_start sub_8027DFC
+sub_8027DFC: @ 8027DFC
+ push {lr}
+ adds r2, r0, 0
+ ldr r3, =gRecvCmds
+ ldrh r0, [r3]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r1, r0
+ movs r0, 0xBC
+ lsls r0, 6
+ cmp r1, r0
+ bne _08027E1E
+ lsls r0, r2, 4
+ adds r1, r3, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ beq _08027E28
+_08027E1E:
+ movs r0, 0
+ b _08027E2A
+ .pool
+_08027E28:
+ ldrb r0, [r1, 0x4]
+_08027E2A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8027DFC
+
+ thumb_func_start sub_8027E30
+sub_8027E30: @ 8027E30
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ ldr r4, [sp, 0x48]
+ lsls r4, 24
+ str r4, [sp, 0x1C]
+ movs r4, 0x14
+ adds r4, r0
+ mov r9, r4
+ mov r5, sp
+ movs r4, 0x2
+ strb r4, [r5]
+ mov r10, sp
+ mov r5, r9
+ ldrb r4, [r5, 0xB]
+ movs r7, 0xF
+ adds r5, r7, 0
+ ands r5, r4
+ mov r6, r10
+ ldrb r6, [r6, 0x1]
+ mov r8, r6
+ movs r4, 0x10
+ negs r4, r4
+ mov r6, r8
+ ands r4, r6
+ orrs r4, r5
+ mov r5, r10
+ strb r4, [r5, 0x1]
+ mov r8, sp
+ mov r6, r9
+ ldrb r5, [r6, 0xC]
+ lsls r5, 4
+ ands r4, r7
+ orrs r4, r5
+ mov r5, r8
+ strb r4, [r5, 0x1]
+ ldrb r5, [r6, 0xD]
+ movs r6, 0xF
+ ands r5, r6
+ mov r4, r10
+ ldrb r4, [r4, 0x2]
+ mov r8, r4
+ movs r4, 0x10
+ negs r4, r4
+ mov r6, r8
+ ands r4, r6
+ orrs r4, r5
+ mov r5, r10
+ strb r4, [r5, 0x2]
+ mov r8, sp
+ mov r6, r9
+ ldrb r5, [r6, 0xE]
+ lsls r5, 4
+ ands r4, r7
+ orrs r4, r5
+ mov r5, r8
+ strb r4, [r5, 0x2]
+ ldrb r5, [r6, 0xF]
+ movs r6, 0xF
+ ands r5, r6
+ mov r4, r10
+ ldrb r4, [r4, 0x3]
+ mov r8, r4
+ movs r4, 0x10
+ negs r4, r4
+ mov r6, r8
+ ands r4, r6
+ orrs r4, r5
+ mov r5, r10
+ strb r4, [r5, 0x3]
+ mov r8, sp
+ mov r6, r9
+ ldrb r5, [r6, 0x10]
+ lsls r5, 4
+ ands r4, r7
+ orrs r4, r5
+ mov r5, r8
+ strb r4, [r5, 0x3]
+ ldrb r5, [r6, 0x11]
+ movs r6, 0xF
+ ands r5, r6
+ mov r4, r10
+ ldrb r4, [r4, 0x4]
+ mov r8, r4
+ movs r4, 0x10
+ negs r4, r4
+ mov r6, r8
+ ands r4, r6
+ orrs r4, r5
+ mov r5, r10
+ strb r4, [r5, 0x4]
+ mov r8, sp
+ mov r6, r9
+ ldrb r5, [r6, 0x12]
+ lsls r5, 4
+ ands r4, r7
+ orrs r4, r5
+ mov r5, r8
+ strb r4, [r5, 0x4]
+ ldrb r4, [r6, 0x13]
+ movs r6, 0xF
+ ands r4, r6
+ mov r6, r8
+ ldrb r5, [r6, 0x5]
+ movs r6, 0x10
+ negs r6, r6
+ ands r6, r5
+ orrs r6, r4
+ str r6, [sp, 0xC]
+ mov r4, r8
+ strb r6, [r4, 0x5]
+ mov r5, sp
+ mov r6, r9
+ ldrb r4, [r6, 0x14]
+ lsls r4, 4
+ ldr r6, [sp, 0xC]
+ ands r6, r7
+ orrs r6, r4
+ strb r6, [r5, 0x5]
+ mov r7, sp
+ movs r4, 0x3
+ mov r8, r4
+ ldrb r0, [r0, 0x14]
+ mov r5, r8
+ ands r0, r5
+ ldrb r5, [r7, 0x6]
+ movs r6, 0x4
+ negs r6, r6
+ mov r10, r6
+ mov r4, r10
+ ands r4, r5
+ orrs r4, r0
+ strb r4, [r7, 0x6]
+ mov r5, r9
+ ldrb r0, [r5, 0x1]
+ mov r6, r8
+ ands r0, r6
+ lsls r0, 2
+ movs r5, 0xD
+ negs r5, r5
+ ands r5, r4
+ orrs r5, r0
+ strb r5, [r7, 0x6]
+ mov r0, r9
+ ldrb r4, [r0, 0x2]
+ ands r4, r6
+ lsls r4, 4
+ movs r0, 0x31
+ negs r0, r0
+ ands r0, r5
+ orrs r0, r4
+ strb r0, [r7, 0x6]
+ mov r5, sp
+ mov r6, r9
+ ldrb r4, [r6, 0x3]
+ lsls r4, 6
+ movs r6, 0x3F
+ ands r0, r6
+ orrs r0, r4
+ strb r0, [r5, 0x6]
+ mov r4, r9
+ ldrb r0, [r4, 0x4]
+ mov r5, r8
+ ands r0, r5
+ ldrb r5, [r7, 0x7]
+ mov r4, r10
+ ands r4, r5
+ orrs r4, r0
+ strb r4, [r7, 0x7]
+ mov r6, r9
+ ldrb r0, [r6, 0x5]
+ mov r5, r8
+ ands r0, r5
+ lsls r0, 2
+ movs r5, 0xD
+ negs r5, r5
+ ands r5, r4
+ orrs r5, r0
+ strb r5, [r7, 0x7]
+ ldrb r4, [r6, 0x6]
+ mov r6, r8
+ ands r4, r6
+ lsls r4, 4
+ movs r0, 0x31
+ negs r0, r0
+ ands r0, r5
+ orrs r0, r4
+ strb r0, [r7, 0x7]
+ mov r5, sp
+ mov r6, r9
+ ldrb r4, [r6, 0x7]
+ lsls r4, 6
+ movs r6, 0x3F
+ ands r0, r6
+ orrs r0, r4
+ strb r0, [r5, 0x7]
+ mov r8, sp
+ mov r0, r9
+ ldrb r4, [r0, 0x8]
+ movs r7, 0x3
+ adds r0, r7, 0
+ ands r0, r4
+ mov r4, r8
+ ldrb r5, [r4, 0x8]
+ mov r4, r10
+ ands r4, r5
+ orrs r4, r0
+ mov r5, r8
+ strb r4, [r5, 0x8]
+ mov r6, r9
+ ldrb r5, [r6, 0x9]
+ adds r0, r7, 0
+ ands r0, r5
+ lsls r0, 2
+ movs r5, 0xD
+ negs r5, r5
+ ands r5, r4
+ orrs r5, r0
+ mov r0, r8
+ strb r5, [r0, 0x8]
+ ldrb r0, [r1]
+ adds r4, r7, 0
+ ands r4, r0
+ lsls r4, 4
+ movs r0, 0x31
+ negs r0, r0
+ ands r0, r5
+ orrs r0, r4
+ mov r4, r8
+ strb r0, [r4, 0x8]
+ mov r5, sp
+ ldrb r4, [r2]
+ lsls r4, 6
+ movs r6, 0x3F
+ ands r0, r6
+ orrs r0, r4
+ strb r0, [r5, 0x8]
+ ldrb r4, [r3]
+ adds r0, r7, 0
+ ands r0, r4
+ ldrb r4, [r5, 0x9]
+ mov r6, r10
+ ands r6, r4
+ orrs r6, r0
+ mov r10, r6
+ strb r6, [r5, 0x9]
+ ldr r0, [sp, 0x40]
+ ldrb r4, [r0]
+ adds r0, r7, 0
+ ands r0, r4
+ lsls r0, 2
+ movs r4, 0xD
+ negs r4, r4
+ ands r6, r4
+ orrs r6, r0
+ str r6, [sp, 0x10]
+ strb r6, [r5, 0x9]
+ mov r4, sp
+ ldr r5, [sp, 0x44]
+ ldrb r0, [r5]
+ adds r6, r7, 0
+ ands r6, r0
+ lsls r0, r6, 4
+ subs r7, 0x34
+ ldr r5, [sp, 0x10]
+ ands r7, r5
+ orrs r7, r0
+ strb r7, [r4, 0x9]
+ mov r5, sp
+ ldrb r0, [r1, 0x4]
+ movs r6, 0x1
+ mov r12, r6
+ mov r4, r12
+ ands r4, r0
+ lsls r4, 6
+ movs r0, 0x41
+ negs r0, r0
+ mov r10, r0
+ ands r0, r7
+ orrs r0, r4
+ strb r0, [r5, 0x9]
+ ldrb r4, [r2, 0x4]
+ lsls r4, 7
+ movs r5, 0x7F
+ ands r0, r5
+ orrs r0, r4
+ mov r4, r8
+ strb r0, [r4, 0x9]
+ ldrb r4, [r3, 0x4]
+ mov r0, r12
+ ands r0, r4
+ mov r5, r8
+ ldrb r4, [r5, 0xA]
+ movs r7, 0x2
+ negs r7, r7
+ adds r5, r7, 0
+ ands r5, r4
+ orrs r5, r0
+ mov r6, r8
+ strb r5, [r6, 0xA]
+ mov r9, sp
+ ldr r4, [sp, 0x40]
+ ldrb r0, [r4, 0x4]
+ mov r4, r12
+ ands r4, r0
+ lsls r4, 1
+ movs r6, 0x3
+ negs r6, r6
+ mov r8, r6
+ mov r0, r8
+ ands r0, r5
+ orrs r0, r4
+ mov r4, r9
+ strb r0, [r4, 0xA]
+ ldr r6, [sp, 0x44]
+ ldrb r5, [r6, 0x4]
+ mov r4, r12
+ ands r4, r5
+ lsls r4, 2
+ movs r5, 0x5
+ negs r5, r5
+ ands r0, r5
+ orrs r0, r4
+ mov r4, r9
+ strb r0, [r4, 0xA]
+ mov r4, sp
+ ldrb r1, [r1, 0x8]
+ mov r0, r12
+ ands r0, r1
+ lsls r0, 2
+ ldrb r1, [r4, 0xB]
+ ands r5, r1
+ orrs r5, r0
+ strb r5, [r4, 0xB]
+ ldrb r1, [r2, 0x8]
+ mov r0, r12
+ ands r0, r1
+ lsls r0, 3
+ movs r1, 0x9
+ negs r1, r1
+ ands r1, r5
+ orrs r1, r0
+ strb r1, [r4, 0xB]
+ ldrb r2, [r3, 0x8]
+ mov r0, r12
+ ands r0, r2
+ lsls r0, 4
+ movs r2, 0x11
+ negs r2, r2
+ ands r2, r1
+ orrs r2, r0
+ strb r2, [r4, 0xB]
+ mov r3, sp
+ ldr r5, [sp, 0x40]
+ ldrb r0, [r5, 0x8]
+ mov r1, r12
+ ands r1, r0
+ lsls r1, 5
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0xB]
+ mov r2, sp
+ ldrb r1, [r6, 0x8]
+ mov r6, r12
+ ands r6, r1
+ lsls r1, r6, 6
+ mov r3, r10
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0xB]
+ ldr r4, [sp, 0x1C]
+ lsrs r3, r4, 21
+ ldrb r1, [r2, 0xA]
+ movs r0, 0x7
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2, 0xA]
+ mov r1, sp
+ ldr r5, [sp, 0x4C]
+ movs r6, 0x1
+ ands r5, r6
+ lsls r2, r5, 1
+ ldrb r0, [r1, 0xB]
+ mov r3, r8
+ ands r3, r0
+ orrs r3, r2
+ mov r8, r3
+ strb r3, [r1, 0xB]
+ mov r0, sp
+ ldr r4, [sp, 0x50]
+ ands r4, r6
+ mov r5, r8
+ ands r5, r7
+ orrs r5, r4
+ strb r5, [r0, 0xB]
+ bl sub_800FE50
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8027E30
+
+ thumb_func_start sub_8028164
+sub_8028164: @ 8028164
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r0, [sp, 0x1C]
+ mov r12, r0
+ ldr r1, [sp, 0x20]
+ mov r8, r1
+ ldr r0, [sp, 0x24]
+ mov r9, r0
+ adds r2, r7, 0
+ adds r2, 0x14
+ ldr r4, =gRecvCmds
+ ldrh r0, [r4]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r1, r0
+ movs r0, 0xBC
+ lsls r0, 6
+ cmp r1, r0
+ bne _0802819C
+ adds r3, r4, 0x2
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x2
+ beq _080281A4
+_0802819C:
+ movs r0, 0
+ b _080282DE
+ .pool
+_080281A4:
+ ldrb r0, [r3, 0x1]
+ lsls r0, 28
+ lsrs r0, 28
+ strb r0, [r2, 0xB]
+ ldrb r0, [r3, 0x1]
+ lsrs r0, 4
+ strb r0, [r2, 0xC]
+ ldrb r0, [r3, 0x2]
+ lsls r0, 28
+ lsrs r0, 28
+ strb r0, [r2, 0xD]
+ ldrb r0, [r3, 0x2]
+ lsrs r0, 4
+ strb r0, [r2, 0xE]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 28
+ lsrs r0, 28
+ strb r0, [r2, 0xF]
+ ldrb r0, [r3, 0x3]
+ lsrs r0, 4
+ strb r0, [r2, 0x10]
+ ldrb r0, [r3, 0x4]
+ lsls r0, 28
+ lsrs r0, 28
+ strb r0, [r2, 0x11]
+ ldrb r0, [r3, 0x4]
+ lsrs r0, 4
+ strb r0, [r2, 0x12]
+ ldrb r0, [r3, 0x5]
+ lsls r0, 28
+ lsrs r0, 28
+ strb r0, [r2, 0x13]
+ ldrb r0, [r3, 0x5]
+ lsrs r0, 4
+ strb r0, [r2, 0x14]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 28
+ lsrs r0, 28
+ strb r0, [r2, 0x15]
+ ldrb r0, [r3, 0x6]
+ lsls r0, 30
+ lsrs r0, 30
+ strb r0, [r7, 0x14]
+ ldrb r0, [r3, 0x6]
+ lsls r0, 28
+ lsrs r0, 30
+ strb r0, [r2, 0x1]
+ ldrb r0, [r3, 0x6]
+ lsls r0, 26
+ lsrs r0, 30
+ strb r0, [r2, 0x2]
+ ldrb r0, [r3, 0x6]
+ lsrs r0, 6
+ strb r0, [r2, 0x3]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 30
+ lsrs r0, 30
+ strb r0, [r2, 0x4]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 28
+ lsrs r0, 30
+ strb r0, [r2, 0x5]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 26
+ lsrs r0, 30
+ strb r0, [r2, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsrs r0, 6
+ strb r0, [r2, 0x7]
+ ldrb r0, [r3, 0x8]
+ lsls r0, 30
+ lsrs r0, 30
+ strb r0, [r2, 0x8]
+ ldrb r0, [r3, 0x8]
+ lsls r0, 28
+ lsrs r0, 30
+ strb r0, [r2, 0x9]
+ ldrb r0, [r3, 0x6]
+ lsls r0, 30
+ lsrs r0, 30
+ strb r0, [r2, 0xA]
+ ldrb r0, [r3, 0x8]
+ lsls r0, 26
+ lsrs r0, 30
+ strb r0, [r5]
+ ldrb r0, [r3, 0x9]
+ lsls r0, 25
+ lsrs r0, 31
+ strb r0, [r5, 0x4]
+ ldrb r0, [r3, 0xB]
+ lsls r0, 29
+ lsrs r0, 31
+ strb r0, [r5, 0x8]
+ ldrb r0, [r3, 0x8]
+ lsrs r0, 6
+ strb r0, [r6]
+ ldrb r0, [r3, 0x9]
+ lsrs r0, 7
+ strb r0, [r6, 0x4]
+ ldrb r0, [r3, 0xB]
+ lsls r0, 28
+ lsrs r0, 31
+ strb r0, [r6, 0x8]
+ ldrb r0, [r3, 0x9]
+ lsls r0, 30
+ lsrs r0, 30
+ mov r1, r12
+ strb r0, [r1]
+ ldrb r0, [r3, 0xA]
+ lsls r0, 31
+ lsrs r0, 31
+ strb r0, [r1, 0x4]
+ ldrb r0, [r3, 0xB]
+ lsls r0, 27
+ lsrs r0, 31
+ strb r0, [r1, 0x8]
+ ldrb r0, [r3, 0x9]
+ lsls r0, 28
+ lsrs r0, 30
+ mov r1, r8
+ strb r0, [r1]
+ ldrb r0, [r3, 0xA]
+ lsls r0, 30
+ lsrs r0, 31
+ strb r0, [r1, 0x4]
+ ldrb r0, [r3, 0xB]
+ lsls r0, 26
+ lsrs r0, 31
+ strb r0, [r1, 0x8]
+ ldrb r0, [r3, 0x9]
+ lsls r0, 26
+ lsrs r0, 30
+ mov r1, r9
+ strb r0, [r1]
+ ldrb r0, [r3, 0xA]
+ lsls r0, 29
+ lsrs r0, 31
+ strb r0, [r1, 0x4]
+ ldrb r0, [r3, 0xB]
+ lsls r0, 25
+ lsrs r0, 31
+ strb r0, [r1, 0x8]
+ ldrb r0, [r3, 0xA]
+ lsrs r0, 3
+ ldr r1, [sp, 0x28]
+ strb r0, [r1]
+ ldrb r0, [r3, 0xB]
+ lsls r0, 30
+ lsrs r0, 31
+ ldr r1, [sp, 0x2C]
+ str r0, [r1]
+ ldrb r0, [r3, 0xB]
+ lsls r0, 31
+ lsrs r0, 31
+ ldr r1, [sp, 0x30]
+ str r0, [r1]
+ movs r0, 0x1
+_080282DE:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8028164
+
+ thumb_func_start sub_80282EC
+sub_80282EC: @ 80282EC
+ push {lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, =0xffffff00
+ ldr r1, [sp]
+ ands r1, r3
+ movs r2, 0x3
+ orrs r1, r2
+ str r1, [sp]
+ ldr r1, [sp, 0x4]
+ ands r1, r3
+ orrs r1, r0
+ str r1, [sp, 0x4]
+ mov r0, sp
+ bl sub_800FE50
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80282EC
+
+ thumb_func_start sub_8028318
+sub_8028318: @ 8028318
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r4, r1, 0
+ ldr r3, =gRecvCmds
+ ldrh r0, [r3]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r1, r0
+ movs r0, 0xBC
+ lsls r0, 6
+ cmp r1, r0
+ bne _0802833C
+ lsls r0, r2, 4
+ adds r1, r3, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0x3
+ beq _08028344
+_0802833C:
+ movs r0, 0
+ b _0802834A
+ .pool
+_08028344:
+ ldrb r0, [r1, 0x4]
+ strb r0, [r4]
+ movs r0, 0x1
+_0802834A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8028318
+
+ thumb_func_start sub_8028350
+sub_8028350: @ 8028350
+ push {lr}
+ sub sp, 0x8
+ ldr r2, =0xffffff00
+ ldr r1, [sp]
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ str r1, [sp]
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl sub_800FE50
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8028350
+
+ thumb_func_start sub_8028374
+sub_8028374: @ 8028374
+ push {lr}
+ adds r2, r0, 0
+ ldr r3, =gRecvCmds
+ ldrh r0, [r3]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r1, r0
+ movs r0, 0xBC
+ lsls r0, 6
+ cmp r1, r0
+ bne _08028396
+ lsls r0, r2, 4
+ adds r1, r3, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ beq _080283A0
+_08028396:
+ movs r0, 0
+ b _080283A2
+ .pool
+_080283A0:
+ ldr r0, [r1, 0x4]
+_080283A2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8028374
+
+ thumb_func_start sub_80283A8
+sub_80283A8: @ 80283A8
+ push {r4,r5,lr}
+ sub sp, 0x18
+ movs r5, 0xC0
+ lsls r5, 6
+ adds r0, r5, 0
+ bl AllocZeroed
+ adds r4, r0, 0
+ ldr r0, =gUnknown_082FB2D8
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ ldr r0, =gUnknown_082FB2E0
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x10]
+ str r1, [sp, 0x14]
+ ldr r0, =gDodrioBerryPkmnGfx
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ cmp r4, 0
+ beq _080283E8
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ adds r0, r4, 0
+ bl Free
+_080283E8:
+ add r0, sp, 0x8
+ bl LoadSpritePalette
+ add r0, sp, 0x10
+ bl LoadSpritePalette
+ add sp, 0x18
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80283A8
+
+ thumb_func_start sub_8028408
+sub_8028408: @ 8028408
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x30
+ adds r6, r1, 0
+ mov r8, r2
+ adds r5, r3, 0
+ lsls r6, 24
+ lsrs r6, 24
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r5, 24
+ lsrs r5, 24
+ add r1, sp, 0x18
+ movs r3, 0
+ strh r3, [r1]
+ ldrb r2, [r0]
+ mov r0, sp
+ adds r0, 0x1A
+ strh r2, [r0]
+ ldr r0, =gUnknown_082FB1E0
+ str r0, [sp, 0x1C]
+ ldr r0, =gUnknown_082FB228
+ str r0, [sp, 0x20]
+ str r3, [sp, 0x24]
+ ldr r0, =gDummySpriteAffineAnimTable
+ str r0, [sp, 0x28]
+ ldr r0, =sub_80284A8
+ str r0, [sp, 0x2C]
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ movs r0, 0x4
+ bl AllocZeroed
+ ldr r1, =gUnknown_02022C9C
+ mov r2, r8
+ lsls r4, r2, 2
+ adds r4, r1
+ str r0, [r4]
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_8028F14
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x88
+ movs r3, 0x3
+ bl CreateSprite
+ ldr r1, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1]
+ movs r0, 0x1
+ mov r1, r8
+ bl sub_8028654
+ add sp, 0x30
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8028408
+
+ thumb_func_start sub_80284A8
+sub_80284A8: @ 80284A8
+ push {lr}
+ movs r2, 0x2E
+ ldrsh r1, [r0, r2]
+ cmp r1, 0x1
+ beq _080284BC
+ cmp r1, 0x1
+ ble _080284C6
+ cmp r1, 0x2
+ beq _080284C2
+ b _080284C6
+_080284BC:
+ bl sub_802853C
+ b _080284C6
+_080284C2:
+ bl sub_80285AC
+_080284C6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80284A8
+
+ thumb_func_start sub_80284CC
+sub_80284CC: @ 80284CC
+ push {lr}
+ bl GetMultiplayerId
+ ldr r1, =gUnknown_02022C9C
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+ strh r2, [r0, 0x30]
+ strh r2, [r0, 0x32]
+ strh r2, [r0, 0x34]
+ strh r2, [r0, 0x36]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80284CC
+
+ thumb_func_start sub_8028504
+sub_8028504: @ 8028504
+ push {lr}
+ bl GetMultiplayerId
+ ldr r1, =gUnknown_02022C9C
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x2
+ strh r1, [r0, 0x2E]
+ strh r2, [r0, 0x30]
+ strh r2, [r0, 0x32]
+ strh r2, [r0, 0x34]
+ strh r2, [r0, 0x36]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8028504
+
+ thumb_func_start sub_802853C
+sub_802853C: @ 802853C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r2, r0, 16
+ lsrs r0, 31
+ adds r0, r2, r0
+ asrs r1, r0, 1
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _08028558
+ adds r0, r1, 0x3
+_08028558:
+ asrs r0, 2
+ lsls r0, 2
+ subs r0, r1, r0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r2, 0x2
+ ble _080285A2
+ cmp r0, 0x2
+ bgt _0802856E
+ cmp r0, 0x1
+ bge _08028572
+_0802856E:
+ movs r0, 0x1
+ b _08028574
+_08028572:
+ movs r0, 0xFF
+_08028574:
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x27
+ ble _080285A2
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ bl sub_8027650
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_8028F14
+ strh r0, [r4, 0x20]
+_080285A2:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802853C
+
+ thumb_func_start sub_80285AC
+sub_80285AC: @ 80285AC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0xD
+ bl __divsi3
+ lsls r0, 16
+ asrs r1, r0, 16
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080285CC
+ adds r0, r1, 0x3
+_080285CC:
+ asrs r0, 2
+ lsls r0, 2
+ subs r0, r1, r0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ movs r1, 0xD
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080285F0
+ cmp r4, 0
+ beq _080285F0
+ movs r0, 0xD4
+ bl PlaySE
+_080285F0:
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x67
+ ble _080285FE
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ movs r4, 0
+_080285FE:
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ bl sub_80286B4
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80285AC
+
+ thumb_func_start sub_8028614
+sub_8028614: @ 8028614
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ cmp r4, r5
+ bcs _08028646
+ ldr r6, =gUnknown_02022C9C
+_08028622:
+ lsls r0, r4, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ cmp r0, 0
+ beq _0802863C
+ bl DestroySpriteAndFreeResources
+_0802863C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _08028622
+_08028646:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8028614
+
+ thumb_func_start sub_8028654
+sub_8028654: @ 8028654
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r3, =gSprites
+ ldr r2, =gUnknown_02022C9C
+ lsrs r1, 22
+ adds r1, r2
+ ldr r1, [r1]
+ ldrh r1, [r1]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ adds r2, 0x3E
+ movs r1, 0x1
+ ands r0, r1
+ lsls r0, 2
+ ldrb r3, [r2]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r0
+ strb r1, [r2]
+ bx lr
+ .pool
+ thumb_func_end sub_8028654
+
+ thumb_func_start sub_802868C
+sub_802868C: @ 802868C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r4, 0
+ cmp r4, r5
+ bcs _080286AE
+_0802869C:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_8028654
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _0802869C
+_080286AE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802868C
+
+ thumb_func_start sub_80286B4
+sub_80286B4: @ 80286B4
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =gUnknown_02022C9C
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ldrh r2, [r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ ldr r2, =gSprites
+ adds r0, r2
+ bl StartSpriteAnim
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80286B4
+
+ thumb_func_start nullsub_15
+nullsub_15: @ 80286E0
+ bx lr
+ thumb_func_end nullsub_15
+
+ thumb_func_start sub_80286E4
+sub_80286E4: @ 80286E4
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r0, =gSprites
+ mov r12, r0
+ movs r6, 0
+ ldr r5, =gUnknown_02022CF4
+_080286F0:
+ ldr r3, [r5]
+ lsls r1, r4, 1
+ adds r0, r3, 0
+ adds r0, 0x2A
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r12
+ lsls r0, r4, 4
+ adds r0, 0x30
+ strh r0, [r1, 0x20]
+ lsls r2, r4, 3
+ movs r7, 0x8
+ negs r7, r7
+ adds r0, r7, 0
+ subs r0, r2
+ strh r0, [r1, 0x22]
+ adds r3, 0xC
+ adds r3, r4
+ strb r6, [r3]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _080286F0
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80286E4
+
+ thumb_func_start sub_8028734
+sub_8028734: @ 8028734
+ push {r4-r6,lr}
+ sub sp, 0x28
+ movs r4, 0xC0
+ lsls r4, 1
+ adds r0, r4, 0
+ bl AllocZeroed
+ adds r6, r0, 0
+ ldr r0, =gUnknown_082FB2E8
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ ldr r0, =gDodrioBerryStatusGfx
+ adds r1, r6, 0
+ bl LZ77UnCompWram
+ cmp r6, 0
+ beq _080287C4
+ str r6, [sp, 0x18]
+ add r5, sp, 0x18
+ movs r0, 0x80
+ lsls r0, 9
+ orrs r0, r4
+ str r0, [r5, 0x4]
+ mov r1, sp
+ ldr r0, =gUnknown_082FB2F0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r4, =gUnknown_02022CF4
+ movs r0, 0x40
+ bl AllocZeroed
+ str r0, [r4]
+ adds r0, r5, 0
+ bl LoadSpriteSheet
+ add r0, sp, 0x20
+ bl LoadSpritePalette
+ movs r4, 0
+_0802878A:
+ lsls r1, r4, 20
+ movs r0, 0xC0
+ lsls r0, 14
+ adds r1, r0
+ asrs r1, 16
+ lsls r0, r4, 3
+ movs r3, 0x8
+ negs r3, r3
+ adds r2, r3, 0
+ subs r2, r0
+ lsls r2, 16
+ asrs r2, 16
+ mov r0, sp
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, =gUnknown_02022CF4
+ ldr r1, [r1]
+ lsls r2, r4, 1
+ adds r1, 0x2A
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _0802878A
+_080287C4:
+ adds r0, r6, 0
+ bl Free
+ add sp, 0x28
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8028734
+
+ thumb_func_start sub_80287E4
+sub_80287E4: @ 80287E4
+ push {r4,r5,lr}
+ movs r4, 0
+_080287E8:
+ ldr r5, =gUnknown_02022CF4
+ ldr r0, [r5]
+ lsls r1, r4, 1
+ adds r0, 0x2A
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ cmp r0, 0
+ beq _08028806
+ bl DestroySpriteAndFreeResources
+_08028806:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _080287E8
+ ldr r0, [r5]
+ bl Free
+ movs r0, 0
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80287E4
+
+ thumb_func_start sub_8028828
+sub_8028828: @ 8028828
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ movs r3, 0
+ movs r6, 0
+ ldr r0, =gUnknown_02022CF4
+ mov r9, r0
+_0802883A:
+ mov r7, r9
+ ldr r2, [r7]
+ lsls r5, r6, 1
+ adds r0, r2, 0
+ adds r0, 0x2A
+ adds r0, r5
+ ldrh r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r4, r0, r1
+ adds r0, r2, 0
+ adds r0, 0x16
+ adds r0, r5
+ movs r1, 0x2
+ strh r1, [r0]
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r2, r0, r6
+ ldrb r1, [r2]
+ cmp r1, 0
+ beq _08028870
+ movs r7, 0x22
+ ldrsh r0, [r4, r7]
+ cmp r0, 0x8
+ beq _080288A6
+_08028870:
+ movs r3, 0x1
+ movs r7, 0x22
+ ldrsh r0, [r4, r7]
+ cmp r0, 0x8
+ bne _08028896
+ cmp r1, 0
+ bne _080288A6
+ strb r3, [r2]
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, 0x16
+ adds r0, r5
+ ldr r1, =0x0000fff0
+ strh r1, [r0]
+ movs r0, 0x24
+ str r3, [sp]
+ bl PlaySE
+ ldr r3, [sp]
+_08028896:
+ mov r7, r9
+ ldr r0, [r7]
+ adds r0, 0x16
+ adds r0, r5
+ ldrh r0, [r0]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_080288A6:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x9
+ bls _0802883A
+ cmp r3, 0
+ bne _080288C4
+ movs r0, 0x1
+ b _080288C6
+ .pool
+_080288C4:
+ movs r0, 0
+_080288C6:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8028828
+
+ thumb_func_start sub_80288D4
+sub_80288D4: @ 80288D4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xA
+ bls _08028910
+ movs r4, 0
+_080288E0:
+ ldr r0, =gUnknown_02022CF4
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ adds r0, 0x2A
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _080288E0
+ b _080289DA
+ .pool
+_08028910:
+ movs r4, 0
+ movs r0, 0xA
+ subs r0, r5
+ cmp r4, r0
+ bge _080289D6
+ ldr r6, =gSprites
+_0802891C:
+ cmp r5, 0x6
+ bls _08028984
+ ldr r0, =gUnknown_02022CF4
+ ldr r2, [r0]
+ ldr r1, =0x0000fffa
+ adds r0, r1, 0
+ ldrh r1, [r2, 0x3E]
+ adds r0, r1
+ adds r0, r5
+ movs r1, 0
+ strh r0, [r2, 0x3E]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1E
+ bls _0802894C
+ strh r1, [r2, 0x3E]
+ b _0802899E
+ .pool
+_0802894C:
+ cmp r0, 0xA
+ bls _0802896A
+ lsls r1, r4, 1
+ adds r0, r2, 0
+ adds r0, 0x2A
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x2
+ bl StartSpriteAnim
+ b _0802899E
+_0802896A:
+ lsls r1, r4, 1
+ adds r0, r2, 0
+ adds r0, 0x2A
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0
+ bl StartSpriteAnim
+ b _0802899E
+_08028984:
+ ldr r0, =gUnknown_02022CF4
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ adds r0, 0x2A
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0
+ bl StartSpriteAnim
+_0802899E:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0xA
+ subs r0, r5
+ cmp r4, r0
+ blt _0802891C
+ b _080289D6
+ .pool
+_080289B4:
+ ldr r0, =gUnknown_02022CF4
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ adds r0, 0x2A
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080289D6:
+ cmp r4, 0x9
+ bls _080289B4
+_080289DA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80288D4
+
+ thumb_func_start sub_80289E8
+sub_80289E8: @ 80289E8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0
+ ldr r7, =gSprites
+ movs r1, 0x1
+ ands r0, r1
+ lsls r4, r0, 2
+ movs r6, 0x5
+ negs r6, r6
+ ldr r5, =gUnknown_02022CF4
+_080289FE:
+ ldr r0, [r5]
+ lsls r1, r3, 1
+ adds r0, 0x2A
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ orrs r0, r4
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x9
+ bls _080289FE
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80289E8
+
+ thumb_func_start sub_8028A34
+sub_8028A34: @ 8028A34
+ push {r4,r5,lr}
+ sub sp, 0x10
+ movs r5, 0x90
+ lsls r5, 3
+ adds r0, r5, 0
+ bl AllocZeroed
+ adds r4, r0, 0
+ ldr r0, =gUnknown_082FB314
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ ldr r0, =gDodrioBerrySpritesGfx
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ cmp r4, 0
+ beq _08028A6A
+ str r4, [sp]
+ movs r0, 0x80
+ lsls r0, 10
+ orrs r0, r5
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+_08028A6A:
+ add r0, sp, 0x8
+ bl LoadSpritePalette
+ adds r0, r4, 0
+ bl Free
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8028A34
+
+ thumb_func_start sub_8028A88
+sub_8028A88: @ 8028A88
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x30
+ mov r1, sp
+ ldr r0, =gUnknown_082FB324
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ add r2, sp, 0x18
+ adds r1, r2, 0
+ ldr r0, =gUnknown_082FB33C
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ movs r5, 0
+ mov r9, r2
+_08028AB0:
+ movs r0, 0x4
+ bl AllocZeroed
+ ldr r1, =gUnknown_02022CB8
+ lsls r4, r5, 2
+ adds r4, r1
+ str r0, [r4]
+ lsls r0, r5, 3
+ lsls r1, r5, 4
+ adds r1, r0
+ mov r0, sp
+ movs r2, 0x8
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r1, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8028BF8
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xA
+ bls _08028AB0
+ movs r5, 0
+ ldr r7, =gUnknown_02022CE4
+ ldr r4, =gUnknown_082FB31C
+ mov r8, r4
+_08028AF0:
+ movs r0, 0x4
+ bl AllocZeroed
+ lsls r1, r5, 2
+ adds r4, r1, r7
+ str r0, [r4]
+ adds r6, r1, 0
+ cmp r5, 0x3
+ bne _08028B2C
+ mov r0, r8
+ movs r2, 0x6
+ ldrsh r1, [r0, r2]
+ mov r0, r9
+ movs r2, 0x31
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r7, 0xC]
+ b _08028B40
+ .pool
+_08028B2C:
+ lsls r0, r5, 1
+ add r0, r8
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ mov r0, r9
+ movs r2, 0x34
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r4]
+_08028B40:
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1]
+ adds r0, r6, r7
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ adds r1, r5, 0
+ bl StartSpriteAnim
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _08028AF0
+ movs r0, 0x1
+ bl sub_8028C30
+ add sp, 0x30
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8028A88
+
+ thumb_func_start sub_8028B80
+sub_8028B80: @ 8028B80
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r6, =gUnknown_02022CB8
+_08028B86:
+ lsls r0, r5, 2
+ adds r4, r0, r6
+ ldr r0, [r4]
+ ldrh r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ cmp r0, 0
+ beq _08028BA0
+ bl DestroySprite
+_08028BA0:
+ ldr r0, [r4]
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xA
+ bls _08028B86
+ movs r5, 0
+ ldr r6, =gUnknown_02022CE4
+_08028BB8:
+ lsls r0, r5, 2
+ adds r4, r0, r6
+ ldr r0, [r4]
+ ldrh r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ cmp r0, 0
+ beq _08028BD2
+ bl DestroySprite
+_08028BD2:
+ ldr r0, [r4]
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _08028BB8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8028B80
+
+ thumb_func_start sub_8028BF8
+sub_8028BF8: @ 8028BF8
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, =gSprites
+ ldr r2, =gUnknown_02022CB8
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ adds r2, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ bx lr
+ .pool
+ thumb_func_end sub_8028BF8
+
+ thumb_func_start sub_8028C30
+sub_8028C30: @ 8028C30
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0
+ ldr r7, =gSprites
+ ldr r6, =gUnknown_02022CE4
+ movs r1, 0x1
+ ands r0, r1
+ lsls r4, r0, 2
+ movs r5, 0x5
+ negs r5, r5
+_08028C46:
+ lsls r0, r3, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r5, 0
+ ands r0, r2
+ orrs r0, r4
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _08028C46
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8028C30
+
+ thumb_func_start sub_8028C7C
+sub_8028C7C: @ 8028C7C
+ lsls r0, 24
+ lsls r1, 24
+ ldr r3, =gSprites
+ ldr r2, =gUnknown_02022CB8
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ldrh r2, [r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ lsrs r1, 21
+ strh r1, [r0, 0x22]
+ bx lr
+ .pool
+ thumb_func_end sub_8028C7C
+
+ thumb_func_start sub_8028CA4
+sub_8028CA4: @ 8028CA4
+ push {lr}
+ lsls r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =gUnknown_02022CB8
+ lsrs r0, 14
+ adds r0, r2
+ ldr r0, [r0]
+ ldrh r2, [r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ ldr r2, =gSprites
+ adds r0, r2
+ bl StartSpriteAnim
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8028CA4
+
+ thumb_func_start sub_8028CD0
+sub_8028CD0: @ 8028CD0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gSprites
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, 0x32
+ strh r1, [r2, 0x20]
+ movs r0, 0x32
+ strh r0, [r2, 0x22]
+ bx lr
+ .pool
+ thumb_func_end sub_8028CD0
+
+ thumb_func_start sub_8028CF4
+sub_8028CF4: @ 8028CF4
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r0, 0x42
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _08028D36
+ movs r3, 0
+ ldr r7, =gUnknown_082FB354
+ ldr r6, =gUnknown_02022CB0
+ movs r5, 0
+_08028D0A:
+ lsls r0, r3, 2
+ adds r2, r0, r6
+ ldr r1, [r2]
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x1
+ strh r0, [r1, 0x2]
+ adds r1, r3, r7
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _08028D2C
+ ldrh r0, [r4, 0x20]
+ subs r0, 0x1
+ strh r0, [r4, 0x20]
+ ldr r0, [r2]
+ strh r5, [r0, 0x2]
+_08028D2C:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1
+ bls _08028D0A
+_08028D36:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8028CF4
+
+ thumb_func_start sub_8028D44
+sub_8028D44: @ 8028D44
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x28
+ movs r4, 0x80
+ lsls r4, 3
+ adds r0, r4, 0
+ bl AllocZeroed
+ adds r6, r0, 0
+ ldr r0, =gUnknown_082FB360
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ ldr r0, =gDodrioBerryPlatformGfx
+ adds r1, r6, 0
+ bl LZ77UnCompWram
+ cmp r6, 0
+ beq _08028DD2
+ str r6, [sp, 0x18]
+ add r0, sp, 0x18
+ movs r1, 0xA0
+ lsls r1, 11
+ orrs r1, r4
+ str r1, [r0, 0x4]
+ mov r2, sp
+ ldr r1, =gUnknown_082FB368
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ bl LoadSpriteSheet
+ add r0, sp, 0x20
+ bl LoadSpritePalette
+ movs r5, 0
+ ldr r7, =gUnknown_082FB356
+ adds r0, r7, 0x2
+ mov r9, r0
+ ldr r1, =gUnknown_02022CB0
+ mov r8, r1
+_08028D9E:
+ movs r0, 0x4
+ bl AllocZeroed
+ lsls r2, r5, 2
+ mov r3, r8
+ adds r4, r2, r3
+ str r0, [r4]
+ adds r0, r2, r7
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ add r2, r9
+ movs r0, 0
+ ldrsh r2, [r2, r0]
+ mov r0, sp
+ movs r3, 0x4
+ bl CreateSprite
+ ldr r1, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bls _08028D9E
+_08028DD2:
+ adds r0, r6, 0
+ bl Free
+ add sp, 0x28
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8028D44
+
+ thumb_func_start sub_8028DFC
+sub_8028DFC: @ 8028DFC
+ push {r4-r7,lr}
+ movs r3, 0
+ ldr r0, =gUnknown_02022CB0
+ mov r12, r0
+ ldr r4, =gUnknown_082FB356
+ adds r7, r4, 0x2
+ ldr r6, =gSprites
+ movs r5, 0x1
+_08028E0C:
+ lsls r2, r3, 2
+ mov r1, r12
+ adds r0, r2, r1
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r0, r1, 0
+ adds r0, 0x42
+ strh r5, [r0]
+ adds r0, r2, r4
+ ldrh r0, [r0]
+ strh r0, [r1, 0x20]
+ adds r2, r7
+ ldrh r0, [r2]
+ strh r0, [r1, 0x22]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1
+ bls _08028E0C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8028DFC
+
+ thumb_func_start sub_8028E4C
+sub_8028E4C: @ 8028E4C
+ push {r4,r5,lr}
+ movs r2, 0
+ ldr r5, =gUnknown_02022CB0
+ ldr r4, =gSprites
+ movs r3, 0
+_08028E56:
+ lsls r0, r2, 2
+ adds r0, r5
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x42
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1
+ bls _08028E56
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8028E4C
+
+ thumb_func_start sub_8028E84
+sub_8028E84: @ 8028E84
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r6, =gUnknown_02022CB0
+_08028E8A:
+ lsls r0, r5, 2
+ adds r4, r0, r6
+ ldr r0, [r4]
+ ldrh r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ cmp r0, 0
+ beq _08028EA4
+ bl DestroySprite
+_08028EA4:
+ ldr r0, [r4]
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bls _08028E8A
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8028E84
+
+ thumb_func_start sub_8028EC8
+sub_8028EC8: @ 8028EC8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0
+ ldr r7, =gSprites
+ ldr r6, =gUnknown_02022CB0
+ movs r1, 0x1
+ ands r0, r1
+ lsls r4, r0, 2
+ movs r5, 0x5
+ negs r5, r5
+_08028EDE:
+ lsls r0, r3, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r5, 0
+ ands r0, r2
+ orrs r0, r4
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1
+ bls _08028EDE
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8028EC8
+
+ thumb_func_start sub_8028F14
+sub_8028F14: @ 8028F14
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0
+ subs r0, r1, 0x1
+ cmp r0, 0x4
+ bhi _08028FC6
+ lsls r0, 2
+ ldr r1, =_08028F34
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08028F34:
+ .4byte _08028FB4
+ .4byte _08028F48
+ .4byte _08028F52
+ .4byte _08028F66
+ .4byte _08028F8E
+_08028F48:
+ cmp r2, 0
+ beq _08028F7E
+ cmp r2, 0x1
+ bne _08028FC6
+ b _08028F82
+_08028F52:
+ cmp r2, 0x1
+ beq _08028FB8
+ cmp r2, 0x1
+ bgt _08028F60
+ cmp r2, 0
+ beq _08028FB4
+ b _08028FC6
+_08028F60:
+ cmp r2, 0x2
+ bne _08028FC6
+ b _08028FC4
+_08028F66:
+ cmp r2, 0x1
+ beq _08028F82
+ cmp r2, 0x1
+ bgt _08028F74
+ cmp r2, 0
+ beq _08028F7E
+ b _08028FC6
+_08028F74:
+ cmp r2, 0x2
+ beq _08028F86
+ cmp r2, 0x3
+ beq _08028F8A
+ b _08028FC6
+_08028F7E:
+ movs r3, 0xC
+ b _08028FC6
+_08028F82:
+ movs r3, 0x12
+ b _08028FC6
+_08028F86:
+ movs r3, 0x18
+ b _08028FC6
+_08028F8A:
+ movs r3, 0x6
+ b _08028FC6
+_08028F8E:
+ cmp r2, 0x4
+ bhi _08028FC6
+ lsls r0, r2, 2
+ ldr r1, =_08028FA0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08028FA0:
+ .4byte _08028FB4
+ .4byte _08028FB8
+ .4byte _08028FBC
+ .4byte _08028FC0
+ .4byte _08028FC4
+_08028FB4:
+ movs r3, 0xF
+ b _08028FC6
+_08028FB8:
+ movs r3, 0x15
+ b _08028FC6
+_08028FBC:
+ movs r3, 0x1B
+ b _08028FC6
+_08028FC0:
+ movs r3, 0x3
+ b _08028FC6
+_08028FC4:
+ movs r3, 0x9
+_08028FC6:
+ lsls r0, r3, 3
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8028F14
+
+ thumb_func_start sub_8028FCC
+sub_8028FCC: @ 8028FCC
+ push {r4,lr}
+ movs r4, 0
+_08028FD0:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8028BF8
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8028C7C
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xA
+ bls _08028FD0
+ movs r0, 0
+ bl sub_80289E8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8028FCC
+
+ thumb_func_start sub_8028FF8
+sub_8028FF8: @ 8028FF8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl GetWindowFrameTilesPal
+ ldr r1, [r0]
+ movs r2, 0x90
+ lsls r2, 1
+ movs r0, 0
+ movs r3, 0x1
+ bl LoadBgTiles
+ adds r0, r4, 0
+ bl GetWindowFrameTilesPal
+ ldr r0, [r0, 0x4]
+ movs r1, 0xA0
+ movs r2, 0x20
+ bl LoadPalette
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8028FF8
+
+ thumb_func_start sub_802902C
+sub_802902C: @ 802902C
+ push {lr}
+ movs r0, 0
+ movs r1, 0xA
+ movs r2, 0xB0
+ bl box_border_load_tiles_and_pal
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802902C
+
+ thumb_func_start sub_802903C
+sub_802903C: @ 802903C
+ ldr r3, =gUnknown_02022CF8
+ ldr r0, [r3]
+ movs r2, 0xC0
+ lsls r2, 6
+ adds r1, r0, r2
+ movs r2, 0
+ str r2, [r1]
+ ldr r1, =0x00003014
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, [r3]
+ adds r1, 0x4
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, [r3]
+ adds r1, 0x8
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, [r3]
+ adds r1, 0x4
+ adds r0, r1
+ strb r2, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_802903C
+
+ thumb_func_start sub_8029074
+sub_8029074: @ 8029074
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ movs r6, 0xA
+ ldrb r2, [r4, 0x1]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r4, 0x2]
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r5, 0x1
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x1
+ bl FillBgTilemapBufferRect
+ ldrb r2, [r4, 0x1]
+ ldrb r3, [r4, 0x2]
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r4, 0x3]
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x2
+ bl FillBgTilemapBufferRect
+ ldrb r2, [r4, 0x3]
+ ldrb r0, [r4, 0x1]
+ adds r2, r0
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r4, 0x2]
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x3
+ bl FillBgTilemapBufferRect
+ ldrb r2, [r4, 0x1]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r4, 0x2]
+ str r5, [sp]
+ ldrb r0, [r4, 0x4]
+ str r0, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x4
+ bl FillBgTilemapBufferRect
+ ldrb r2, [r4, 0x3]
+ ldrb r0, [r4, 0x1]
+ adds r2, r0
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r4, 0x2]
+ str r5, [sp]
+ ldrb r0, [r4, 0x4]
+ str r0, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x6
+ bl FillBgTilemapBufferRect
+ ldrb r2, [r4, 0x1]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r4, 0x4]
+ ldrb r0, [r4, 0x2]
+ adds r3, r0
+ lsls r3, 24
+ lsrs r3, 24
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x7
+ bl FillBgTilemapBufferRect
+ ldrb r2, [r4, 0x1]
+ ldrb r3, [r4, 0x4]
+ ldrb r0, [r4, 0x2]
+ adds r3, r0
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r4, 0x3]
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x8
+ bl FillBgTilemapBufferRect
+ ldrb r2, [r4, 0x3]
+ ldrb r0, [r4, 0x1]
+ adds r2, r0
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r4, 0x4]
+ ldrb r4, [r4, 0x2]
+ adds r3, r4
+ lsls r3, 24
+ lsrs r3, 24
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x9
+ bl FillBgTilemapBufferRect
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8029074
+
+ thumb_func_start sub_8029174
+sub_8029174: @ 8029174
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ movs r6, 0xB
+ ldrb r2, [r4, 0x1]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r4, 0x2]
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r5, 0x1
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0xA
+ bl FillBgTilemapBufferRect
+ ldrb r2, [r4, 0x1]
+ ldrb r3, [r4, 0x2]
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r4, 0x3]
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0xB
+ bl FillBgTilemapBufferRect
+ ldrb r2, [r4, 0x3]
+ ldrb r0, [r4, 0x1]
+ adds r2, r0
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r4, 0x2]
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0xC
+ bl FillBgTilemapBufferRect
+ ldrb r2, [r4, 0x1]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r4, 0x2]
+ str r5, [sp]
+ ldrb r0, [r4, 0x4]
+ str r0, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0xD
+ bl FillBgTilemapBufferRect
+ ldrb r2, [r4, 0x3]
+ ldrb r0, [r4, 0x1]
+ adds r2, r0
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r4, 0x2]
+ str r5, [sp]
+ ldrb r0, [r4, 0x4]
+ str r0, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0xF
+ bl FillBgTilemapBufferRect
+ ldrb r2, [r4, 0x1]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r4, 0x4]
+ ldrb r0, [r4, 0x2]
+ adds r3, r0
+ lsls r3, 24
+ lsrs r3, 24
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x10
+ bl FillBgTilemapBufferRect
+ ldrb r2, [r4, 0x1]
+ ldrb r3, [r4, 0x4]
+ ldrb r0, [r4, 0x2]
+ adds r3, r0
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r4, 0x3]
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x11
+ bl FillBgTilemapBufferRect
+ ldrb r2, [r4, 0x3]
+ ldrb r0, [r4, 0x1]
+ adds r2, r0
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r4, 0x4]
+ ldrb r4, [r4, 0x2]
+ adds r3, r4
+ lsls r3, 24
+ lsrs r3, 24
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x12
+ bl FillBgTilemapBufferRect
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8029174
+
+ thumb_func_start sub_8029274
+sub_8029274: @ 8029274
+ push {r4,lr}
+ ldr r4, =gUnknown_02022CF8
+ str r0, [r4]
+ movs r2, 0xC0
+ lsls r2, 6
+ adds r1, r0, r2
+ movs r2, 0
+ str r2, [r1]
+ ldr r3, =0x00003014
+ adds r1, r0, r3
+ strb r2, [r1]
+ ldr r1, =0x00003018
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, [r4]
+ adds r3, 0xC
+ adds r0, r3
+ strb r2, [r0]
+ ldr r0, [r4]
+ adds r1, 0xC
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, =sub_8029314
+ movs r1, 0x3
+ bl CreateTask
+ ldr r1, [r4]
+ ldr r2, =0x00003004
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, =sub_8029338
+ bl sub_802A72C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8029274
+
+ thumb_func_start sub_80292D4
+sub_80292D4: @ 80292D4
+ push {lr}
+ bl FreeAllWindowBuffers
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80292D4
+
+ thumb_func_start sub_80292E0
+sub_80292E0: @ 80292E0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ ldr r5, =gUnknown_082FB40C
+ adds r7, r5, 0x4
+_080292EC:
+ lsls r1, r4, 3
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, r6
+ bne _080292FE
+ adds r0, r1, r7
+ ldr r0, [r0]
+ bl sub_802A72C
+_080292FE:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _080292EC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80292E0
+
+ thumb_func_start sub_8029314
+sub_8029314: @ 8029314
+ push {lr}
+ ldr r0, =gUnknown_02022CF8
+ ldr r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 6
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0802932E
+ bl sub_802A75C
+ bl _call_via_r0
+_0802932E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8029314
+
+ thumb_func_start sub_8029338
+sub_8029338: @ 8029338
+ push {lr}
+ ldr r0, =gUnknown_02022CF8
+ ldr r1, [r0]
+ ldr r2, =0x00003014
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bhi _08029430
+ lsls r0, 2
+ ldr r1, =_08029360
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08029360:
+ .4byte _08029374
+ .4byte _0802937A
+ .4byte _08029394
+ .4byte _080293D8
+ .4byte _08029404
+_08029374:
+ bl sub_802A7A8
+ b _08029414
+_0802937A:
+ bl sub_802A8E8
+ cmp r0, 0x1
+ bne _0802943A
+ ldr r0, =gUnknown_02022CF8
+ ldr r1, [r0]
+ ldr r2, =0x00003014
+ adds r1, r2
+ b _0802941C
+ .pool
+_08029394:
+ ldr r1, =gDodrioBerryBgTilemap1
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl CopyToBgTilemapBuffer
+ ldr r1, =gDodrioBerryBgTilemap2Left
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl CopyToBgTilemapBuffer
+ ldr r1, =gDodrioBerryBgTilemap2Right
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl CopyToBgTilemapBuffer
+ movs r0, 0x3
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x2
+ bl CopyBgTilemapBufferToVram
+ b _08029414
+ .pool
+_080293D8:
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0x3
+ bl ShowBg
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ ldr r0, =gUnknown_02022CF8
+ ldr r1, [r0]
+ ldr r2, =0x00003014
+ adds r1, r2
+ b _0802941C
+ .pool
+_08029404:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x14]
+ lsrs r0, 3
+ bl sub_8028FF8
+ bl sub_802902C
+_08029414:
+ ldr r0, =gUnknown_02022CF8
+ ldr r1, [r0]
+ ldr r0, =0x00003014
+ adds r1, r0
+_0802941C:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0802943A
+ .pool
+_08029430:
+ movs r2, 0xC0
+ lsls r2, 6
+ adds r1, r2
+ movs r0, 0x1
+ str r0, [r1]
+_0802943A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8029338
+
+ thumb_func_start sub_8029440
+sub_8029440: @ 8029440
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r4, =gUnknown_02022CF8
+ ldr r0, [r4]
+ ldr r2, =0x00003014
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08029488
+ cmp r0, 0x1
+ bne _08029460
+ b _080295EC
+_08029460:
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xB4
+ bhi _0802946E
+ b _0802968E
+_0802946E:
+ bl sub_8027650
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ cmp r6, r7
+ bcc _0802947E
+ b _08029666
+_0802947E:
+ b _08029640
+ .pool
+_08029488:
+ bl sub_8027650
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, =gUnknown_082FB3C8
+ subs r0, r7, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldr r5, [r0]
+ ldr r2, =0xffffff00
+ ldr r0, [sp, 0xC]
+ ands r0, r2
+ ldr r1, =0x00ffffff
+ ands r0, r1
+ movs r1, 0xE0
+ lsls r1, 19
+ orrs r0, r1
+ str r0, [sp, 0xC]
+ ldr r0, [sp, 0x10]
+ ands r0, r2
+ movs r1, 0x2
+ orrs r0, r1
+ ldr r1, =0xffff00ff
+ ands r0, r1
+ movs r1, 0xD0
+ lsls r1, 4
+ orrs r0, r1
+ ldr r1, =0x0000ffff
+ ands r0, r1
+ movs r1, 0x98
+ lsls r1, 13
+ orrs r0, r1
+ str r0, [sp, 0x10]
+ movs r6, 0
+ cmp r6, r7
+ bcs _080295B8
+ mov r3, sp
+ adds r3, 0xC
+ str r3, [sp, 0x18]
+ mov r10, r4
+ ldr r0, =0x00003008
+ mov r9, r0
+_080294DC:
+ movs r1, 0
+ mov r8, r1
+ adds r0, r6, 0
+ bl sub_8027A48
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ bl sub_8027660
+ adds r1, r0, 0
+ movs r0, 0x1
+ movs r2, 0x1
+ negs r2, r2
+ bl GetStringWidth
+ movs r1, 0x38
+ subs r1, r0
+ lsrs r1, 1
+ str r1, [sp, 0x14]
+ ldrb r0, [r5]
+ lsls r0, 8
+ ldr r2, =0xffff00ff
+ ldr r1, [sp, 0xC]
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp, 0xC]
+ ldrb r2, [r5, 0x1]
+ lsls r2, 16
+ ldr r0, =0xff00ffff
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp, 0xC]
+ add r0, sp, 0xC
+ bl AddWindow
+ mov r2, r10
+ ldr r1, [r2]
+ add r1, r9
+ adds r1, r6
+ strb r0, [r1]
+ ldr r0, [r2]
+ add r0, r9
+ adds r0, r6
+ ldrb r0, [r0]
+ bl ClearWindowTilemap
+ mov r3, r10
+ ldr r0, [r3]
+ add r0, r9
+ adds r0, r6
+ ldrb r0, [r0]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _0802955A
+ movs r0, 0x2
+ mov r8, r0
+_0802955A:
+ adds r0, r4, 0
+ bl sub_8027660
+ adds r4, r0, 0
+ mov r1, r10
+ ldr r0, [r1]
+ add r0, r9
+ adds r0, r6
+ ldrb r0, [r0]
+ ldr r3, [sp, 0x14]
+ lsls r2, r3, 24
+ lsrs r2, 24
+ mov r3, r8
+ lsls r1, r3, 1
+ add r1, r8
+ ldr r3, =gUnknown_082FB380
+ adds r1, r3
+ str r1, [sp]
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x1
+ bl box_print
+ mov r2, r10
+ ldr r0, [r2]
+ add r0, r9
+ adds r0, r6
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldr r3, [sp, 0x18]
+ ldrh r0, [r3, 0x6]
+ adds r0, 0xE
+ strh r0, [r3, 0x6]
+ add r0, sp, 0xC
+ bl sub_8029174
+ adds r5, 0x4
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, r7
+ bcc _080294DC
+_080295B8:
+ ldr r0, =gUnknown_02022CF8
+ ldr r1, [r0]
+ ldr r0, =0x00003014
+ adds r1, r0
+ b _0802962A
+ .pool
+_080295EC:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802968E
+ bl sub_8027650
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ cmp r6, r7
+ bcs _0802961C
+_08029604:
+ ldr r0, [r4]
+ ldr r1, =0x00003008
+ adds r0, r1
+ adds r0, r6
+ ldrb r0, [r0]
+ bl PutWindowTilemap
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, r7
+ bcc _08029604
+_0802961C:
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldr r0, =gUnknown_02022CF8
+ ldr r1, [r0]
+ ldr r2, =0x00003014
+ adds r1, r2
+_0802962A:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0802968E
+ .pool
+_08029640:
+ ldr r5, =gUnknown_02022CF8
+ ldr r0, [r5]
+ ldr r4, =0x00003008
+ adds r0, r4
+ adds r0, r6
+ ldrb r0, [r0]
+ bl ClearWindowTilemap
+ ldr r0, [r5]
+ adds r0, r4
+ adds r0, r6
+ ldrb r0, [r0]
+ bl RemoveWindow
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, r7
+ bcc _08029640
+_08029666:
+ movs r0, 0x1E
+ str r0, [sp]
+ movs r0, 0x14
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldr r0, =gUnknown_02022CF8
+ ldr r0, [r0]
+ movs r3, 0xC0
+ lsls r3, 6
+ adds r0, r3
+ movs r1, 0x1
+ str r1, [r0]
+_0802968E:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8029440
+
+ thumb_func_start sub_80296A8
+sub_80296A8: @ 80296A8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x6C
+ lsls r0, 24
+ movs r1, 0
+ mov r8, r1
+ movs r6, 0
+ lsrs r7, r0, 24
+ add r4, sp, 0x2C
+ ldr r1, =gUnknown_082FB45C
+ adds r0, r4, 0
+ movs r2, 0x5
+ bl memcpy
+ movs r5, 0
+ cmp r5, r7
+ bcs _080296F8
+ add r4, sp, 0x34
+_080296D2:
+ mov r0, sp
+ adds r0, r5
+ adds r0, 0x2C
+ strb r5, [r0]
+ add r0, sp, 0x5C
+ adds r1, r5, 0
+ bl sub_802793C
+ lsls r2, r5, 3
+ adds r2, r4, r2
+ ldr r0, [sp, 0x5C]
+ ldr r1, [sp, 0x60]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r7
+ bcc _080296D2
+_080296F8:
+ bl sub_8027748
+ cmp r0, 0
+ beq _0802972E
+_08029700:
+ movs r5, 0
+ cmp r5, r7
+ bcs _08029728
+ add r2, sp, 0x34
+ add r1, sp, 0x2C
+_0802970A:
+ lsls r0, r5, 3
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, r8
+ bne _0802971E
+ adds r0, r1, r6
+ strb r5, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0802971E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r7
+ bcc _0802970A
+_08029728:
+ mov r8, r6
+ cmp r6, r7
+ bcc _08029700
+_0802972E:
+ movs r5, 0
+ ldr r4, =gText_SpacePoints
+ cmp r5, r7
+ bcs _08029754
+ add r1, sp, 0x34
+ add r6, sp, 0x38
+ subs r3, r7, 0x1
+_0802973C:
+ lsls r2, r5, 3
+ adds r0, r6, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0802974A
+ adds r0, r1, r2
+ strb r3, [r0]
+_0802974A:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r7
+ bcc _0802973C
+_08029754:
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0
+ bl GetStringWidth
+ movs r1, 0xD8
+ subs r1, r0
+ str r1, [sp, 0x64]
+ movs r5, 0
+ cmp r5, r7
+ bcs _08029860
+ mov r2, sp
+ adds r2, 0x34
+ str r2, [sp, 0x68]
+ ldr r3, =0x00003009
+ mov r10, r3
+_08029774:
+ movs r0, 0
+ mov r8, r0
+ mov r0, sp
+ adds r0, r5
+ adds r0, 0x2C
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ lsls r1, r4, 3
+ add r0, sp, 0x38
+ adds r0, r1
+ ldr r0, [r0]
+ mov r9, r0
+ ldr r2, =gUnknown_02022CF8
+ ldr r0, [r2]
+ add r0, r10
+ ldrb r0, [r0]
+ ldr r2, =gUnknown_082FB3DC
+ ldr r3, [sp, 0x68]
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldr r2, [r1]
+ ldr r3, =gUnknown_082FB402
+ lsls r1, r5, 1
+ adds r1, r3
+ ldrb r6, [r1]
+ str r6, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ mov r3, r8
+ str r3, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _080297CC
+ movs r0, 0x2
+ mov r8, r0
+_080297CC:
+ adds r0, r4, 0
+ bl sub_8027660
+ adds r3, r0, 0
+ ldr r1, =gUnknown_02022CF8
+ ldr r0, [r1]
+ add r0, r10
+ ldrb r0, [r0]
+ mov r2, r8
+ lsls r1, r2, 1
+ add r1, r8
+ ldr r2, =gUnknown_082FB380
+ adds r1, r2
+ str r1, [sp]
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [sp, 0x4]
+ str r3, [sp, 0x8]
+ movs r1, 0x1
+ movs r2, 0x1C
+ adds r3, r6, 0
+ bl box_print
+ add r0, sp, 0xC
+ mov r1, r9
+ movs r2, 0
+ movs r3, 0x7
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x1
+ add r1, sp, 0xC
+ movs r2, 0x1
+ negs r2, r2
+ bl GetStringWidth
+ adds r3, r0, 0
+ ldr r2, =gUnknown_02022CF8
+ ldr r0, [r2]
+ add r0, r10
+ ldrb r0, [r0]
+ ldr r1, [sp, 0x64]
+ subs r3, r1, r3
+ lsls r3, 24
+ lsrs r3, 24
+ str r6, [sp]
+ movs r2, 0xFF
+ str r2, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ add r2, sp, 0xC
+ bl PrintTextOnWindow
+ ldr r2, =gUnknown_02022CF8
+ ldr r0, [r2]
+ add r0, r10
+ ldrb r0, [r0]
+ ldr r1, [sp, 0x64]
+ lsls r3, r1, 24
+ str r6, [sp]
+ movs r2, 0xFF
+ str r2, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ ldr r2, =gText_SpacePoints
+ lsrs r3, 24
+ bl PrintTextOnWindow
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r7
+ bcc _08029774
+_08029860:
+ add sp, 0x6C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80296A8
+
+ thumb_func_start sub_802988C
+sub_802988C: @ 802988C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ bl sub_8027650
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0xC]
+ ldr r6, =gUnknown_02022CF8
+ ldr r1, [r6]
+ ldr r2, =0x00003014
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0xB
+ bls _080298B2
+ b _08029FA8
+_080298B2:
+ lsls r0, 2
+ ldr r1, =_080298C8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080298C8:
+ .4byte _080298F8
+ .4byte _08029914
+ .4byte _0802996C
+ .4byte _08029B6C
+ .4byte _08029BB8
+ .4byte _08029BFC
+ .4byte _08029C60
+ .4byte _08029C9C
+ .4byte _08029CE0
+ .4byte _08029DA0
+ .4byte _08029F08
+ .4byte _08029F5C
+_080298F8:
+ bl sub_802784C
+ ldr r0, =gUnknown_02022CF8
+ ldr r1, [r0]
+ ldr r0, =0x0000301c
+ adds r2, r1, r0
+ movs r0, 0
+ strh r0, [r2]
+ b _08029F8A
+ .pool
+_08029914:
+ ldr r6, =gUnknown_082F7BBC
+ adds r0, r6, 0
+ bl AddWindow
+ ldr r4, =gUnknown_02022CF8
+ ldr r1, [r4]
+ ldr r2, =0x00003008
+ mov r8, r2
+ add r1, r8
+ strb r0, [r1]
+ movs r0, 0x8
+ adds r0, r6
+ mov r9, r0
+ bl AddWindow
+ ldr r1, [r4]
+ ldr r5, =0x00003009
+ adds r1, r5
+ strb r0, [r1]
+ ldr r0, [r4]
+ add r0, r8
+ ldrb r0, [r0]
+ bl ClearWindowTilemap
+ ldr r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl ClearWindowTilemap
+ adds r0, r6, 0
+ bl sub_8029174
+ mov r0, r9
+ bl sub_8029174
+ b _08029F88
+ .pool
+_0802996C:
+ ldr r4, =gUnknown_02022CF8
+ ldr r0, [r4]
+ ldr r5, =0x00003008
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r0, [r4]
+ ldr r1, =0x00003009
+ mov r9, r1
+ add r0, r9
+ ldrb r0, [r0]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r2, =gText_BerryPickingResults
+ mov r8, r2
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x1
+ mov r1, r8
+ bl GetStringWidth
+ adds r1, r0, 0
+ movs r0, 0xE0
+ subs r0, r1
+ lsrs r3, r0, 1
+ ldr r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0x1
+ str r1, [sp]
+ movs r6, 0xFF
+ str r6, [sp, 0x4]
+ movs r5, 0
+ str r5, [sp, 0x8]
+ mov r2, r8
+ bl PrintTextOnWindow
+ ldr r0, [r4]
+ add r0, r9
+ ldrb r0, [r0]
+ ldr r2, =gText_10P30P50P50P
+ movs r1, 0x11
+ str r1, [sp]
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x44
+ bl PrintTextOnWindow
+ mov r9, r5
+ ldr r0, [sp, 0xC]
+ cmp r9, r0
+ bcc _080299E2
+ b _08029B2A
+_080299E2:
+ movs r4, 0
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r9, r0
+ bne _080299F2
+ movs r4, 0x2
+_080299F2:
+ mov r0, r9
+ bl sub_8027660
+ adds r6, r0, 0
+ ldr r0, =gUnknown_02022CF8
+ ldr r0, [r0]
+ ldr r1, =0x00003009
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r2, r9
+ lsls r5, r2, 1
+ ldr r2, =gUnknown_082FB3F8
+ adds r1, r5, r2
+ ldrb r3, [r1]
+ lsls r1, r4, 1
+ adds r1, r4
+ ldr r2, =gUnknown_082FB380
+ adds r1, r2
+ str r1, [sp]
+ movs r4, 0x1
+ negs r4, r4
+ str r4, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r1, 0x1
+ movs r2, 0
+ bl box_print
+ movs r7, 0
+ mov r8, r5
+ mov r0, r9
+ adds r0, 0x1
+ str r0, [sp, 0x10]
+ ldr r1, =gStringVar4
+ mov r10, r1
+_08029A36:
+ mov r0, r9
+ adds r1, r7, 0
+ bl sub_80276A0
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, =0x0000270f
+ bl sub_8027A38
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r7, 0
+ bl sub_802778C
+ ldr r1, =0x0000270f
+ bl sub_8027A38
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r0, r10
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x1
+ mov r1, r10
+ movs r2, 0x1
+ negs r2, r2
+ bl GetStringWidth
+ adds r5, r0, 0
+ cmp r6, r4
+ bne _08029AE0
+ cmp r6, 0
+ beq _08029AE0
+ ldr r0, =gUnknown_02022CF8
+ ldr r0, [r0]
+ ldr r2, =0x00003009
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r1, r7, 1
+ ldr r2, =gUnknown_082FB3F0
+ adds r1, r2
+ ldrb r2, [r1]
+ subs r2, r5
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r1, =gUnknown_082FB3F8
+ add r1, r8
+ ldrb r3, [r1]
+ ldr r1, =gUnknown_082FB383
+ str r1, [sp]
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [sp, 0x4]
+ mov r1, r10
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ bl box_print
+ b _08029B10
+ .pool
+_08029AE0:
+ ldr r0, =gUnknown_02022CF8
+ ldr r0, [r0]
+ ldr r2, =0x00003009
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r1, r7, 1
+ ldr r2, =gUnknown_082FB3F0
+ adds r1, r2
+ ldrb r3, [r1]
+ subs r3, r5
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r1, =gUnknown_082FB3F8
+ add r1, r8
+ ldrb r1, [r1]
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ ldr r2, =gStringVar4
+ bl PrintTextOnWindow
+_08029B10:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x3
+ bls _08029A36
+ ldr r1, [sp, 0x10]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r2, [sp, 0xC]
+ cmp r9, r2
+ bcs _08029B2A
+ b _080299E2
+_08029B2A:
+ ldr r4, =gUnknown_02022CF8
+ ldr r0, [r4]
+ ldr r1, =0x00003008
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldr r0, [r4]
+ ldr r2, =0x00003009
+ adds r0, r2
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldr r1, [r4]
+ ldr r0, =0x00003014
+ adds r1, r0
+ b _08029F8E
+ .pool
+_08029B6C:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _08029B90
+ ldr r4, =gUnknown_02022CF8
+ ldr r0, [r4]
+ ldr r1, =0x00003008
+ adds r0, r1
+ ldrb r0, [r0]
+ bl PutWindowTilemap
+ ldr r0, [r4]
+ ldr r2, =0x00003009
+ adds r0, r2
+ ldrb r0, [r0]
+ bl PutWindowTilemap
+_08029B90:
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0
+ bl sub_8028C30
+ ldr r0, =gUnknown_02022CF8
+ ldr r1, [r0]
+ ldr r0, =0x00003014
+ adds r1, r0
+ b _08029F8E
+ .pool
+_08029BB8:
+ ldr r4, =gUnknown_02022CF8
+ ldr r0, [r4]
+ ldr r1, =0x0000301c
+ adds r2, r0, r1
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1D
+ bhi _08029BD0
+ b _08029FF8
+_08029BD0:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08029BDE
+ b _08029FF8
+_08029BDE:
+ movs r0, 0
+ strh r0, [r2]
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_8028C30
+ b _08029F88
+ .pool
+_08029BFC:
+ ldr r4, =gUnknown_02022CF8
+ ldr r0, [r4]
+ ldr r5, =0x00003008
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r0, [r4]
+ ldr r1, =0x00003009
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r6, =gText_AnnouncingRankings
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x1
+ adds r1, r6, 0
+ bl GetStringWidth
+ adds r1, r0, 0
+ movs r0, 0xE0
+ subs r0, r1
+ lsrs r3, r0, 1
+ ldr r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r6, 0
+ bl PrintTextOnWindow
+ b _08029F88
+ .pool
+_08029C60:
+ ldr r0, [sp, 0xC]
+ bl sub_80296A8
+ ldr r4, =gUnknown_02022CF8
+ ldr r0, [r4]
+ ldr r1, =0x00003008
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldr r0, [r4]
+ ldr r2, =0x00003009
+ adds r0, r2
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldr r1, [r4]
+ ldr r0, =0x00003014
+ adds r1, r0
+ b _08029F8E
+ .pool
+_08029C9C:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _08029CC0
+ ldr r4, =gUnknown_02022CF8
+ ldr r0, [r4]
+ ldr r1, =0x00003008
+ adds r0, r1
+ ldrb r0, [r0]
+ bl PutWindowTilemap
+ ldr r0, [r4]
+ ldr r2, =0x00003009
+ adds r0, r2
+ ldrb r0, [r0]
+ bl PutWindowTilemap
+_08029CC0:
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldr r0, =gUnknown_02022CF8
+ ldr r1, [r0]
+ ldr r0, =0x00003014
+ adds r1, r0
+ b _08029F8E
+ .pool
+_08029CE0:
+ ldr r4, =gUnknown_02022CF8
+ ldr r0, [r4]
+ ldr r1, =0x0000301c
+ adds r2, r0, r1
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1D
+ bhi _08029CF8
+ b _08029FF8
+_08029CF8:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08029D06
+ b _08029FF8
+_08029D06:
+ movs r0, 0
+ strh r0, [r2]
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8027748
+ ldr r1, =0x00000bb7
+ cmp r0, r1
+ bhi _08029D3C
+ ldr r0, [r4]
+ ldr r2, =0x00003014
+ adds r0, r2
+ movs r1, 0x7F
+ strb r1, [r0]
+ b _08029D4C
+ .pool
+_08029D3C:
+ bl StopMapMusic
+ ldr r1, [r4]
+ ldr r0, =0x00003014
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08029D4C:
+ movs r0, 0x1E
+ str r0, [sp]
+ movs r0, 0xF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x5
+ bl FillBgTilemapBufferRect_Palette0
+ ldr r5, =gUnknown_02022CF8
+ ldr r0, [r5]
+ ldr r4, =0x00003009
+ adds r0, r4
+ ldrb r0, [r0]
+ bl RemoveWindow
+ ldr r6, =gUnknown_082F7BCC
+ adds r0, r6, 0
+ bl AddWindow
+ ldr r1, [r5]
+ adds r1, r4
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl ClearWindowTilemap
+ adds r0, r6, 0
+ bl sub_8029174
+ b _08029FF8
+ .pool
+_08029DA0:
+ ldr r0, =0x0000016f
+ bl PlayNewMapMusic
+ ldr r4, =gUnknown_02022CF8
+ ldr r0, [r4]
+ ldr r6, =0x00003008
+ adds r0, r6
+ ldrb r0, [r0]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r0, [r4]
+ ldr r1, =0x00003009
+ mov r10, r1
+ add r0, r10
+ ldrb r0, [r0]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r5, =gText_AnnouncingPrizes
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x1
+ adds r1, r5, 0
+ bl GetStringWidth
+ adds r1, r0, 0
+ movs r0, 0xE0
+ subs r0, r1
+ lsrs r3, r0, 1
+ ldr r0, [r4]
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r3, 24
+ lsrs r3, 24
+ movs r2, 0x1
+ mov r9, r2
+ str r2, [sp]
+ movs r1, 0xFF
+ mov r8, r1
+ str r1, [sp, 0x4]
+ movs r6, 0
+ str r6, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r5, 0
+ bl PrintTextOnWindow
+ bl UnkTextUtil_Reset
+ bl sub_802762C
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r5, =gStringVar1
+ adds r1, r5, 0
+ bl CopyItemName
+ movs r0, 0
+ adds r1, r5, 0
+ bl UnkTextUtil_SetPtrI
+ ldr r7, =gStringVar4
+ ldr r1, =gText_FirstPlacePrize
+ adds r0, r7, 0
+ bl UnkTextUtil_StringExpandPlaceholders
+ ldr r0, [r4]
+ add r0, r10
+ ldrb r0, [r0]
+ mov r2, r9
+ str r2, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r7, 0
+ movs r3, 0
+ bl PrintTextOnWindow
+ bl sub_80279C8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ cmp r4, 0
+ beq _08029EC8
+ cmp r4, 0x3
+ beq _08029EC8
+ bl UnkTextUtil_Reset
+ bl sub_802762C
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ bl CopyItemName
+ movs r0, 0
+ adds r1, r5, 0
+ bl UnkTextUtil_SetPtrI
+ cmp r4, 0x2
+ bne _08029E9C
+ ldr r1, =gText_CantHoldAnyMore
+ adds r0, r7, 0
+ bl UnkTextUtil_StringExpandPlaceholders
+ b _08029EA8
+ .pool
+_08029E9C:
+ cmp r6, 0x1
+ bne _08029EA8
+ ldr r1, =gText_FilledStorageSpace
+ adds r0, r7, 0
+ bl UnkTextUtil_StringExpandPlaceholders
+_08029EA8:
+ ldr r0, =gUnknown_02022CF8
+ ldr r0, [r0]
+ ldr r2, =0x00003009
+ adds r0, r2
+ ldrb r0, [r0]
+ ldr r2, =gStringVar4
+ movs r1, 0x29
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+_08029EC8:
+ ldr r4, =gUnknown_02022CF8
+ ldr r0, [r4]
+ ldr r1, =0x00003008
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldr r0, [r4]
+ ldr r2, =0x00003009
+ adds r0, r2
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldr r1, [r4]
+ ldr r0, =0x00003014
+ adds r1, r0
+ b _08029F8E
+ .pool
+_08029F08:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _08029F2C
+ ldr r4, =gUnknown_02022CF8
+ ldr r0, [r4]
+ ldr r1, =0x00003008
+ adds r0, r1
+ ldrb r0, [r0]
+ bl PutWindowTilemap
+ ldr r0, [r4]
+ ldr r2, =0x00003009
+ adds r0, r2
+ ldrb r0, [r0]
+ bl PutWindowTilemap
+_08029F2C:
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldr r0, =0x0000020b
+ movs r1, 0x14
+ movs r2, 0xA
+ bl FadeOutAndFadeInNewMapMusic
+ ldr r0, =gUnknown_02022CF8
+ ldr r1, [r0]
+ ldr r0, =0x00003014
+ adds r1, r0
+ b _08029F8E
+ .pool
+_08029F5C:
+ ldr r4, =gUnknown_02022CF8
+ ldr r0, [r4]
+ ldr r1, =0x0000301c
+ adds r2, r0, r1
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1D
+ bls _08029FF8
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08029FF8
+ movs r0, 0
+ strh r0, [r2]
+ movs r0, 0x5
+ bl PlaySE
+_08029F88:
+ ldr r1, [r4]
+_08029F8A:
+ ldr r2, =0x00003014
+ adds r1, r2
+_08029F8E:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08029FF8
+ .pool
+_08029FA8:
+ ldr r5, =0x00003008
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ bl ClearWindowTilemap
+ ldr r0, [r6]
+ ldr r4, =0x00003009
+ adds r0, r4
+ ldrb r0, [r0]
+ bl ClearWindowTilemap
+ ldr r0, [r6]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl RemoveWindow
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl RemoveWindow
+ movs r0, 0x1E
+ str r0, [sp]
+ movs r0, 0x14
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldr r0, [r6]
+ movs r1, 0xC0
+ lsls r1, 6
+ adds r0, r1
+ movs r1, 0x1
+ str r1, [r0]
+_08029FF8:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802988C
+
+ thumb_func_start sub_802A010
+sub_802A010: @ 802A010
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ ldr r1, =gUnknown_02022CF8
+ ldr r2, [r1]
+ ldr r3, =0x00003014
+ adds r0, r2, r3
+ ldrb r6, [r0]
+ adds r7, r1, 0
+ cmp r6, 0x1
+ beq _0802A0CC
+ cmp r6, 0x1
+ bgt _0802A040
+ cmp r6, 0
+ beq _0802A04E
+ b _0802A2FC
+ .pool
+_0802A040:
+ cmp r6, 0x2
+ bne _0802A046
+ b _0802A194
+_0802A046:
+ cmp r6, 0x3
+ bne _0802A04C
+ b _0802A1D0
+_0802A04C:
+ b _0802A2FC
+_0802A04E:
+ ldr r0, =gUnknown_082F7BD4
+ mov r9, r0
+ bl AddWindow
+ ldr r1, [r7]
+ ldr r4, =0x00003008
+ adds r1, r4
+ strb r0, [r1]
+ movs r1, 0x8
+ add r1, r9
+ mov r8, r1
+ mov r0, r8
+ bl AddWindow
+ ldr r1, [r7]
+ ldr r2, =0x00003009
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, [r7]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl ClearWindowTilemap
+ ldr r0, [r7]
+ ldr r3, =0x00003009
+ adds r0, r3
+ ldrb r0, [r0]
+ bl ClearWindowTilemap
+ mov r0, r9
+ bl sub_8029174
+ mov r0, r8
+ bl sub_8029074
+ ldr r1, [r7]
+ ldr r0, =0x00003014
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r7]
+ ldr r1, =0x00003020
+ adds r0, r1
+ strb r6, [r0]
+ ldr r0, [r7]
+ ldr r2, =0x00003024
+ adds r0, r2
+ strb r6, [r0]
+ b _0802A35E
+ .pool
+_0802A0CC:
+ ldr r3, =0x00003008
+ mov r8, r3
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r0, [r7]
+ ldr r1, =0x00003009
+ mov r10, r1
+ add r0, r10
+ ldrb r0, [r0]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r0, [r7]
+ add r0, r8
+ ldrb r0, [r0]
+ ldr r2, =gText_WantToPlayAgain
+ movs r1, 0x5
+ str r1, [sp]
+ movs r3, 0xFF
+ mov r9, r3
+ str r3, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldr r0, [r7]
+ add r0, r10
+ ldrb r0, [r0]
+ ldr r2, =gText_Yes
+ str r6, [sp]
+ mov r3, r9
+ str r3, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ ldr r0, [r7]
+ add r0, r10
+ ldrb r0, [r0]
+ ldr r2, =gText_No
+ movs r1, 0x11
+ str r1, [sp]
+ mov r3, r9
+ str r3, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ ldr r0, [r7]
+ add r0, r10
+ ldrb r0, [r0]
+ ldr r2, =gText_SelectorArrow2
+ str r6, [sp]
+ mov r3, r9
+ str r3, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldr r0, [r7]
+ add r0, r8
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldr r0, [r7]
+ add r0, r10
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldr r1, [r7]
+ ldr r2, =0x00003014
+ adds r1, r2
+ b _0802A2EA
+ .pool
+_0802A194:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802A1B6
+ ldr r0, [r7]
+ ldr r3, =0x00003008
+ adds r0, r3
+ ldrb r0, [r0]
+ bl PutWindowTilemap
+ ldr r0, [r7]
+ ldr r1, =0x00003009
+ adds r0, r1
+ ldrb r0, [r0]
+ bl PutWindowTilemap
+_0802A1B6:
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldr r1, [r7]
+ ldr r2, =0x00003014
+ adds r1, r2
+ b _0802A2EA
+ .pool
+_0802A1D0:
+ ldr r3, =0x00003020
+ adds r0, r2, r3
+ ldrb r5, [r0]
+ cmp r5, 0
+ bne _0802A1DC
+ movs r5, 0x1
+_0802A1DC:
+ ldr r0, =0x00003009
+ mov r8, r0
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r0, [r7]
+ add r0, r8
+ ldrb r0, [r0]
+ ldr r2, =gText_Yes
+ movs r1, 0x1
+ str r1, [sp]
+ movs r3, 0xFF
+ mov r10, r3
+ str r3, [sp, 0x4]
+ movs r1, 0
+ mov r9, r1
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ ldr r0, [r7]
+ add r0, r8
+ ldrb r0, [r0]
+ ldr r2, =gText_No
+ movs r1, 0x11
+ str r1, [sp]
+ mov r3, r10
+ str r3, [sp, 0x4]
+ mov r1, r9
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ ldr r0, [r7]
+ add r0, r8
+ ldrb r0, [r0]
+ ldr r2, =gText_SelectorArrow2
+ subs r1, r5, 0x1
+ lsls r1, 4
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ mov r3, r10
+ str r3, [sp, 0x4]
+ mov r1, r9
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldr r0, [r7]
+ add r0, r8
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r5, 0x1
+ movs r2, 0x1
+ ands r2, r1
+ cmp r2, 0
+ beq _0802A294
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, [r7]
+ ldr r3, =0x00003020
+ adds r1, r0, r3
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0802A2E4
+ strb r5, [r1]
+ b _0802A2E4
+ .pool
+_0802A294:
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802A2CC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, [r7]
+ ldr r2, =0x00003020
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ beq _0802A2C2
+ cmp r0, 0x1
+ bgt _0802A2BC
+ cmp r0, 0
+ beq _0802A2C2
+ b _0802A35E
+ .pool
+_0802A2BC:
+ cmp r0, 0x2
+ beq _0802A2C8
+ b _0802A35E
+_0802A2C2:
+ movs r0, 0x2
+ strb r0, [r1]
+ b _0802A35E
+_0802A2C8:
+ strb r5, [r1]
+ b _0802A35E
+_0802A2CC:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802A35E
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, [r7]
+ ldr r3, =0x00003020
+ adds r0, r3
+ movs r1, 0x2
+ strb r1, [r0]
+_0802A2E4:
+ ldr r1, [r7]
+ ldr r0, =0x00003014
+ adds r1, r0
+_0802A2EA:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0802A35E
+ .pool
+_0802A2FC:
+ ldr r0, [r7]
+ ldr r2, =0x00003020
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ ldr r3, =0x00003024
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r7]
+ ldr r6, =0x00003008
+ adds r0, r6
+ ldrb r0, [r0]
+ bl ClearWindowTilemap
+ ldr r0, [r7]
+ ldr r1, =0x00003009
+ adds r0, r1
+ ldrb r0, [r0]
+ bl ClearWindowTilemap
+ ldr r0, [r7]
+ adds r0, r6
+ ldrb r0, [r0]
+ bl RemoveWindow
+ ldr r0, [r7]
+ ldr r2, =0x00003009
+ adds r0, r2
+ ldrb r0, [r0]
+ bl RemoveWindow
+ movs r0, 0x1E
+ str r0, [sp]
+ movs r0, 0x14
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldr r0, [r7]
+ movs r3, 0xC0
+ lsls r3, 6
+ adds r0, r3
+ movs r1, 0x1
+ str r1, [r0]
+_0802A35E:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802A010
+
+ thumb_func_start sub_802A380
+sub_802A380: @ 802A380
+ push {r4-r6,lr}
+ sub sp, 0x10
+ ldr r5, =gUnknown_02022CF8
+ ldr r0, [r5]
+ ldr r6, =0x00003014
+ adds r0, r6
+ ldrb r4, [r0]
+ cmp r4, 0x1
+ beq _0802A3D8
+ cmp r4, 0x1
+ bgt _0802A3A4
+ cmp r4, 0
+ beq _0802A3AE
+ b _0802A420
+ .pool
+_0802A3A4:
+ cmp r4, 0x2
+ beq _0802A3EC
+ cmp r4, 0x3
+ beq _0802A404
+ b _0802A420
+_0802A3AE:
+ movs r0, 0
+ movs r1, 0
+ bl NewMenuHelpers_DrawDialogueFrame
+ ldr r2, =gText_SavingDontTurnOffPower
+ str r4, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ str r0, [sp, 0xC]
+ movs r0, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl AddTextPrinterParameterized
+ b _0802A410
+ .pool
+_0802A3D8:
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r1, [r5]
+ ldr r0, =0x00003014
+ adds r1, r0
+ b _0802A414
+ .pool
+_0802A3EC:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802A448
+ ldr r0, =sub_8153688
+ movs r1, 0
+ bl CreateTask
+ b _0802A410
+ .pool
+_0802A404:
+ ldr r0, =sub_8153688
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802A448
+_0802A410:
+ ldr r1, [r5]
+ adds r1, r6
+_0802A414:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0802A448
+ .pool
+_0802A420:
+ movs r0, 0x1E
+ str r0, [sp]
+ movs r0, 0x14
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldr r0, =gUnknown_02022CF8
+ ldr r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 6
+ adds r0, r1
+ movs r1, 0x1
+ str r1, [r0]
+_0802A448:
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802A380
+
+ thumb_func_start sub_802A454
+sub_802A454: @ 802A454
+ push {r4-r6,lr}
+ sub sp, 0xC
+ ldr r1, =gUnknown_02022CF8
+ ldr r2, [r1]
+ ldr r6, =0x00003014
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0x1
+ beq _0802A4AC
+ cmp r0, 0x1
+ bgt _0802A47C
+ cmp r0, 0
+ beq _0802A482
+ b _0802A520
+ .pool
+_0802A47C:
+ cmp r0, 0x2
+ beq _0802A4F4
+ b _0802A520
+_0802A482:
+ ldr r4, =gUnknown_082F7BEC
+ adds r0, r4, 0
+ bl AddWindow
+ ldr r1, [r5]
+ ldr r2, =0x00003008
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r0, r2
+ ldrb r0, [r0]
+ bl ClearWindowTilemap
+ adds r0, r4, 0
+ bl sub_8029174
+ b _0802A510
+ .pool
+_0802A4AC:
+ ldr r4, =0x00003008
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ ldr r2, =gText_CommunicationStandby3
+ movs r1, 0x5
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldr r1, [r5]
+ ldr r0, =0x00003014
+ adds r1, r0
+ b _0802A514
+ .pool
+_0802A4F4:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802A50A
+ ldr r0, [r5]
+ ldr r1, =0x00003008
+ adds r0, r1
+ ldrb r0, [r0]
+ bl PutWindowTilemap
+_0802A50A:
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+_0802A510:
+ ldr r1, [r5]
+ adds r1, r6
+_0802A514:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0802A52C
+ .pool
+_0802A520:
+ ldr r0, [r5]
+ movs r1, 0xC0
+ lsls r1, 6
+ adds r0, r1
+ movs r1, 0x1
+ str r1, [r0]
+_0802A52C:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802A454
+
+ thumb_func_start sub_802A534
+sub_802A534: @ 802A534
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r5, =gUnknown_02022CF8
+ ldr r0, [r5]
+ ldr r4, =0x00003008
+ adds r0, r4
+ ldrb r0, [r0]
+ bl ClearWindowTilemap
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl RemoveWindow
+ movs r0, 0x1E
+ str r0, [sp]
+ movs r0, 0x14
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldr r0, [r5]
+ movs r1, 0xC0
+ lsls r1, 6
+ adds r0, r1
+ movs r1, 0x1
+ str r1, [r0]
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802A534
+
+ thumb_func_start sub_802A588
+sub_802A588: @ 802A588
+ push {r4-r7,lr}
+ sub sp, 0xC
+ ldr r0, =gUnknown_02022CF8
+ ldr r1, [r0]
+ ldr r7, =0x00003014
+ adds r2, r1, r7
+ ldrb r5, [r2]
+ adds r6, r0, 0
+ cmp r5, 0x1
+ beq _0802A610
+ cmp r5, 0x1
+ bgt _0802A5B0
+ cmp r5, 0
+ beq _0802A5BA
+ b _0802A6A4
+ .pool
+_0802A5B0:
+ cmp r5, 0x2
+ beq _0802A658
+ cmp r5, 0x3
+ beq _0802A684
+ b _0802A6A4
+_0802A5BA:
+ ldr r4, =gUnknown_082F7BE4
+ adds r0, r4, 0
+ bl AddWindow
+ ldr r1, [r6]
+ ldr r2, =0x00003008
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, r2
+ ldrb r0, [r0]
+ bl ClearWindowTilemap
+ adds r0, r4, 0
+ bl sub_8029174
+ ldr r1, [r6]
+ adds r1, r7
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r6]
+ ldr r2, =0x0000301c
+ adds r1, r0, r2
+ movs r2, 0
+ strh r5, [r1]
+ ldr r1, =0x00003020
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, [r6]
+ adds r1, 0x4
+ adds r0, r1
+ strb r2, [r0]
+ b _0802A6EA
+ .pool
+_0802A610:
+ ldr r4, =0x00003008
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r0, [r0]
+ ldr r2, =gText_SomeoneDroppedOut
+ movs r1, 0x5
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldr r1, [r6]
+ ldr r2, =0x00003014
+ adds r1, r2
+ b _0802A678
+ .pool
+_0802A658:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802A66E
+ ldr r0, [r6]
+ ldr r1, =0x00003008
+ adds r0, r1
+ ldrb r0, [r0]
+ bl PutWindowTilemap
+_0802A66E:
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldr r1, [r6]
+ adds r1, r7
+_0802A678:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0802A6EA
+ .pool
+_0802A684:
+ ldr r0, =0x0000301c
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x77
+ bls _0802A6EA
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ b _0802A6EA
+ .pool
+_0802A6A4:
+ ldr r0, [r6]
+ ldr r1, =0x00003024
+ adds r0, r1
+ movs r1, 0x5
+ strb r1, [r0]
+ ldr r0, [r6]
+ ldr r4, =0x00003008
+ adds r0, r4
+ ldrb r0, [r0]
+ bl ClearWindowTilemap
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl RemoveWindow
+ movs r0, 0x1E
+ str r0, [sp]
+ movs r0, 0x14
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldr r0, [r6]
+ movs r2, 0xC0
+ lsls r2, 6
+ adds r0, r2
+ movs r1, 0x1
+ str r1, [r0]
+_0802A6EA:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802A588
+
+ thumb_func_start unused_0
+unused_0: @ 802A6FC
+ push {r4,lr}
+ ldr r4, =gUnknown_02022CF8
+ ldr r0, [r4]
+ ldr r1, =0x00003004
+ adds r0, r1
+ ldrb r0, [r0]
+ bl DestroyTask
+ ldr r0, [r4]
+ movs r1, 0xC0
+ lsls r1, 6
+ adds r0, r1
+ movs r1, 0x1
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end unused_0
+
+ thumb_func_start nullsub_16
+nullsub_16: @ 802A728
+ bx lr
+ thumb_func_end nullsub_16
+
+ thumb_func_start sub_802A72C
+sub_802A72C: @ 802A72C
+ push {r4,lr}
+ ldr r2, =gUnknown_02022CF8
+ ldr r1, [r2]
+ ldr r3, =0x00003014
+ adds r1, r3
+ movs r3, 0
+ strb r3, [r1]
+ ldr r1, [r2]
+ movs r4, 0xC0
+ lsls r4, 6
+ adds r2, r1, r4
+ str r3, [r2]
+ ldr r2, =0x00003028
+ adds r1, r2
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802A72C
+
+ thumb_func_start sub_802A75C
+sub_802A75C: @ 802A75C
+ ldr r0, =gUnknown_02022CF8
+ ldr r0, [r0]
+ ldr r1, =0x00003028
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_802A75C
+
+ thumb_func_start sub_802A770
+sub_802A770: @ 802A770
+ push {lr}
+ ldr r0, =gUnknown_02022CF8
+ ldr r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 6
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0x1
+ beq _0802A78C
+ movs r0, 0x1
+ b _0802A78E
+ .pool
+_0802A78C:
+ movs r0, 0
+_0802A78E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802A770
+
+ thumb_func_start sub_802A794
+sub_802A794: @ 802A794
+ ldr r0, =gUnknown_02022CF8
+ ldr r0, [r0]
+ ldr r1, =0x00003024
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_802A794
+
+ thumb_func_start sub_802A7A8
+sub_802A7A8: @ 802A7A8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r3, 0xC0
+ lsls r3, 19
+ movs r4, 0xC0
+ lsls r4, 9
+ add r0, sp, 0x4
+ mov r8, r0
+ mov r2, sp
+ movs r6, 0
+ ldr r1, =0x040000d4
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, =0x81000800
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_0802A7CE:
+ strh r6, [r2]
+ mov r0, sp
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r5
+ subs r4, r5
+ cmp r4, r5
+ bhi _0802A7CE
+ strh r6, [r2]
+ mov r2, sp
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r4, 1
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0xE0
+ lsls r0, 19
+ movs r3, 0x80
+ lsls r3, 3
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r2, =0x040000d4
+ mov r1, r8
+ str r1, [r2]
+ str r0, [r2, 0x4]
+ lsrs r0, r3, 2
+ movs r1, 0x85
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r1, 0xA0
+ lsls r1, 19
+ mov r0, sp
+ strh r4, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ lsrs r3, 1
+ movs r0, 0x81
+ lsls r0, 24
+ orrs r3, r0
+ str r3, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r0, 0
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_082F7BA4
+ movs r0, 0
+ movs r2, 0x4
+ bl InitBgsFromTemplates
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ bl sub_81971D0
+ bl sub_8197200
+ movs r1, 0x82
+ lsls r1, 5
+ movs r0, 0
+ bl SetGpuReg
+ ldr r4, =gUnknown_02022CF8
+ ldr r1, [r4]
+ movs r0, 0x3
+ bl SetBgTilemapBuffer
+ ldr r1, [r4]
+ movs r2, 0x80
+ lsls r2, 5
+ adds r1, r2
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ ldr r1, [r4]
+ movs r0, 0x80
+ lsls r0, 6
+ adds r1, r0
+ movs r0, 0x2
+ bl SetBgTilemapBuffer
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802A7A8
+
+ thumb_func_start sub_802A8E8
+sub_802A8E8: @ 802A8E8
+ push {lr}
+ sub sp, 0x4
+ ldr r0, =gUnknown_02022CF8
+ ldr r0, [r0]
+ ldr r2, =0x00003018
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0x5
+ bhi _0802A982
+ lsls r0, 2
+ ldr r1, =_0802A910
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0802A910:
+ .4byte _0802A928
+ .4byte _0802A938
+ .4byte _0802A93E
+ .4byte _0802A94C
+ .4byte _0802A964
+ .4byte _0802A972
+_0802A928:
+ ldr r0, =gDodrioBerryBgPal1
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadPalette
+ b _0802A98A
+ .pool
+_0802A938:
+ bl reset_temp_tile_data_buffers
+ b _0802A98A
+_0802A93E:
+ ldr r1, =gDodrioBerryBgGfx1
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x3
+ b _0802A954
+ .pool
+_0802A94C:
+ ldr r1, =gDodrioBerryBgGfx2
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+_0802A954:
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ b _0802A98A
+ .pool
+_0802A964:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0802A98A
+ b _0802A998
+_0802A972:
+ movs r0, 0x3
+ bl stdpal_get
+ movs r1, 0xD0
+ movs r2, 0x20
+ bl LoadPalette
+ b _0802A98A
+_0802A982:
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ b _0802A99A
+_0802A98A:
+ ldr r0, =gUnknown_02022CF8
+ ldr r1, [r0]
+ ldr r0, =0x00003018
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0802A998:
+ movs r0, 0
+_0802A99A:
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802A8E8
+
+ thumb_func_start sub_802A9A8
+sub_802A9A8: @ 802A9A8
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802AA3C
+ ldr r5, =gUnknown_02022CFC
+ ldr r0, =0x000083b0
+ bl Alloc
+ str r0, [r5]
+ cmp r0, 0
+ beq _0802AA3C
+ bl ResetTasks
+ ldr r0, =sub_802ACA0
+ movs r1, 0x1
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, [r5]
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ str r6, [r0]
+ strb r4, [r0, 0x4]
+ bl GetMultiplayerId
+ ldr r1, [r5]
+ strb r0, [r1, 0x6]
+ ldr r0, [r5]
+ ldrb r2, [r0, 0x6]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, =0x000082a8
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0x64
+ muls r1, r7
+ ldr r2, =gPlayerParty
+ adds r1, r2
+ bl sub_802AC2C
+ ldr r0, [r5]
+ bl sub_802AA60
+ ldr r2, [r5]
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl SetWordTaskArg
+ ldr r0, =sub_802AC6C
+ bl SetMainCallback2
+ b _0802AA42
+ .pool
+_0802AA3C:
+ adds r0, r6, 0
+ bl SetMainCallback2
+_0802AA42:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802A9A8
+
+ thumb_func_start sub_802AA48
+sub_802AA48: @ 802AA48
+ push {lr}
+ bl sub_802D0AC
+ ldr r0, =gUnknown_02022CFC
+ ldr r0, [r0]
+ bl Free
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802AA48
+
+ thumb_func_start sub_802AA60
+sub_802AA60: @ 802AA60
+ push {r4,lr}
+ adds r4, r0, 0
+ bl GetLinkPlayerCount
+ movs r2, 0
+ strb r0, [r4, 0x5]
+ adds r1, r4, 0
+ adds r1, 0x70
+ movs r0, 0x5
+ strb r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x72
+ strh r2, [r0]
+ bl sub_802AB20
+ adds r0, r4, 0
+ bl sub_802AA94
+ ldrb r0, [r4, 0x5]
+ cmp r0, 0x5
+ bne _0802AA8E
+ bl sub_802E3A8
+_0802AA8E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802AA60
+
+ thumb_func_start sub_802AA94
+sub_802AA94: @ 802AA94
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r0, 0x6
+ str r0, [r4, 0x14]
+ str r0, [r4, 0x18]
+ adds r0, r4, 0
+ adds r0, 0x4A
+ movs r6, 0
+ movs r5, 0
+ strh r5, [r0]
+ str r5, [r4, 0x1C]
+ str r5, [r4, 0x5C]
+ bl GetMultiplayerId
+ movs r1, 0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802AABA
+ movs r1, 0x1
+_0802AABA:
+ adds r0, r4, 0
+ adds r0, 0x47
+ strb r1, [r0]
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ str r5, [r4, 0x58]
+ strh r5, [r4, 0x3A]
+ subs r0, 0x3
+ strb r6, [r0]
+ str r5, [r4, 0x54]
+ adds r0, 0x2
+ strb r6, [r0]
+ adds r0, 0x3
+ strb r6, [r0]
+ subs r0, 0x1
+ movs r1, 0x1
+ strb r1, [r0]
+ str r5, [r4, 0x78]
+ adds r0, 0x29
+ strb r6, [r0]
+ adds r0, 0x3
+ strh r5, [r0]
+ str r1, [r4, 0x60]
+ subs r0, 0x27
+ strb r6, [r0]
+ str r5, [r4, 0x68]
+ str r5, [r4, 0x64]
+ str r5, [r4, 0x2C]
+ str r5, [r4, 0x30]
+ bl sub_802AB98
+ bl sub_802C0E8
+ movs r2, 0
+ adds r5, r4, 0
+ adds r5, 0x7C
+ movs r3, 0
+ adds r1, r4, 0
+ adds r1, 0x9A
+_0802AB0C:
+ adds r0, r5, r2
+ strb r3, [r0]
+ strh r3, [r1]
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x4
+ ble _0802AB0C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802AA94
+
+ thumb_func_start sub_802AB20
+sub_802AB20: @ 802AB20
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r7, =gUnknown_02022CFC
+ movs r6, 0
+ movs r5, 0
+ ldr r0, =gPkmnJumpSpecies
+ mov r8, r0
+ movs r4, 0x4
+_0802AB32:
+ ldr r0, [r7]
+ adds r0, r5
+ ldr r1, =0x000082a8
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_802AC00
+ lsls r0, 16
+ ldr r1, [r7]
+ adds r1, r6
+ asrs r0, 14
+ add r0, r8
+ ldrh r0, [r0, 0x2]
+ ldr r2, =0x000082f0
+ adds r1, r2
+ strh r0, [r1]
+ adds r6, 0x28
+ adds r5, 0xC
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0802AB32
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ ldr r0, =0x000083ac
+ adds r3, r1, r0
+ ldrb r2, [r1, 0x6]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r2, =0x000082e4
+ adds r0, r2
+ adds r1, r0
+ str r1, [r3]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802AB20
+
+ thumb_func_start sub_802AB98
+sub_802AB98: @ 802AB98
+ push {r4-r7,lr}
+ movs r5, 0
+ ldr r6, =gUnknown_02022CFC
+ movs r4, 0
+ movs r3, 0
+_0802ABA2:
+ ldr r2, [r6]
+ adds r1, r2, r3
+ ldr r7, =0x000082f2
+ adds r0, r1, r7
+ strh r4, [r0]
+ adds r7, 0x2
+ adds r0, r1, r7
+ strh r4, [r0]
+ ldr r0, =0x000082f6
+ adds r1, r0
+ strh r4, [r1]
+ ldr r1, =0x000082e4
+ adds r0, r2, r1
+ adds r0, r3
+ str r4, [r0]
+ subs r7, 0xC
+ adds r0, r2, r7
+ adds r0, r3
+ ldr r1, =0x7fffffff
+ str r1, [r0]
+ ldr r1, =0x000082f8
+ adds r0, r2, r1
+ adds r0, r3
+ str r4, [r0]
+ adds r2, 0x8B
+ adds r2, r5
+ movs r0, 0x9
+ strb r0, [r2]
+ adds r3, 0x28
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _0802ABA2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802AB98
+
+ thumb_func_start sub_802AC00
+sub_802AC00: @ 802AC00
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r1, 0
+ ldr r2, =gPkmnJumpSpecies
+_0802AC0A:
+ ldrh r0, [r2]
+ cmp r0, r3
+ bne _0802AC1C
+ lsls r0, r1, 16
+ asrs r0, 16
+ b _0802AC28
+ .pool
+_0802AC1C:
+ adds r2, 0x4
+ adds r1, 0x1
+ cmp r1, 0x63
+ bls _0802AC0A
+ movs r0, 0x1
+ negs r0, r0
+_0802AC28:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802AC00
+
+ thumb_func_start sub_802AC2C
+sub_802AC2C: @ 802AC2C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ strh r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ str r0, [r5, 0x4]
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [r5, 0x8]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802AC2C
+
+ thumb_func_start sub_802AC58
+sub_802AC58: @ 802AC58
+ push {lr}
+ bl TransferPlttBuffer
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802AC58
+
+ thumb_func_start sub_802AC6C
+sub_802AC6C: @ 802AC6C
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802AC6C
+
+ thumb_func_start sub_802AC84
+sub_802AC84: @ 802AC84
+ push {lr}
+ movs r1, 0x1
+ bl CreateTask
+ ldr r2, =gUnknown_02022CFC
+ ldr r1, [r2]
+ movs r3, 0
+ strb r0, [r1, 0x4]
+ ldr r0, [r2]
+ strh r3, [r0, 0x8]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802AC84
+
+ thumb_func_start sub_802ACA0
+sub_802ACA0: @ 802ACA0
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gUnknown_02022CFC
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x8]
+ adds r2, r1, 0
+ cmp r0, 0x5
+ bls _0802ACB6
+ b _0802AE08
+_0802ACB6:
+ lsls r0, 2
+ ldr r1, =_0802ACC8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0802ACC8:
+ .4byte _0802ACE0
+ .4byte _0802AD0C
+ .4byte _0802AD3C
+ .4byte _0802AD68
+ .4byte _0802ADA4
+ .4byte _0802ADD0
+_0802ACE0:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r0, =sub_802BD84
+ movs r1, 0x5
+ bl sub_802BE60
+ movs r0, 0x4
+ bl FadeOutMapMusic
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ b _0802ADC0
+ .pool
+_0802AD0C:
+ ldr r0, =sub_802BD84
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802AE08
+ ldr r4, =gUnknown_02022CFC
+ ldr r0, [r4]
+ adds r0, 0xA4
+ bl sub_802D074
+ bl sub_800E0E8
+ movs r0, 0
+ movs r1, 0
+ bl CreateWirelessStatusIndicatorSprite
+ ldr r1, [r4]
+ b _0802ADC0
+ .pool
+_0802AD3C:
+ bl sub_802D0F0
+ cmp r0, 0
+ bne _0802AE08
+ bl IsNotWaitingForBGMStop
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0802AE08
+ ldr r0, =0x0000021a
+ movs r1, 0x8
+ bl FadeOutAndPlayNewMapMusic
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ b _0802ADC0
+ .pool
+_0802AD68:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802AE08
+ movs r4, 0x1
+ negs r4, r4
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, =sub_802AC58
+ bl SetVBlankCallback
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ b _0802ADC0
+ .pool
+_0802ADA4:
+ bl UpdatePaletteFade
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _0802AE08
+ ldr r1, =gUnknown_02022CFC
+ ldr r0, [r1]
+ strb r2, [r0, 0x7]
+ ldr r1, [r1]
+_0802ADC0:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0802AE08
+ .pool
+_0802ADD0:
+ ldr r0, [r2]
+ ldrb r1, [r0, 0x7]
+ adds r1, 0x1
+ strb r1, [r0, 0x7]
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0x13
+ bls _0802AE08
+ adds r0, r1, 0
+ adds r0, 0x47
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802ADF8
+ ldr r0, =sub_802AF80
+ bl sub_802AC84
+ b _0802ADFE
+ .pool
+_0802ADF8:
+ ldr r0, =sub_802B194
+ bl sub_802AC84
+_0802ADFE:
+ bl sub_802BE80
+ adds r0, r4, 0
+ bl DestroyTask
+_0802AE08:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802ACA0
+
+ thumb_func_start sub_802AE14
+sub_802AE14: @ 802AE14
+ push {lr}
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _0802AE34
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ ldr r0, =0x00001111
+ str r0, [r1, 0x30]
+ movs r0, 0x1
+ str r0, [r1, 0x2C]
+ b _0802AE46
+ .pool
+_0802AE34:
+ ldr r0, =gUnknown_02022CFC
+ ldr r2, [r0]
+ subs r1, 0x1
+ movs r0, 0x1
+ lsls r0, r1
+ subs r0, 0x1
+ str r0, [r2, 0x30]
+ movs r0, 0
+ str r0, [r2, 0x2C]
+_0802AE46:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802AE14
+
+ thumb_func_start sub_802AE50
+sub_802AE50: @ 802AE50
+ push {r4-r6,lr}
+ ldr r4, =gUnknown_02022CFC
+ ldr r1, [r4]
+ adds r1, 0x70
+ movs r2, 0
+ strb r0, [r1]
+ ldr r0, [r4]
+ movs r3, 0
+ strh r2, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ adds r0, 0x48
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0x49
+ strb r3, [r0]
+ movs r3, 0x1
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x5]
+ cmp r3, r0
+ bge _0802AE94
+ adds r6, r4, 0
+ ldr r5, =0x000082fc
+ movs r4, 0
+ movs r2, 0x28
+_0802AE82:
+ ldr r1, [r6]
+ adds r0, r1, r5
+ adds r0, r2
+ str r4, [r0]
+ adds r2, 0x28
+ adds r3, 0x1
+ ldrb r1, [r1, 0x5]
+ cmp r3, r1
+ blt _0802AE82
+_0802AE94:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802AE50
+
+ thumb_func_start sub_802AEA4
+sub_802AEA4: @ 802AEA4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r4, 0x1
+ movs r0, 0
+ str r0, [sp, 0x4]
+ ldr r7, =gUnknown_02022CFC
+ ldr r0, [r7]
+ ldrb r0, [r0, 0x5]
+ cmp r4, r0
+ bge _0802AF48
+ adds r1, r7, 0
+ mov r10, r1
+ movs r2, 0x2
+ add r2, sp
+ mov r8, r2
+ ldr r3, =0x0000830c
+ mov r9, r3
+ movs r6, 0x28
+_0802AED0:
+ mov r1, r10
+ ldr r0, [r1]
+ adds r1, r0, r6
+ ldr r2, =0x000082f4
+ adds r1, r2
+ ldrh r5, [r1]
+ add r0, r9
+ adds r1, r4, 0
+ mov r2, sp
+ mov r3, r8
+ bl sub_802E264
+ cmp r0, 0
+ beq _0802AF10
+ ldr r2, [r7]
+ lsls r1, r4, 1
+ adds r0, r2, 0
+ adds r0, 0x90
+ adds r0, r1
+ mov r3, r8
+ ldrh r1, [r3]
+ strh r1, [r0]
+ adds r2, 0x8B
+ adds r2, r4
+ mov r0, sp
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r0, [r7]
+ adds r0, r6
+ ldr r1, =0x000082f6
+ adds r0, r1
+ strh r5, [r0]
+_0802AF10:
+ mov r2, r10
+ ldr r1, [r2]
+ ldr r3, =0x000082fc
+ adds r0, r1, r3
+ adds r0, r6
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0802AF36
+ adds r0, r1, 0
+ adds r0, 0x8B
+ adds r0, r4
+ adds r1, 0x70
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0802AF36
+ ldr r0, [sp, 0x4]
+ adds r0, 0x1
+ str r0, [sp, 0x4]
+_0802AF36:
+ movs r1, 0x28
+ add r9, r1
+ adds r6, 0x28
+ adds r4, 0x1
+ ldr r7, =gUnknown_02022CFC
+ ldr r0, [r7]
+ ldrb r0, [r0, 0x5]
+ cmp r4, r0
+ blt _0802AED0
+_0802AF48:
+ ldr r2, =gUnknown_02022CFC
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x5]
+ subs r0, 0x1
+ ldr r3, [sp, 0x4]
+ cmp r3, r0
+ bne _0802AF5C
+ adds r1, 0x49
+ movs r0, 0x1
+ strb r0, [r1]
+_0802AF5C:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802AEA4
+
+ thumb_func_start sub_802AF80
+sub_802AF80: @ 802AF80
+ push {r4,r5,lr}
+ bl sub_802AEA4
+ bl sub_802C43C
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x48
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0802AFB2
+ adds r0, r1, 0
+ adds r0, 0x49
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802AFB2
+ adds r0, r1, 0
+ adds r0, 0x4C
+ ldrb r0, [r0]
+ bl sub_802AE50
+ movs r0, 0x3
+ bl sub_802AE14
+_0802AFB2:
+ ldr r4, =gUnknown_02022CFC
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x48
+ ldrb r5, [r0]
+ cmp r5, 0x1
+ bne _0802AFEE
+ ldr r1, =gUnknown_082FB5F4
+ adds r0, 0x28
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _0802AFEE
+ ldr r0, [r4]
+ adds r0, 0x48
+ strb r1, [r0]
+ ldr r1, [r4]
+ ldrb r2, [r1, 0x6]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r2, =0x000082fc
+ adds r1, r2
+ adds r1, r0
+ str r5, [r1]
+_0802AFEE:
+ bl sub_802C1DC
+ bl sub_802B008
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802AF80
+
+ thumb_func_start sub_802B008
+sub_802B008: @ 802B008
+ push {r4,lr}
+ ldr r4, =gUnknown_02022CFC
+ ldr r1, [r4]
+ ldr r0, [r1, 0x2C]
+ cmp r0, 0
+ bne _0802B01E
+ ldr r2, =0x000082e4
+ adds r0, r1, r2
+ adds r1, 0x70
+ bl sub_802E138
+_0802B01E:
+ ldr r1, [r4]
+ ldr r2, [r1, 0x30]
+ ldr r0, =0x00001111
+ cmp r2, r0
+ beq _0802B030
+ ldr r0, [r1, 0x2C]
+ adds r0, 0x1
+ ands r0, r2
+ str r0, [r1, 0x2C]
+_0802B030:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802B008
+
+ thumb_func_start sub_802B044
+sub_802B044: @ 802B044
+ ldr r2, =gUnknown_02022CFC
+ ldr r1, [r2]
+ adds r1, 0x70
+ movs r3, 0
+ strb r0, [r1]
+ ldr r0, [r2]
+ strh r3, [r0, 0x8]
+ strh r3, [r0, 0xA]
+ adds r0, 0x48
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, [r2]
+ ldrb r2, [r1, 0x6]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r2, =0x000082fc
+ adds r1, r2
+ adds r1, r0
+ str r3, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_802B044
+
+ thumb_func_start sub_802B078
+sub_802B078: @ 802B078
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ ldr r4, =gUnknown_02022CFC
+ ldr r0, [r4]
+ ldr r2, =0x000082f4
+ adds r1, r0, r2
+ ldrh r1, [r1]
+ mov r8, r1
+ ldr r3, =0x000082e4
+ adds r0, r3
+ mov r1, sp
+ bl sub_802E1BC
+ cmp r0, 0
+ beq _0802B128
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x6]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r3, =0x000082fc
+ adds r0, r2, r3
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _0802B0C6
+ mov r0, sp
+ adds r1, r2, 0
+ adds r1, 0x70
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0802B0C6
+ mov r0, sp
+ ldrb r0, [r0]
+ bl sub_802B044
+_0802B0C6:
+ ldr r3, =gUnknown_02022CFC
+ ldr r2, [r3]
+ ldr r0, [r2, 0x78]
+ ldr r1, [sp, 0x8]
+ cmp r0, r1
+ beq _0802B108
+ str r1, [r2, 0x78]
+ movs r4, 0x1
+ str r4, [r2, 0x5C]
+ mov r0, sp
+ ldrb r1, [r0, 0x1]
+ adds r0, r2, 0
+ adds r0, 0x71
+ strb r1, [r0]
+ ldr r0, [r3]
+ adds r1, r0, 0
+ adds r1, 0x71
+ ldrb r1, [r1]
+ cmp r1, 0
+ beq _0802B104
+ adds r0, 0x4D
+ strb r4, [r0]
+ b _0802B108
+ .pool
+_0802B104:
+ adds r0, 0x4D
+ strb r1, [r0]
+_0802B108:
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ adds r2, r1, 0
+ adds r2, 0x72
+ strh r0, [r2]
+ mov r0, sp
+ ldrh r2, [r0, 0x4]
+ adds r0, r1, 0
+ adds r0, 0x74
+ strh r2, [r0]
+ ldr r0, =0x000082f6
+ adds r1, r0
+ mov r2, r8
+ strh r2, [r1]
+_0802B128:
+ movs r4, 0x1
+ ldr r2, =gUnknown_02022CFC
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x5]
+ cmp r4, r0
+ bge _0802B176
+ adds r7, r2, 0
+ ldr r6, =0x0000830c
+ movs r5, 0x28
+_0802B13A:
+ ldr r1, [r7]
+ ldrb r3, [r1, 0x6]
+ cmp r4, r3
+ beq _0802B168
+ adds r0, r1, r5
+ ldr r3, =0x000082f4
+ adds r0, r3
+ ldrh r0, [r0]
+ mov r8, r0
+ adds r0, r1, r6
+ adds r1, r4, 0
+ str r2, [sp, 0xC]
+ bl sub_802E2D0
+ ldr r2, [sp, 0xC]
+ cmp r0, 0
+ beq _0802B168
+ ldr r0, [r7]
+ adds r0, r5
+ ldr r1, =0x000082f6
+ adds r0, r1
+ mov r3, r8
+ strh r3, [r0]
+_0802B168:
+ adds r6, 0x28
+ adds r5, 0x28
+ adds r4, 0x1
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x5]
+ cmp r4, r0
+ blt _0802B13A
+_0802B176:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802B078
+
+ thumb_func_start sub_802B194
+sub_802B194: @ 802B194
+ push {r4,lr}
+ bl sub_802B078
+ ldr r4, =gUnknown_02022CFC
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x48
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802B1E0
+ ldr r1, =gUnknown_082FB618
+ adds r0, r2, 0
+ adds r0, 0x70
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _0802B1E0
+ ldr r0, [r4]
+ adds r0, 0x48
+ strb r1, [r0]
+ ldr r1, [r4]
+ ldrb r2, [r1, 0x6]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r2, =0x000082fc
+ adds r1, r2
+ adds r1, r0
+ movs r0, 0x1
+ str r0, [r1]
+ movs r0, 0x3
+ bl sub_802AE14
+_0802B1E0:
+ bl sub_802C1DC
+ bl sub_802B1FC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802B194
+
+ thumb_func_start sub_802B1FC
+sub_802B1FC: @ 802B1FC
+ push {r4,lr}
+ ldr r4, =gUnknown_02022CFC
+ ldr r2, [r4]
+ ldr r0, [r2, 0x2C]
+ cmp r0, 0
+ bne _0802B224
+ ldrb r1, [r2, 0x6]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, =0x000082e4
+ adds r0, r1
+ adds r0, r2, r0
+ adds r1, r2, 0
+ adds r1, 0x70
+ ldrb r1, [r1]
+ adds r2, 0x42
+ ldrh r2, [r2]
+ bl sub_802E234
+_0802B224:
+ ldr r1, [r4]
+ ldr r2, [r1, 0x30]
+ ldr r0, =0x00001111
+ cmp r2, r0
+ beq _0802B236
+ ldr r0, [r1, 0x2C]
+ adds r0, 0x1
+ ands r0, r2
+ str r0, [r1, 0x2C]
+_0802B236:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802B1FC
+
+ thumb_func_start sub_802B248
+sub_802B248: @ 802B248
+ push {r4,lr}
+ ldr r4, =gUnknown_02022CFC
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x8]
+ cmp r0, 0
+ beq _0802B260
+ cmp r0, 0x1
+ beq _0802B26E
+ b _0802B294
+ .pool
+_0802B260:
+ movs r0, 0x3
+ bl sub_802AE14
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_0802B26E:
+ bl sub_802B7E0
+ cmp r0, 0
+ bne _0802B294
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x4A
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ adds r2, 0x72
+ strh r0, [r2]
+ adds r1, 0x4C
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ b _0802B296
+ .pool
+_0802B294:
+ movs r0, 0x1
+_0802B296:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802B248
+
+ thumb_func_start sub_802B29C
+sub_802B29C: @ 802B29C
+ push {r4,lr}
+ ldr r4, =gUnknown_02022CFC
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x8]
+ cmp r0, 0
+ beq _0802B2B4
+ cmp r0, 0x1
+ beq _0802B2CA
+ movs r0, 0x1
+ b _0802B2CE
+ .pool
+_0802B2B4:
+ movs r0, 0
+ bl sub_802AE14
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x72
+ ldrh r0, [r0]
+ str r0, [r1, 0x24]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_0802B2CA:
+ bl sub_802B7E0
+_0802B2CE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802B29C
+
+ thumb_func_start sub_802B2D4
+sub_802B2D4: @ 802B2D4
+ push {r4,lr}
+ ldr r4, =gUnknown_02022CFC
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ cmp r0, 0
+ beq _0802B2EC
+ cmp r0, 0x1
+ beq _0802B300
+ b _0802B314
+ .pool
+_0802B2EC:
+ bl sub_802C0E8
+ movs r0, 0x5
+ bl sub_802AE14
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0802B314
+_0802B300:
+ adds r0, r1, 0
+ adds r0, 0x49
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802B314
+ adds r1, 0x4C
+ movs r0, 0x2
+ strb r0, [r1]
+ movs r0, 0
+ b _0802B316
+_0802B314:
+ movs r0, 0x1
+_0802B316:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802B2D4
+
+ thumb_func_start sub_802B31C
+sub_802B31C: @ 802B31C
+ push {r4,lr}
+ ldr r4, =gUnknown_02022CFC
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x8]
+ cmp r0, 0
+ beq _0802B334
+ cmp r0, 0x1
+ beq _0802B352
+ b _0802B35E
+ .pool
+_0802B334:
+ bl sub_802C0E8
+ movs r0, 0
+ bl sub_802AE14
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x72
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ adds r2, 0x4A
+ strh r0, [r2]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_0802B352:
+ bl sub_802C70C
+ cmp r0, 0
+ beq _0802B35E
+ movs r0, 0
+ b _0802B360
+_0802B35E:
+ movs r0, 0x1
+_0802B360:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802B31C
+
+ thumb_func_start sub_802B368
+sub_802B368: @ 802B368
+ push {lr}
+ bl sub_802B8CC
+ cmp r0, 0
+ bne _0802B390
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x4A
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ adds r2, 0x72
+ strh r0, [r2]
+ adds r1, 0x4C
+ movs r0, 0x1
+ strb r0, [r1]
+ b _0802B3AA
+ .pool
+_0802B390:
+ bl sub_802C538
+ cmp r0, 0
+ beq _0802B39C
+ movs r0, 0x1
+ b _0802B3AC
+_0802B39C:
+ bl sub_802C0B8
+ ldr r0, =gUnknown_02022CFC
+ ldr r0, [r0]
+ adds r0, 0x4C
+ movs r1, 0x3
+ strb r1, [r0]
+_0802B3AA:
+ movs r0, 0
+_0802B3AC:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802B368
+
+ thumb_func_start sub_802B3B4
+sub_802B3B4: @ 802B3B4
+ push {lr}
+ bl sub_802B8CC
+ cmp r0, 0
+ beq _0802B3CE
+ bl sub_802C538
+ cmp r0, 0
+ beq _0802B3CA
+ movs r0, 0x1
+ b _0802B3D0
+_0802B3CA:
+ bl sub_802C0B8
+_0802B3CE:
+ movs r0, 0
+_0802B3D0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802B3B4
+
+ thumb_func_start sub_802B3D4
+sub_802B3D4: @ 802B3D4
+ push {r4,lr}
+ ldr r4, =gUnknown_02022CFC
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x8]
+ cmp r0, 0x1
+ beq _0802B40C
+ cmp r0, 0x1
+ bgt _0802B3F0
+ cmp r0, 0
+ beq _0802B3F6
+ b _0802B468
+ .pool
+_0802B3F0:
+ cmp r0, 0x2
+ beq _0802B460
+ b _0802B468
+_0802B3F6:
+ bl sub_802C538
+ bl sub_802C5DC
+ cmp r0, 0
+ beq _0802B468
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0802B468
+_0802B40C:
+ bl sub_802B964
+ cmp r0, 0
+ bne _0802B468
+ bl sub_802C7BC
+ cmp r0, 0
+ beq _0802B42E
+ bl sub_802C7E0
+ ldr r1, [r4]
+ adds r2, r1, 0
+ adds r2, 0x72
+ strh r0, [r2]
+ adds r1, 0x4C
+ movs r0, 0x7
+ b _0802B454
+_0802B42E:
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x74
+ ldrh r0, [r0]
+ cmp r0, 0xC7
+ bls _0802B448
+ ldrh r0, [r1, 0xE]
+ adds r2, r1, 0
+ adds r2, 0x72
+ strh r0, [r2]
+ adds r1, 0x4C
+ movs r0, 0x8
+ b _0802B454
+_0802B448:
+ ldrh r0, [r1, 0xE]
+ adds r2, r1, 0
+ adds r2, 0x72
+ strh r0, [r2]
+ adds r1, 0x4C
+ movs r0, 0x4
+_0802B454:
+ strb r0, [r1]
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_0802B460:
+ movs r0, 0
+ b _0802B46A
+ .pool
+_0802B468:
+ movs r0, 0x1
+_0802B46A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802B3D4
+
+ thumb_func_start sub_802B470
+sub_802B470: @ 802B470
+ push {r4,lr}
+ ldr r4, =gUnknown_02022CFC
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x8]
+ cmp r0, 0x1
+ beq _0802B4B0
+ cmp r0, 0x1
+ bgt _0802B48C
+ cmp r0, 0
+ beq _0802B492
+ b _0802B4C4
+ .pool
+_0802B48C:
+ cmp r0, 0x2
+ beq _0802B4C0
+ b _0802B4C4
+_0802B492:
+ bl sub_802C538
+ cmp r0, 0
+ bne _0802B49E
+ bl sub_802C0B8
+_0802B49E:
+ bl sub_802C5DC
+ cmp r0, 0
+ beq _0802B4C4
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0802B4C4
+_0802B4B0:
+ bl sub_802B964
+ cmp r0, 0
+ bne _0802B4C4
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_0802B4C0:
+ movs r0, 0
+ b _0802B4C6
+_0802B4C4:
+ movs r0, 0x1
+_0802B4C6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802B470
+
+ thumb_func_start sub_802B4CC
+sub_802B4CC: @ 802B4CC
+ push {r4,lr}
+ ldr r4, =gUnknown_02022CFC
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x8]
+ cmp r1, 0x1
+ beq _0802B500
+ cmp r1, 0x1
+ bgt _0802B4E8
+ cmp r1, 0
+ beq _0802B4F2
+ b _0802B560
+ .pool
+_0802B4E8:
+ cmp r1, 0x2
+ beq _0802B52C
+ cmp r1, 0x3
+ beq _0802B556
+ b _0802B560
+_0802B4F2:
+ movs r0, 0x4
+ bl sub_802AE14
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_0802B500:
+ bl sub_802BB84
+ cmp r0, 0
+ bne _0802B560
+ ldr r4, =gUnknown_02022CFC
+ ldr r2, [r4]
+ ldr r0, [r2, 0x78]
+ adds r1, r2, 0
+ adds r1, 0x74
+ ldrh r1, [r1]
+ adds r2, 0x72
+ ldrh r2, [r2]
+ bl sub_802E354
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0802B560
+ .pool
+_0802B52C:
+ adds r0, 0x49
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802B560
+ bl sub_802C650
+ cmp r0, 0
+ beq _0802B544
+ ldr r0, [r4]
+ adds r0, 0x4C
+ movs r1, 0x5
+ b _0802B54A
+_0802B544:
+ ldr r0, [r4]
+ adds r0, 0x4C
+ movs r1, 0x6
+_0802B54A:
+ strb r1, [r0]
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_0802B556:
+ movs r0, 0
+ b _0802B562
+ .pool
+_0802B560:
+ movs r0, 0x1
+_0802B562:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802B4CC
+
+ thumb_func_start sub_802B568
+sub_802B568: @ 802B568
+ push {r4,lr}
+ ldr r4, =gUnknown_02022CFC
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x8]
+ cmp r0, 0
+ beq _0802B580
+ cmp r0, 0x1
+ beq _0802B58E
+ b _0802B5C0
+ .pool
+_0802B580:
+ movs r0, 0
+ bl sub_802AE14
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_0802B58E:
+ bl sub_802BB84
+ cmp r0, 0
+ bne _0802B5C0
+ ldr r4, =gUnknown_02022CFC
+ ldr r2, [r4]
+ ldr r0, [r2, 0x78]
+ adds r1, r2, 0
+ adds r1, 0x74
+ ldrh r1, [r1]
+ adds r2, 0x72
+ ldrh r2, [r2]
+ bl sub_802E354
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0x45
+ ldrb r1, [r1]
+ adds r0, 0x42
+ strh r1, [r0]
+ movs r0, 0
+ b _0802B5C2
+ .pool
+_0802B5C0:
+ movs r0, 0x1
+_0802B5C2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802B568
+
+ thumb_func_start sub_802B5C8
+sub_802B5C8: @ 802B5C8
+ push {r4,lr}
+ ldr r4, =gUnknown_02022CFC
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ cmp r0, 0
+ beq _0802B5E0
+ cmp r0, 0x1
+ beq _0802B5F2
+ b _0802B61E
+ .pool
+_0802B5E0:
+ bl sub_802BD30
+ cmp r0, 0
+ bne _0802B61E
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0802B61E
+_0802B5F2:
+ adds r0, r1, 0
+ adds r0, 0x49
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802B61E
+ adds r0, r1, 0
+ bl sub_802AA94
+ bl Random
+ ldr r1, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [r1, 0x24]
+ adds r3, r1, 0
+ adds r3, 0x72
+ movs r2, 0
+ strh r0, [r3]
+ adds r1, 0x4C
+ strb r2, [r1]
+ movs r0, 0
+ b _0802B620
+_0802B61E:
+ movs r0, 0x1
+_0802B620:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802B5C8
+
+ thumb_func_start sub_802B628
+sub_802B628: @ 802B628
+ push {r4,lr}
+ ldr r4, =gUnknown_02022CFC
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x8]
+ cmp r0, 0
+ beq _0802B640
+ cmp r0, 0x1
+ beq _0802B656
+ b _0802B65A
+ .pool
+_0802B640:
+ bl sub_802BD30
+ cmp r0, 0
+ bne _0802B65A
+ ldr r0, [r4]
+ bl sub_802AA94
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_0802B656:
+ movs r0, 0
+ b _0802B65C
+_0802B65A:
+ movs r0, 0x1
+_0802B65C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802B628
+
+ thumb_func_start sub_802B664
+sub_802B664: @ 802B664
+ push {r4,lr}
+ ldr r4, =gUnknown_02022CFC
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ cmp r0, 0x1
+ beq _0802B68C
+ cmp r0, 0x1
+ bgt _0802B680
+ cmp r0, 0
+ beq _0802B686
+ b _0802B6B0
+ .pool
+_0802B680:
+ cmp r0, 0x2
+ beq _0802B69C
+ b _0802B6B0
+_0802B686:
+ movs r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0802B6B0
+_0802B68C:
+ movs r0, 0
+ bl sub_802AE14
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0802B6B0
+_0802B69C:
+ bl sub_802BC60
+ cmp r0, 0
+ bne _0802B6B0
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl SetMainCallback2
+ bl sub_802AA48
+_0802B6B0:
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802B664
+
+ thumb_func_start sub_802B6B8
+sub_802B6B8: @ 802B6B8
+ push {r4,lr}
+ ldr r4, =gUnknown_02022CFC
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x8]
+ cmp r0, 0
+ beq _0802B6D0
+ cmp r0, 0x1
+ beq _0802B6E0
+ b _0802B6FC
+ .pool
+_0802B6D0:
+ movs r0, 0x4
+ bl sub_802AE14
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0802B6FC
+_0802B6E0:
+ bl sub_802BA58
+ cmp r0, 0
+ bne _0802B6FC
+ ldr r0, [r4]
+ ldrh r1, [r0, 0xE]
+ adds r2, r0, 0
+ adds r2, 0x72
+ strh r1, [r2]
+ adds r0, 0x4C
+ movs r1, 0x8
+ strb r1, [r0]
+ movs r0, 0
+ b _0802B6FE
+_0802B6FC:
+ movs r0, 0x1
+_0802B6FE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802B6B8
+
+ thumb_func_start sub_802B704
+sub_802B704: @ 802B704
+ push {lr}
+ movs r0, 0
+ bl sub_802AE14
+ bl sub_802BA58
+ cmp r0, 0
+ beq _0802B718
+ movs r0, 0x1
+ b _0802B71A
+_0802B718:
+ movs r0, 0
+_0802B71A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802B704
+
+ thumb_func_start sub_802B720
+sub_802B720: @ 802B720
+ push {r4,lr}
+ ldr r1, =gUnknown_02022CFC
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x8]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bhi _0802B7D8
+ lsls r0, 2
+ ldr r1, =_0802B740
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0802B740:
+ .4byte _0802B754
+ .4byte _0802B770
+ .4byte _0802B780
+ .4byte _0802B798
+ .4byte _0802B7BC
+_0802B754:
+ ldr r2, [r4]
+ ldr r0, [r2, 0x78]
+ adds r1, r2, 0
+ adds r1, 0x74
+ ldrh r1, [r1]
+ adds r2, 0x72
+ ldrh r2, [r2]
+ bl sub_802E354
+ movs r0, 0x5
+ bl sub_802D0C8
+ ldr r1, [r4]
+ b _0802B7AC
+_0802B770:
+ bl sub_802D0F0
+ cmp r0, 0
+ bne _0802B7D8
+ movs r0, 0
+ bl sub_802AE14
+ b _0802B7A8
+_0802B780:
+ bl sub_802C70C
+ cmp r0, 0
+ beq _0802B7D8
+ ldr r0, =sub_8153688
+ movs r1, 0x6
+ bl CreateTask
+ b _0802B7A8
+ .pool
+_0802B798:
+ ldr r0, =sub_8153688
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802B7D8
+ bl sub_802DA14
+_0802B7A8:
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+_0802B7AC:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0802B7D8
+ .pool
+_0802B7BC:
+ bl sub_802DA44
+ cmp r0, 0
+ bne _0802B7D8
+ ldr r0, =gUnknown_02022CFC
+ ldr r0, [r0]
+ adds r0, 0x4C
+ movs r1, 0x4
+ strb r1, [r0]
+ movs r0, 0
+ b _0802B7DA
+ .pool
+_0802B7D8:
+ movs r0, 0x1
+_0802B7DA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802B720
+
+ thumb_func_start sub_802B7E0
+sub_802B7E0: @ 802B7E0
+ push {r4,r5,lr}
+ ldr r1, =gUnknown_02022CFC
+ ldr r0, [r1]
+ ldrh r0, [r0, 0xA]
+ adds r4, r1, 0
+ cmp r0, 0x7
+ bhi _0802B8C4
+ lsls r0, 2
+ ldr r1, =_0802B800
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0802B800:
+ .4byte _0802B820
+ .4byte _0802B82C
+ .4byte _0802B84C
+ .4byte _0802B866
+ .4byte _0802B878
+ .4byte _0802B880
+ .4byte _0802B8A0
+ .4byte _0802B8BA
+_0802B820:
+ movs r0, 0x2
+ bl sub_802D0C8
+ bl sub_802DDE0
+ b _0802B890
+_0802B82C:
+ bl sub_802D0F0
+ adds r5, r0, 0
+ cmp r5, 0
+ bne _0802B8C4
+ ldr r4, =gUnknown_02022CFC
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x6]
+ bl sub_802DDF4
+ ldr r1, [r4]
+ strh r5, [r1, 0x3C]
+ b _0802B894
+ .pool
+_0802B84C:
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x3C]
+ adds r0, 0x1
+ strh r0, [r1, 0x3C]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x78
+ bls _0802B8C4
+ movs r0, 0x3
+ bl sub_802D0C8
+ ldr r1, [r4]
+ b _0802B894
+_0802B866:
+ bl sub_802D0F0
+ cmp r0, 0x1
+ beq _0802B8C4
+ bl sub_802DE08
+ cmp r0, 0x1
+ beq _0802B8C4
+ b _0802B890
+_0802B878:
+ movs r0, 0x9
+ bl sub_802D0C8
+ b _0802B890
+_0802B880:
+ bl sub_802D0F0
+ cmp r0, 0
+ bne _0802B8C4
+ bl sub_802C260
+ bl sub_802D764
+_0802B890:
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+_0802B894:
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ b _0802B8C4
+ .pool
+_0802B8A0:
+ bl sub_802D788
+ cmp r0, 0
+ bne _0802B8C4
+ bl sub_802C270
+ bl sub_802BEA0
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+_0802B8BA:
+ movs r0, 0
+ b _0802B8C6
+ .pool
+_0802B8C4:
+ movs r0, 0x1
+_0802B8C6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802B7E0
+
+ thumb_func_start sub_802B8CC
+sub_802B8CC: @ 802B8CC
+ push {r4,r5,lr}
+ bl sub_802BEE4
+ ldr r5, =gUnknown_02022CFC
+ ldr r1, [r5]
+ ldrh r4, [r1, 0x36]
+ cmp r4, 0
+ beq _0802B8E8
+ movs r0, 0
+ strh r0, [r1, 0x36]
+ b _0802B95C
+ .pool
+_0802B8E8:
+ ldrh r0, [r1, 0xA]
+ cmp r0, 0x1
+ beq _0802B914
+ cmp r0, 0x1
+ bgt _0802B8F8
+ cmp r0, 0
+ beq _0802B902
+ b _0802B95A
+_0802B8F8:
+ cmp r0, 0x2
+ beq _0802B938
+ cmp r0, 0x3
+ beq _0802B94C
+ b _0802B95A
+_0802B902:
+ movs r0, 0
+ bl sub_802C130
+ cmp r0, 0
+ beq _0802B95A
+ ldr r1, [r5]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+_0802B914:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B95A
+ bl sub_802C164
+ movs r0, 0x3
+ bl sub_802AE14
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ b _0802B944
+ .pool
+_0802B938:
+ movs r0, 0x1
+ bl sub_802C130
+ cmp r0, 0x1
+ bne _0802B95A
+ ldr r1, [r5]
+_0802B944:
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ b _0802B95A
+_0802B94C:
+ movs r0, 0
+ bl sub_802C130
+ cmp r0, 0x1
+ bne _0802B95A
+ ldr r0, [r5]
+ strh r4, [r0, 0xA]
+_0802B95A:
+ movs r0, 0x1
+_0802B95C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802B8CC
+
+ thumb_func_start sub_802B964
+sub_802B964: @ 802B964
+ push {r4-r6,lr}
+ ldr r1, =gUnknown_02022CFC
+ ldr r0, [r1]
+ ldrh r0, [r0, 0xA]
+ adds r5, r1, 0
+ cmp r0, 0x4
+ bhi _0802BA50
+ lsls r0, 2
+ ldr r1, =_0802B984
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0802B984:
+ .4byte _0802B998
+ .4byte _0802B9BC
+ .4byte _0802BA00
+ .4byte _0802BA24
+ .4byte _0802BA46
+_0802B998:
+ movs r4, 0
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x5]
+ cmp r4, r0
+ bge _0802B9B8
+ adds r6, r5, 0
+_0802B9A4:
+ adds r0, r4, 0
+ bl sub_802DDB8
+ cmp r0, 0x1
+ beq _0802BA50
+ adds r4, 0x1
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x5]
+ cmp r4, r0
+ blt _0802B9A4
+_0802B9B8:
+ ldr r1, [r5]
+ b _0802BA1C
+_0802B9BC:
+ movs r4, 0
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x5]
+ cmp r4, r0
+ bge _0802B9EC
+ adds r6, r5, 0
+ movs r5, 0
+_0802B9CA:
+ ldr r0, [r6]
+ adds r0, r5
+ ldr r1, =0x000082f4
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x2
+ bne _0802B9E0
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_802DDA0
+_0802B9E0:
+ adds r5, 0x28
+ adds r4, 0x1
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x5]
+ cmp r4, r0
+ blt _0802B9CA
+_0802B9EC:
+ movs r0, 0x1
+ bl sub_802D0C8
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ b _0802BA18
+ .pool
+_0802BA00:
+ ldr r1, [r5]
+ ldrh r0, [r1, 0x3C]
+ adds r0, 0x1
+ strh r0, [r1, 0x3C]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x64
+ bls _0802BA50
+ movs r0, 0x3
+ bl sub_802D0C8
+ ldr r1, [r5]
+_0802BA18:
+ movs r0, 0
+ strh r0, [r1, 0x3C]
+_0802BA1C:
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ b _0802BA50
+_0802BA24:
+ bl sub_802D0F0
+ adds r5, r0, 0
+ cmp r5, 0
+ bne _0802BA50
+ bl sub_802DDCC
+ ldr r4, =gUnknown_02022CFC
+ ldr r0, [r4]
+ adds r0, 0x71
+ strb r5, [r0]
+ bl sub_802C114
+ ldr r1, [r4]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+_0802BA46:
+ movs r0, 0
+ b _0802BA52
+ .pool
+_0802BA50:
+ movs r0, 0x1
+_0802BA52:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802B964
+
+ thumb_func_start sub_802BA58
+sub_802BA58: @ 802BA58
+ push {r4,lr}
+ ldr r1, =gUnknown_02022CFC
+ ldr r0, [r1]
+ ldrh r0, [r0, 0xA]
+ adds r4, r1, 0
+ cmp r0, 0x6
+ bls _0802BA68
+ b _0802BB7C
+_0802BA68:
+ lsls r0, 2
+ ldr r1, =_0802BA7C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0802BA7C:
+ .4byte _0802BA98
+ .4byte _0802BAB8
+ .4byte _0802BAD0
+ .4byte _0802BB00
+ .4byte _0802BAB8
+ .4byte _0802BAD0
+ .4byte _0802BB70
+_0802BA98:
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x72
+ ldrh r0, [r0]
+ adds r1, r2, 0
+ adds r1, 0x3E
+ adds r2, 0x40
+ bl sub_802C808
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x3E]
+ adds r1, 0x40
+ ldrh r1, [r1]
+ bl sub_802D7E8
+ b _0802BAF0
+_0802BAB8:
+ bl sub_802D974
+ adds r2, r0, 0
+ cmp r2, 0
+ bne _0802BB7C
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ strh r2, [r1, 0x3C]
+ b _0802BAF2
+ .pool
+_0802BAD0:
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x3C]
+ adds r2, r0, 0x1
+ strh r2, [r1, 0x3C]
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0802BAEC
+ lsls r0, r2, 16
+ lsrs r0, 16
+ cmp r0, 0xB4
+ bls _0802BB7C
+_0802BAEC:
+ bl sub_802DA14
+_0802BAF0:
+ ldr r1, [r4]
+_0802BAF2:
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ b _0802BB7C
+ .pool
+_0802BB00:
+ bl sub_802DA44
+ cmp r0, 0
+ bne _0802BB7C
+ ldr r4, =gUnknown_02022CFC
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x3E]
+ adds r1, 0x40
+ ldrh r1, [r1]
+ bl sub_802C880
+ ldr r1, [r4]
+ adds r2, r1, 0
+ adds r2, 0x40
+ strh r0, [r2]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0802BB58
+ ldrh r0, [r1, 0x3E]
+ ldrh r1, [r2]
+ bl AddBagItem
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802BB58
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x3E]
+ movs r1, 0x1
+ bl CheckBagHasSpace
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802BB50
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x3E]
+ bl sub_802D884
+ b _0802BB62
+ .pool
+_0802BB50:
+ ldr r1, [r4]
+ movs r0, 0x6
+ strh r0, [r1, 0xA]
+ b _0802BB7C
+_0802BB58:
+ ldr r4, =gUnknown_02022CFC
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x3E]
+ bl sub_802D8FC
+_0802BB62:
+ ldr r1, [r4]
+ movs r0, 0x4
+ strh r0, [r1, 0xA]
+ b _0802BB7C
+ .pool
+_0802BB70:
+ bl sub_802DA44
+ cmp r0, 0
+ bne _0802BB7C
+ movs r0, 0
+ b _0802BB7E
+_0802BB7C:
+ movs r0, 0x1
+_0802BB7E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802BA58
+
+ thumb_func_start sub_802BB84
+sub_802BB84: @ 802BB84
+ push {r4,lr}
+ ldr r0, =gUnknown_02022CFC
+ ldr r0, [r0]
+ ldrh r0, [r0, 0xA]
+ cmp r0, 0x6
+ bhi _0802BC58
+ lsls r0, 2
+ ldr r1, =_0802BBA4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0802BBA4:
+ .4byte _0802BBC0
+ .4byte _0802BBC4
+ .4byte _0802BBCE
+ .4byte _0802BC1C
+ .4byte _0802BC26
+ .4byte _0802BC3C
+ .4byte _0802BC4E
+_0802BBC0:
+ movs r0, 0x4
+ b _0802BC28
+_0802BBC4:
+ bl sub_802D0F0
+ cmp r0, 0
+ bne _0802BC58
+ b _0802BC2C
+_0802BBCE:
+ bl sub_802DA8C
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _0802BC04
+ cmp r1, 0
+ bgt _0802BBE8
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0802BBEC
+ b _0802BC58
+_0802BBE8:
+ cmp r1, 0x1
+ bne _0802BC58
+_0802BBEC:
+ ldr r4, =gUnknown_02022CFC
+ ldr r0, [r4]
+ adds r0, 0x45
+ movs r1, 0x1
+ strb r1, [r0]
+ movs r0, 0x6
+ bl sub_802D0C8
+ ldr r1, [r4]
+ b _0802BC30
+ .pool
+_0802BC04:
+ ldr r4, =gUnknown_02022CFC
+ ldr r0, [r4]
+ adds r0, 0x45
+ movs r1, 0x2
+ strb r1, [r0]
+ movs r0, 0x6
+ bl sub_802D0C8
+ ldr r1, [r4]
+ b _0802BC30
+ .pool
+_0802BC1C:
+ bl sub_802D0F0
+ cmp r0, 0
+ bne _0802BC58
+ b _0802BC2C
+_0802BC26:
+ movs r0, 0x8
+_0802BC28:
+ bl sub_802D0C8
+_0802BC2C:
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+_0802BC30:
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ b _0802BC58
+ .pool
+_0802BC3C:
+ bl sub_802D0F0
+ cmp r0, 0
+ bne _0802BC58
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+_0802BC4E:
+ movs r0, 0
+ b _0802BC5A
+ .pool
+_0802BC58:
+ movs r0, 0x1
+_0802BC5A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802BB84
+
+ thumb_func_start sub_802BC60
+sub_802BC60: @ 802BC60
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, =gUnknown_02022CFC
+ ldr r0, [r1]
+ ldrh r0, [r0, 0xA]
+ adds r4, r1, 0
+ cmp r0, 0x5
+ bhi _0802BD24
+ lsls r0, 2
+ ldr r1, =_0802BC84
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0802BC84:
+ .4byte _0802BC9C
+ .4byte _0802BCA2
+ .4byte _0802BCB2
+ .4byte _0802BCC8
+ .4byte _0802BCEE
+ .4byte _0802BD14
+_0802BC9C:
+ bl sub_802DA14
+ b _0802BCFE
+_0802BCA2:
+ bl sub_802DA44
+ cmp r0, 0
+ bne _0802BD24
+ movs r0, 0x7
+ bl sub_802D0C8
+ b _0802BCFE
+_0802BCB2:
+ bl sub_802D0F0
+ adds r2, r0, 0
+ cmp r2, 0
+ bne _0802BD24
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ strh r2, [r1, 0x3C]
+ b _0802BD02
+ .pool
+_0802BCC8:
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x3C]
+ adds r0, 0x1
+ strh r0, [r1, 0x3C]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x78
+ bls _0802BD24
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, [r4]
+ b _0802BD02
+_0802BCEE:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802BD24
+ bl sub_800AC34
+_0802BCFE:
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+_0802BD02:
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ b _0802BD24
+ .pool
+_0802BD14:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0802BD24
+ movs r0, 0
+ b _0802BD26
+ .pool
+_0802BD24:
+ movs r0, 0x1
+_0802BD26:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802BC60
+
+ thumb_func_start sub_802BD30
+sub_802BD30: @ 802BD30
+ push {r4,lr}
+ ldr r4, =gUnknown_02022CFC
+ ldr r0, [r4]
+ ldrh r0, [r0, 0xA]
+ cmp r0, 0x1
+ beq _0802BD66
+ cmp r0, 0x1
+ bgt _0802BD4C
+ cmp r0, 0
+ beq _0802BD52
+ b _0802BD7A
+ .pool
+_0802BD4C:
+ cmp r0, 0x2
+ beq _0802BD76
+ b _0802BD7A
+_0802BD52:
+ bl sub_802DA14
+ movs r0, 0
+ bl sub_802DD64
+ ldr r1, [r4]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ b _0802BD7A
+_0802BD66:
+ bl sub_802DA44
+ cmp r0, 0
+ bne _0802BD7A
+ ldr r1, [r4]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+_0802BD76:
+ movs r0, 0
+ b _0802BD7C
+_0802BD7A:
+ movs r0, 0x1
+_0802BD7C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802BD30
+
+ thumb_func_start sub_802BD84
+sub_802BD84: @ 802BD84
+ 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 r10, r0
+ lsls r0, 2
+ add r0, r10
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r6, r0, r1
+ mov r0, r10
+ movs r1, 0xE
+ bl GetWordTaskArg
+ mov r8, r0
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _0802BDC8
+ cmp r0, 0x1
+ beq _0802BDDC
+ b _0802BE48
+ .pool
+_0802BDBC:
+ bl sub_802AB20
+ mov r0, r10
+ bl DestroyTask
+ b _0802BE48
+_0802BDC8:
+ movs r1, 0
+ adds r0, r6, 0
+ adds r0, 0x8
+_0802BDCE:
+ strh r1, [r0, 0x4]
+ subs r0, 0x2
+ cmp r0, r6
+ bge _0802BDCE
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+_0802BDDC:
+ mov r3, r8
+ ldrb r1, [r3, 0x6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =0x000082a8
+ adds r0, r4
+ add r0, r8
+ bl sub_802E0AC
+ movs r2, 0
+ adds r5, r6, 0x4
+ mov r9, r2
+ movs r7, 0x83
+ lsls r7, 8
+ add r7, r8
+ add r4, r8
+_0802BDFE:
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0802BE38
+ adds r0, r2, 0
+ adds r1, r4, 0
+ str r2, [sp]
+ bl sub_802E0D0
+ ldr r2, [sp]
+ cmp r0, 0
+ beq _0802BE38
+ ldr r1, =gLinkPlayers + 8
+ add r1, r9
+ adds r0, r7, 0
+ bl StringCopy
+ movs r0, 0x1
+ strh r0, [r5]
+ ldrh r0, [r6, 0x2]
+ adds r0, 0x1
+ strh r0, [r6, 0x2]
+ movs r3, 0x2
+ ldrsh r0, [r6, r3]
+ ldr r2, [sp]
+ mov r1, r8
+ ldrb r1, [r1, 0x5]
+ cmp r0, r1
+ beq _0802BDBC
+_0802BE38:
+ adds r5, 0x2
+ movs r3, 0x1C
+ add r9, r3
+ adds r7, 0x28
+ adds r4, 0xC
+ adds r2, 0x1
+ cmp r2, 0x4
+ ble _0802BDFE
+_0802BE48:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802BD84
+
+ thumb_func_start sub_802BE60
+sub_802BE60: @ 802BE60
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_02022CFC
+ ldr r2, [r1]
+ movs r1, 0xE
+ bl SetWordTaskArg
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802BE60
+
+ thumb_func_start sub_802BE80
+sub_802BE80: @ 802BE80
+ ldr r0, =gUnknown_02022CFC
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x4A
+ movs r1, 0
+ strh r1, [r0]
+ movs r0, 0x6
+ str r0, [r2, 0x14]
+ strh r1, [r2, 0x34]
+ str r1, [r2, 0x1C]
+ strh r1, [r2, 0x36]
+ str r1, [r2, 0x10]
+ bx lr
+ .pool
+ thumb_func_end sub_802BE80
+
+ thumb_func_start sub_802BEA0
+sub_802BEA0: @ 802BEA0
+ push {r4,lr}
+ ldr r3, =gUnknown_02022CFC
+ ldr r0, [r3]
+ adds r1, r0, 0
+ adds r1, 0x4A
+ movs r4, 0
+ movs r2, 0
+ strh r2, [r1]
+ ldr r1, =0x000006ff
+ strh r1, [r0, 0x34]
+ movs r1, 0x7
+ str r1, [r0, 0x14]
+ strh r2, [r0, 0x36]
+ str r2, [r0, 0x10]
+ adds r0, 0x51
+ strb r4, [r0]
+ ldr r0, [r3]
+ adds r0, 0x50
+ strb r4, [r0]
+ ldr r0, [r3]
+ str r2, [r0, 0x20]
+ adds r1, r0, 0
+ adds r1, 0x4E
+ strh r2, [r1]
+ str r2, [r0, 0x6C]
+ bl sub_802BF7C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802BEA0
+
+ thumb_func_start sub_802BEE4
+sub_802BEE4: @ 802BEE4
+ push {r4,lr}
+ ldr r4, =gUnknown_02022CFC
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x46
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802BF34
+ adds r1, 0x4A
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ bl sub_802BF48
+ ldr r3, [r4]
+ ldrh r1, [r3, 0x34]
+ adds r2, r1, r0
+ strh r2, [r3, 0x34]
+ lsls r1, r2, 16
+ ldr r0, =0x09fe0000
+ cmp r1, r0
+ bls _0802BF16
+ ldr r1, =0xfffff601
+ adds r0, r2, r1
+ strh r0, [r3, 0x34]
+_0802BF16:
+ ldr r1, [r4]
+ ldr r2, [r1, 0x14]
+ str r2, [r1, 0x18]
+ ldrh r0, [r1, 0x34]
+ lsrs r0, 8
+ str r0, [r1, 0x14]
+ cmp r0, 0x6
+ bls _0802BF34
+ cmp r2, 0x6
+ bhi _0802BF34
+ ldrh r0, [r1, 0x36]
+ adds r0, 0x1
+ strh r0, [r1, 0x36]
+ bl sub_802BF7C
+_0802BF34:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802BEE4
+
+ thumb_func_start sub_802BF48
+sub_802BF48: @ 802BF48
+ push {lr}
+ ldr r0, =gUnknown_02022CFC
+ ldr r2, [r0]
+ ldr r0, [r2, 0x10]
+ cmp r0, 0
+ beq _0802BF5C
+ movs r0, 0
+ b _0802BF72
+ .pool
+_0802BF5C:
+ ldr r3, [r2, 0x1C]
+ ldrh r1, [r2, 0x34]
+ ldr r0, =0x000005ff
+ cmp r1, r0
+ bhi _0802BF70
+ ldr r0, [r2, 0x20]
+ adds r0, 0x50
+ str r0, [r2, 0x20]
+ lsrs r0, 8
+ adds r3, r0
+_0802BF70:
+ adds r0, r3, 0
+_0802BF72:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802BF48
+
+ thumb_func_start sub_802BF7C
+sub_802BF7C: @ 802BF7C
+ push {r4,lr}
+ ldr r4, =gUnknown_02022CFC
+ ldr r3, [r4]
+ movs r0, 0
+ str r0, [r3, 0x20]
+ adds r1, r3, 0
+ adds r1, 0x4E
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _0802BFC0
+ subs r0, 0x1
+ strh r0, [r1]
+ ldr r0, [r3, 0x6C]
+ cmp r0, 0
+ beq _0802C08A
+ bl sub_802C098
+ movs r1, 0x3
+ ands r1, r0
+ cmp r1, 0
+ beq _0802BFB0
+ ldr r1, [r4]
+ b _0802C086
+ .pool
+_0802BFB0:
+ ldr r1, [r4]
+ ldr r0, [r1, 0x28]
+ cmp r0, 0x36
+ bls _0802BFBC
+ movs r0, 0x1E
+ b _0802C088
+_0802BFBC:
+ movs r0, 0x52
+ b _0802C088
+_0802BFC0:
+ adds r2, r3, 0
+ adds r2, 0x50
+ ldrb r1, [r2]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C014
+ ldr r0, =gUnknown_082FB63C
+ ldrb r1, [r2]
+ lsls r1, 1
+ adds r1, r0
+ adds r0, r3, 0
+ adds r0, 0x51
+ ldrb r2, [r0]
+ lsls r0, r2, 3
+ subs r0, r2
+ ldrh r1, [r1]
+ adds r0, r1
+ str r0, [r3, 0x28]
+ bl sub_802C098
+ ldr r2, [r4]
+ ldr r3, =gUnknown_082FB64C
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x2
+ adds r1, r2, 0
+ adds r1, 0x4E
+ strh r0, [r1]
+ adds r2, 0x50
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ b _0802C082
+ .pool
+_0802C014:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ bne _0802C030
+ adds r1, r3, 0
+ adds r1, 0x51
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bhi _0802C02C
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0802C030
+_0802C02C:
+ movs r0, 0x1
+ str r0, [r3, 0x6C]
+_0802C030:
+ ldr r2, =gUnknown_082FB63C
+ ldr r4, =gUnknown_02022CFC
+ ldr r0, [r4]
+ mov r12, r0
+ mov r3, r12
+ adds r3, 0x50
+ ldrb r0, [r3]
+ movs r1, 0xF
+ subs r1, r0
+ lsls r1, 1
+ adds r1, r2
+ mov r0, r12
+ adds r0, 0x51
+ ldrb r2, [r0]
+ lsls r0, r2, 3
+ subs r0, r2
+ ldrh r1, [r1]
+ adds r0, r1
+ mov r1, r12
+ str r0, [r1, 0x28]
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xF
+ bls _0802C082
+ bl sub_802C098
+ movs r1, 0x3
+ ands r1, r0
+ cmp r1, 0
+ bne _0802C07A
+ ldr r1, [r4]
+ ldr r0, [r1, 0x28]
+ subs r0, 0x5
+ str r0, [r1, 0x28]
+_0802C07A:
+ ldr r0, [r4]
+ adds r0, 0x50
+ movs r1, 0
+ strb r1, [r0]
+_0802C082:
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+_0802C086:
+ ldr r0, [r1, 0x28]
+_0802C088:
+ str r0, [r1, 0x1C]
+_0802C08A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802BF7C
+
+ thumb_func_start sub_802C098
+sub_802C098: @ 802C098
+ ldr r0, =gUnknown_02022CFC
+ ldr r2, [r0]
+ ldr r1, [r2, 0x24]
+ ldr r0, =0x41c64e6d
+ muls r0, r1
+ ldr r1, =0x00006073
+ adds r0, r1
+ str r0, [r2, 0x24]
+ lsrs r0, 16
+ bx lr
+ .pool
+ thumb_func_end sub_802C098
+
+ thumb_func_start sub_802C0B8
+sub_802C0B8: @ 802C0B8
+ push {lr}
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ movs r0, 0x1
+ str r0, [r1, 0x10]
+ movs r0, 0x6
+ str r0, [r1, 0x14]
+ ldr r0, =0x000005ff
+ strh r0, [r1, 0x34]
+ bl sub_802C270
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802C0B8
+
+ thumb_func_start sub_802C0DC
+sub_802C0DC: @ 802C0DC
+ ldr r0, =gUnknown_02022CFC
+ ldr r0, [r0]
+ ldr r0, [r0, 0x10]
+ bx lr
+ .pool
+ thumb_func_end sub_802C0DC
+
+ thumb_func_start sub_802C0E8
+sub_802C0E8: @ 802C0E8
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_02022CFC
+ ldr r4, =0x000082f8
+ movs r3, 0
+ movs r2, 0
+ movs r1, 0x4
+_0802C0F4:
+ ldr r0, [r5]
+ adds r0, r4
+ adds r0, r2
+ str r3, [r0]
+ adds r2, 0x28
+ subs r1, 0x1
+ cmp r1, 0
+ bge _0802C0F4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802C0E8
+
+ thumb_func_start sub_802C114
+sub_802C114: @ 802C114
+ ldr r0, =gUnknown_02022CFC
+ ldr r0, [r0]
+ ldr r1, =0x000083ac
+ adds r0, r1
+ ldr r1, [r0]
+ movs r2, 0
+ strh r2, [r1, 0x10]
+ ldr r0, [r0]
+ strh r2, [r0, 0x12]
+ bx lr
+ .pool
+ thumb_func_end sub_802C114
+
+ thumb_func_start sub_802C130
+sub_802C130: @ 802C130
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, =gUnknown_02022CFC
+ ldr r2, [r1]
+ ldrb r3, [r2, 0x6]
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r2, r1
+ ldr r1, =0x000082f4
+ adds r2, r1
+ ldrh r1, [r2]
+ cmp r1, r0
+ beq _0802C15C
+ movs r0, 0
+ b _0802C15E
+ .pool
+_0802C15C:
+ movs r0, 0x1
+_0802C15E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802C130
+
+ thumb_func_start sub_802C164
+sub_802C164: @ 802C164
+ ldr r0, =gUnknown_02022CFC
+ ldr r0, [r0]
+ ldr r1, =0x000083ac
+ adds r2, r0, r1
+ ldr r1, [r2]
+ adds r0, 0x4A
+ ldrh r0, [r0]
+ strh r0, [r1, 0xE]
+ ldr r1, [r2]
+ ldrh r0, [r1, 0x10]
+ strh r0, [r1, 0x12]
+ ldr r1, [r2]
+ movs r0, 0x1
+ strh r0, [r1, 0x10]
+ bx lr
+ .pool
+ thumb_func_end sub_802C164
+
+ thumb_func_start sub_802C18C
+sub_802C18C: @ 802C18C
+ push {r4,lr}
+ ldr r0, =gUnknown_02022CFC
+ ldr r2, [r0]
+ ldr r0, =0x000083ac
+ adds r3, r2, r0
+ ldr r1, [r3]
+ ldrh r0, [r1, 0x10]
+ strh r0, [r1, 0x12]
+ ldr r0, [r3]
+ movs r4, 0x2
+ strh r4, [r0, 0x10]
+ ldr r1, [r3]
+ adds r2, 0x4A
+ ldrh r0, [r2]
+ strh r0, [r1, 0xE]
+ ldr r0, [r3]
+ str r4, [r0, 0x14]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802C18C
+
+ thumb_func_start sub_802C1BC
+sub_802C1BC: @ 802C1BC
+ ldr r0, =gUnknown_02022CFC
+ ldr r0, [r0]
+ ldr r1, =0x000083ac
+ adds r0, r1
+ ldr r1, [r0]
+ ldrh r2, [r1, 0x10]
+ movs r3, 0
+ strh r2, [r1, 0x12]
+ ldr r0, [r0]
+ strh r3, [r0, 0x10]
+ bx lr
+ .pool
+ thumb_func_end sub_802C1BC
+
+ thumb_func_start sub_802C1DC
+sub_802C1DC: @ 802C1DC
+ push {r4,r5,lr}
+ ldr r4, =gUnknown_02022CFC
+ ldr r1, [r4]
+ ldr r0, [r1, 0x5C]
+ cmp r0, 0
+ beq _0802C21C
+ ldr r0, [r1, 0x78]
+ bl sub_802DD64
+ ldr r1, [r4]
+ movs r5, 0
+ str r5, [r1, 0x5C]
+ adds r0, r1, 0
+ adds r0, 0x4D
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802C21C
+ adds r0, r1, 0
+ adds r0, 0x71
+ ldrb r0, [r0]
+ bl sub_802DCCC
+ ldr r1, =gUnknown_082FB654
+ subs r0, 0x2
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ bl PlaySE
+ ldr r0, [r4]
+ adds r0, 0x4D
+ strb r5, [r0]
+_0802C21C:
+ ldr r0, =gUnknown_02022CFC
+ ldr r0, [r0]
+ adds r0, 0x74
+ ldrh r0, [r0]
+ bl sub_802DD74
+ bl sub_802C280
+ bl sub_802C240
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802C1DC
+
+ thumb_func_start sub_802C240
+sub_802C240: @ 802C240
+ push {lr}
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x46
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802C256
+ ldr r0, [r1, 0x14]
+ bl sub_802DC9C
+_0802C256:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802C240
+
+ thumb_func_start sub_802C260
+sub_802C260: @ 802C260
+ ldr r0, =gUnknown_02022CFC
+ ldr r0, [r0]
+ adds r0, 0x46
+ movs r1, 0
+ strb r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_802C260
+
+ thumb_func_start sub_802C270
+sub_802C270: @ 802C270
+ ldr r0, =gUnknown_02022CFC
+ ldr r0, [r0]
+ adds r0, 0x46
+ movs r1, 0x1
+ strb r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_802C270
+
+ thumb_func_start sub_802C280
+sub_802C280: @ 802C280
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r6, 0
+ ldr r2, =gUnknown_02022CFC
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x5]
+ mov r9, r0
+ movs r5, 0
+ cmp r6, r9
+ bge _0802C360
+ mov r10, r2
+ mov r8, r5
+ movs r7, 0
+_0802C2A2:
+ mov r0, r10
+ ldr r3, [r0]
+ adds r1, r3, r7
+ ldr r2, =0x000082f4
+ adds r0, r1, r2
+ ldrh r2, [r0]
+ cmp r2, 0x1
+ beq _0802C2D4
+ cmp r2, 0x1
+ bgt _0802C2C4
+ cmp r2, 0
+ beq _0802C2CA
+ b _0802C354
+ .pool
+_0802C2C4:
+ cmp r2, 0x2
+ beq _0802C338
+ b _0802C354
+_0802C2CA:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_802DC80
+ b _0802C354
+_0802C2D4:
+ ldr r0, =0x000082f6
+ adds r4, r1, r0
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ bne _0802C2F6
+ ldr r0, =0x000082f2
+ adds r0, r1
+ adds r1, r3, 0
+ adds r1, 0x9A
+ add r1, r8
+ str r1, [sp]
+ ldrh r1, [r0]
+ mov r12, r1
+ ldr r0, [sp]
+ ldrh r0, [r0]
+ cmp r12, r0
+ beq _0802C31E
+_0802C2F6:
+ ldrb r3, [r3, 0x6]
+ cmp r5, r3
+ bne _0802C2FE
+ strh r2, [r4]
+_0802C2FE:
+ orrs r6, r2
+ mov r1, r10
+ ldr r2, [r1]
+ ldr r1, =0x000082e8
+ adds r0, r2, r1
+ adds r0, r7
+ ldr r1, =0x7fffffff
+ str r1, [r0]
+ adds r1, r2, 0
+ adds r1, 0x9A
+ add r1, r8
+ adds r2, r7
+ ldr r0, =0x000082f2
+ adds r2, r0
+ ldrh r0, [r2]
+ strh r0, [r1]
+_0802C31E:
+ adds r0, r5, 0
+ bl sub_802C398
+ b _0802C354
+ .pool
+_0802C338:
+ ldr r0, =0x000082f6
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0x2
+ beq _0802C354
+ ldrb r3, [r3, 0x6]
+ cmp r5, r3
+ bne _0802C34A
+ strh r2, [r1]
+_0802C34A:
+ orrs r6, r2
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_802DD88
+_0802C354:
+ movs r1, 0x2
+ add r8, r1
+ adds r7, 0x28
+ adds r5, 0x1
+ cmp r5, r9
+ blt _0802C2A2
+_0802C360:
+ movs r0, 0x2
+ ands r0, r6
+ cmp r0, 0
+ beq _0802C378
+ movs r0, 0x83
+ lsls r0, 1
+ bl PlaySE
+ b _0802C386
+ .pool
+_0802C378:
+ movs r0, 0x1
+ ands r6, r0
+ cmp r6, 0
+ beq _0802C386
+ movs r0, 0xA
+ bl PlaySE
+_0802C386:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802C280
+
+ thumb_func_start sub_802C398
+sub_802C398: @ 802C398
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, =gUnknown_02022CFC
+ ldr r2, [r0]
+ ldr r0, [r2, 0x68]
+ cmp r0, 0
+ bne _0802C432
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =0x000082e4
+ adds r0, r1
+ adds r5, r2, r0
+ ldr r1, [r5, 0x4]
+ ldr r0, =0x7fffffff
+ cmp r1, r0
+ beq _0802C3D0
+ adds r0, r1, 0x1
+ str r0, [r5, 0x4]
+ adds r3, r0, 0
+ b _0802C3E8
+ .pool
+_0802C3D0:
+ adds r0, r2, 0
+ adds r0, 0x4A
+ ldrh r1, [r0]
+ ldrh r0, [r5, 0xE]
+ subs r3, r1, r0
+ ldr r0, =0x0000fde7
+ cmp r3, r0
+ ble _0802C3E6
+ ldr r0, =0xffff0218
+ adds r3, r0
+ adds r3, r1
+_0802C3E6:
+ str r3, [r5, 0x4]
+_0802C3E8:
+ cmp r3, 0x3
+ ble _0802C432
+ subs r3, 0x4
+ cmp r3, 0x2F
+ bgt _0802C414
+ ldr r2, =gUnknown_082FB65C
+ ldrh r1, [r5, 0xC]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 4
+ adds r0, r3, r0
+ adds r0, r2
+ movs r4, 0
+ ldrsb r4, [r0, r4]
+ b _0802C416
+ .pool
+_0802C414:
+ movs r4, 0
+_0802C416:
+ adds r1, r4, 0
+ adds r0, r6, 0
+ bl sub_802DC80
+ cmp r4, 0
+ bne _0802C430
+ ldr r0, =gUnknown_02022CFC
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x6]
+ cmp r6, r0
+ bne _0802C430
+ bl sub_802C1BC
+_0802C430:
+ str r4, [r5]
+_0802C432:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802C398
+
+ thumb_func_start sub_802C43C
+sub_802C43C: @ 802C43C
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_02022CFC
+ ldr r1, [r5]
+ ldr r0, [r1, 0x14]
+ cmp r0, 0x8
+ bne _0802C4CE
+ ldr r0, [r1, 0x18]
+ cmp r0, 0x7
+ bne _0802C4CE
+ ldr r4, [r1, 0x58]
+ cmp r4, 0
+ bne _0802C46C
+ bl sub_802C780
+ ldr r0, [r5]
+ str r4, [r0, 0x54]
+ movs r1, 0x1
+ str r1, [r0, 0x58]
+ adds r0, 0x71
+ strb r4, [r0]
+ b _0802C4CE
+ .pool
+_0802C46C:
+ ldr r0, [r1, 0x54]
+ cmp r0, 0x5
+ bne _0802C480
+ ldrh r0, [r1, 0xC]
+ adds r0, 0x1
+ strh r0, [r1, 0xC]
+ ldrh r0, [r1, 0xC]
+ bl sub_802C7A0
+ b _0802C484
+_0802C480:
+ movs r0, 0
+ strh r0, [r1, 0xC]
+_0802C484:
+ ldr r4, =gUnknown_02022CFC
+ ldr r1, [r4]
+ ldr r0, [r1, 0x54]
+ cmp r0, 0x1
+ ble _0802C49E
+ movs r0, 0x1
+ str r0, [r1, 0x64]
+ adds r0, r1, 0
+ adds r0, 0x86
+ adds r1, 0x81
+ movs r2, 0x5
+ bl memcpy
+_0802C49E:
+ bl sub_802C780
+ ldr r0, [r4]
+ movs r2, 0
+ str r2, [r0, 0x54]
+ movs r1, 0x1
+ str r1, [r0, 0x58]
+ adds r0, 0x71
+ strb r2, [r0]
+ ldr r0, [r4]
+ adds r2, r0, 0
+ adds r2, 0x74
+ ldrh r1, [r2]
+ ldr r0, =0x0000270e
+ cmp r1, r0
+ bhi _0802C4C2
+ adds r0, r1, 0x1
+ strh r0, [r2]
+_0802C4C2:
+ movs r0, 0xA
+ bl sub_802C688
+ movs r0, 0x3
+ bl sub_802AE14
+_0802C4CE:
+ ldr r4, =gUnknown_02022CFC
+ ldr r0, [r4]
+ ldr r0, [r0, 0x64]
+ cmp r0, 0
+ beq _0802C504
+ bl sub_802C618
+ cmp r0, 0x1
+ beq _0802C4E8
+ ldr r0, [r4]
+ ldr r0, [r0, 0x14]
+ cmp r0, 0
+ bne _0802C504
+_0802C4E8:
+ ldr r0, [r4]
+ adds r0, 0x86
+ bl sub_802C73C
+ bl sub_802C790
+ bl sub_802C688
+ movs r0, 0x3
+ bl sub_802AE14
+ ldr r1, [r4]
+ movs r0, 0
+ str r0, [r1, 0x64]
+_0802C504:
+ ldr r4, =gUnknown_02022CFC
+ ldr r0, [r4]
+ ldr r0, [r0, 0x58]
+ cmp r0, 0
+ beq _0802C52A
+ bl sub_802C6B0
+ adds r2, r0, 0
+ ldr r1, [r4]
+ ldr r0, [r1, 0x54]
+ cmp r2, r0
+ ble _0802C52A
+ str r2, [r1, 0x54]
+ adds r0, r1, 0
+ adds r0, 0x81
+ adds r1, 0x7C
+ movs r2, 0x5
+ bl memcpy
+_0802C52A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802C43C
+
+ thumb_func_start sub_802C538
+sub_802C538: @ 802C538
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_02022CFC
+ ldr r1, [r5]
+ ldr r0, [r1, 0x14]
+ cmp r0, 0x6
+ bne _0802C582
+ ldr r4, =0x000083ac
+ adds r0, r1, r4
+ ldr r1, [r0]
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _0802C582
+ ldrh r0, [r1, 0x12]
+ cmp r0, 0x1
+ bne _0802C578
+ bl sub_802C0DC
+ adds r1, r0, 0
+ cmp r1, 0x1
+ bne _0802C578
+ ldr r0, [r5]
+ adds r0, r4
+ ldr r0, [r0]
+ str r1, [r0, 0x14]
+ b _0802C582
+ .pool
+_0802C574:
+ movs r0, 0
+ b _0802C5CA
+_0802C578:
+ bl sub_802C18C
+ movs r0, 0x3
+ bl sub_802AE14
+_0802C582:
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ ldr r0, [r1, 0x14]
+ cmp r0, 0x7
+ bne _0802C5A8
+ ldr r0, [r1, 0x18]
+ cmp r0, 0x6
+ bne _0802C5A8
+ ldr r2, =0x000083ac
+ adds r0, r1, r2
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x10]
+ cmp r0, 0x2
+ beq _0802C5A8
+ movs r0, 0x1
+ str r0, [r1, 0x14]
+ movs r0, 0x3
+ bl sub_802AE14
+_0802C5A8:
+ movs r2, 0
+ ldr r0, =gUnknown_02022CFC
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x5]
+ cmp r2, r1
+ bge _0802C5C8
+ adds r3, r1, 0
+ ldr r4, =0x000082f4
+ adds r1, r0, r4
+_0802C5BA:
+ ldrh r0, [r1]
+ cmp r0, 0x2
+ beq _0802C574
+ adds r1, 0x28
+ adds r2, 0x1
+ cmp r2, r3
+ blt _0802C5BA
+_0802C5C8:
+ movs r0, 0x1
+_0802C5CA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802C538
+
+ thumb_func_start sub_802C5DC
+sub_802C5DC: @ 802C5DC
+ push {r4,lr}
+ ldr r0, =gUnknown_02022CFC
+ ldr r0, [r0]
+ ldrb r3, [r0, 0x5]
+ movs r4, 0
+ cmp r4, r3
+ bge _0802C600
+ ldr r1, =0x000082f8
+ adds r2, r0, r1
+ adds r1, r3, 0
+_0802C5F0:
+ ldr r0, [r2]
+ cmp r0, 0
+ beq _0802C5F8
+ adds r4, 0x1
+_0802C5F8:
+ adds r2, 0x28
+ subs r1, 0x1
+ cmp r1, 0
+ bne _0802C5F0
+_0802C600:
+ movs r0, 0
+ cmp r4, r3
+ bne _0802C608
+ movs r0, 0x1
+_0802C608:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802C5DC
+
+ thumb_func_start sub_802C618
+sub_802C618: @ 802C618
+ push {r4,lr}
+ movs r2, 0
+ ldr r0, =gUnknown_02022CFC
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x5]
+ cmp r2, r1
+ bge _0802C648
+ adds r3, r1, 0
+ ldr r4, =0x000082f8
+ adds r1, r0, r4
+_0802C62C:
+ ldr r0, [r1]
+ cmp r0, 0x1
+ beq _0802C640
+ movs r0, 0
+ b _0802C64A
+ .pool
+_0802C640:
+ adds r1, 0x28
+ adds r2, 0x1
+ cmp r2, r3
+ blt _0802C62C
+_0802C648:
+ movs r0, 0x1
+_0802C64A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802C618
+
+ thumb_func_start sub_802C650
+sub_802C650: @ 802C650
+ push {lr}
+ ldr r0, =gUnknown_02022CFC
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x45
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0802C668
+_0802C660:
+ movs r0, 0
+ b _0802C684
+ .pool
+_0802C668:
+ movs r2, 0x1
+ ldrb r0, [r1, 0x5]
+ cmp r2, r0
+ bge _0802C682
+ adds r3, r0, 0
+ adds r1, 0x92
+_0802C674:
+ ldrh r0, [r1]
+ cmp r0, 0x1
+ beq _0802C660
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, r3
+ blt _0802C674
+_0802C682:
+ movs r0, 0x1
+_0802C684:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802C650
+
+ thumb_func_start sub_802C688
+sub_802C688: @ 802C688
+ push {lr}
+ ldr r1, =gUnknown_02022CFC
+ ldr r2, [r1]
+ ldr r1, [r2, 0x78]
+ adds r1, r0
+ str r1, [r2, 0x78]
+ movs r0, 0x1
+ str r0, [r2, 0x5C]
+ ldr r0, =0x00018695
+ cmp r1, r0
+ bls _0802C6A2
+ adds r0, 0x1
+ str r0, [r2, 0x78]
+_0802C6A2:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802C688
+
+ thumb_func_start sub_802C6B0
+sub_802C6B0: @ 802C6B0
+ push {r4-r7,lr}
+ movs r5, 0
+ ldr r1, =gUnknown_02022CFC
+ ldr r0, [r1]
+ ldrb r4, [r0, 0x5]
+ movs r2, 0
+ cmp r5, r4
+ bge _0802C702
+ mov r12, r1
+ movs r3, 0
+ ldr r7, =0x000082e4
+ movs r6, 0x1E
+ negs r6, r6
+_0802C6CA:
+ mov r0, r12
+ ldr r1, [r0]
+ adds r0, r1, r7
+ adds r0, r3
+ ldr r0, [r0]
+ cmp r0, r6
+ bne _0802C6F0
+ adds r0, r1, 0
+ adds r0, 0x7C
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r5, 0x1
+ b _0802C6FA
+ .pool
+_0802C6F0:
+ adds r0, r1, 0
+ adds r0, 0x7C
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0]
+_0802C6FA:
+ adds r3, 0x28
+ adds r2, 0x1
+ cmp r2, r4
+ blt _0802C6CA
+_0802C702:
+ adds r0, r5, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802C6B0
+
+ thumb_func_start sub_802C70C
+sub_802C70C: @ 802C70C
+ push {lr}
+ movs r2, 0
+ ldr r1, =gUnknown_03005000
+ ldr r3, =0x000009e6
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0802C728
+ ldr r3, =0x00000c1a
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0802C728
+ movs r2, 0x1
+_0802C728:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802C70C
+
+ thumb_func_start sub_802C73C
+sub_802C73C: @ 802C73C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ ldr r6, =gUnknown_02022CFC
+ movs r5, 0x1
+_0802C74A:
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802C75A
+ adds r0, r5, 0
+ lsls r0, r1
+ orrs r2, r0
+ adds r3, 0x1
+_0802C75A:
+ adds r1, 0x1
+ cmp r1, 0x4
+ ble _0802C74A
+ ldr r0, [r6]
+ adds r0, 0x71
+ strb r2, [r0]
+ cmp r2, 0
+ beq _0802C772
+ ldr r0, [r6]
+ adds r0, 0x4D
+ movs r1, 0x1
+ strb r1, [r0]
+_0802C772:
+ adds r0, r3, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802C73C
+
+ thumb_func_start sub_802C780
+sub_802C780: @ 802C780
+ ldr r0, =gUnknown_02022CFC
+ ldr r0, [r0]
+ adds r0, 0x44
+ movs r1, 0
+ strb r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_802C780
+
+ thumb_func_start sub_802C790
+sub_802C790: @ 802C790
+ ldr r1, =gUnknown_082FB6EC
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_802C790
+
+ thumb_func_start sub_802C7A0
+sub_802C7A0: @ 802C7A0
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, =gUnknown_02022CFC
+ ldr r0, [r0]
+ ldrh r2, [r0, 0xE]
+ cmp r1, r2
+ bls _0802C7B2
+ strh r1, [r0, 0xE]
+_0802C7B2:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802C7A0
+
+ thumb_func_start sub_802C7BC
+sub_802C7BC: @ 802C7BC
+ push {lr}
+ ldr r0, =gUnknown_02022CFC
+ ldr r0, [r0]
+ ldr r1, =gUnknown_082FB714
+ ldr r2, [r0, 0x78]
+ ldr r0, [r1]
+ cmp r2, r0
+ bcs _0802C7D8
+ movs r0, 0
+ b _0802C7DA
+ .pool
+_0802C7D8:
+ movs r0, 0x1
+_0802C7DA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802C7BC
+
+ thumb_func_start sub_802C7E0
+sub_802C7E0: @ 802C7E0
+ push {r4,lr}
+ bl sub_802C818
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl sub_802C838
+ lsls r0, 16
+ lsrs r0, 4
+ ldr r1, =0x00000fff
+ ands r4, r1
+ orrs r0, r4
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802C7E0
+
+ thumb_func_start sub_802C808
+sub_802C808: @ 802C808
+ lsls r0, 16
+ lsrs r3, r0, 28
+ strh r3, [r2]
+ lsls r0, 4
+ lsrs r0, 20
+ strh r0, [r1]
+ bx lr
+ thumb_func_end sub_802C808
+
+ thumb_func_start sub_802C818
+sub_802C818: @ 802C818
+ push {lr}
+ bl Random
+ lsls r0, 16
+ movs r1, 0xE0
+ lsls r1, 11
+ ands r1, r0
+ ldr r0, =gUnknown_082FB704
+ lsrs r1, 15
+ adds r1, r0
+ ldrh r0, [r1]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802C818
+
+ thumb_func_start sub_802C838
+sub_802C838: @ 802C838
+ push {r4-r6,lr}
+ movs r5, 0
+ movs r4, 0
+ ldr r3, =gUnknown_02022CFC
+ ldr r0, [r3]
+ ldr r2, =gUnknown_082FB714
+ ldr r1, [r0, 0x78]
+ ldr r0, [r2]
+ cmp r1, r0
+ bcc _0802C874
+ ldr r5, [r2, 0x4]
+ adds r6, r3, 0
+ adds r3, r2, 0x4
+_0802C852:
+ adds r3, 0x8
+ adds r2, 0x8
+ adds r4, 0x1
+ cmp r4, 0x4
+ bhi _0802C874
+ ldr r0, [r6]
+ ldr r1, [r0, 0x78]
+ ldr r0, [r2]
+ cmp r1, r0
+ bcc _0802C874
+ ldr r5, [r3]
+ b _0802C852
+ .pool
+_0802C874:
+ lsls r0, r5, 16
+ lsrs r0, 16
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802C838
+
+ thumb_func_start sub_802C880
+sub_802C880: @ 802C880
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ b _0802C892
+_0802C88C:
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0802C892:
+ cmp r4, 0
+ beq _0802C8A4
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl CheckBagHasSpace
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802C88C
+_0802C8A4:
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802C880
+
+ thumb_func_start sub_802C8AC
+sub_802C8AC: @ 802C8AC
+ push {lr}
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802C8AC
+
+ thumb_func_start sub_802C8BC
+sub_802C8BC: @ 802C8BC
+ ldr r0, =gUnknown_02022CFC
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x6]
+ bx lr
+ .pool
+ thumb_func_end sub_802C8BC
+
+ thumb_func_start sub_802C8C8
+sub_802C8C8: @ 802C8C8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gUnknown_02022CFC
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =0x000082a8
+ adds r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ bx lr
+ .pool
+ thumb_func_end sub_802C8C8
+
+ thumb_func_start sub_802C8E8
+sub_802C8E8: @ 802C8E8
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =gUnknown_02022CFC
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, [r2]
+ adds r0, r1
+ movs r1, 0x83
+ lsls r1, 8
+ adds r0, r1
+ bx lr
+ .pool
+ thumb_func_end sub_802C8E8
+
+ thumb_func_start sub_802C908
+sub_802C908: @ 802C908
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_802AC00
+ lsls r0, 16
+ asrs r0, 16
+ mvns r0, r0
+ lsrs r0, 31
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802C908
+
+ thumb_func_start sub_802C920
+sub_802C920: @ 802C920
+ push {r4,r5,lr}
+ movs r5, 0
+_0802C924:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl GetMonData
+ cmp r0, 0
+ beq _0802C95C
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_802C908
+ cmp r0, 0
+ beq _0802C95C
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0x1
+ b _0802C966
+ .pool
+_0802C95C:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0802C924
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0
+_0802C966:
+ strh r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802C920
+
+ thumb_func_start sub_802C974
+sub_802C974: @ 802C974
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r4, 0
+ ldr r5, =gUnknown_082FBE08
+_0802C97C:
+ adds r0, r5, 0
+ bl LoadCompressedObjectPic
+ adds r5, 0x8
+ adds r4, 0x1
+ cmp r4, 0x4
+ bls _0802C97C
+ movs r4, 0
+ ldr r5, =gUnknown_082FBE30
+_0802C98E:
+ adds r0, r5, 0
+ bl LoadSpritePalette
+ adds r5, 0x8
+ adds r4, 0x1
+ cmp r4, 0x1
+ bls _0802C98E
+ movs r0, 0x5
+ bl IndexOfSpritePaletteTag
+ strb r0, [r6, 0xE]
+ movs r0, 0x6
+ bl IndexOfSpritePaletteTag
+ strb r0, [r6, 0xF]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802C974
+
+ thumb_func_start sub_802C9BC
+sub_802C9BC: @ 802C9BC
+ push {lr}
+ movs r2, 0
+ movs r1, 0x7
+ adds r0, 0x3C
+_0802C9C4:
+ strh r2, [r0]
+ subs r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _0802C9C4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802C9BC
+
+ thumb_func_start sub_802C9D4
+sub_802C9D4: @ 802C9D4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ mov r9, r0
+ adds r7, r1, 0
+ ldr r0, [sp, 0x54]
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp, 0x28]
+ lsls r3, 16
+ lsrs r3, 16
+ str r3, [sp, 0x2C]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r1, sp
+ ldr r0, =gUnknown_082FBE40
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ movs r0, 0x80
+ lsls r0, 6
+ bl Alloc
+ mov r8, r0
+ movs r0, 0x80
+ lsls r0, 4
+ bl Alloc
+ mov r10, r0
+ bl sub_802C8BC
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r6, r0
+ bne _0802CA2C
+ movs r0, 0x3
+ b _0802CA32
+ .pool
+_0802CA2C:
+ adds r0, r6, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+_0802CA32:
+ str r0, [sp, 0x30]
+ mov r1, r8
+ cmp r1, 0
+ beq _0802CAF4
+ mov r2, r10
+ cmp r2, 0
+ beq _0802CAF4
+ ldrh r2, [r7]
+ lsls r0, r2, 3
+ ldr r1, =gMonStillFrontPicTable
+ adds r0, r1
+ ldr r3, [r7, 0x8]
+ mov r1, r8
+ bl HandleLoadSpecialPokePic
+ mov r3, r8
+ str r3, [sp, 0x18]
+ adds r4, r6, 0
+ add r0, sp, 0x18
+ ldr r5, =0xffff0000
+ lsls r1, r4, 16
+ movs r2, 0x80
+ lsls r2, 4
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ bl LoadSpriteSheet
+ ldrh r0, [r7]
+ ldr r1, [r7, 0x4]
+ ldr r2, [r7, 0x8]
+ bl GetFrontSpritePalFromSpeciesAndPersonality
+ str r0, [sp, 0x20]
+ add r0, sp, 0x20
+ ldr r1, [r0, 0x4]
+ ands r1, r5
+ orrs r1, r4
+ str r1, [r0, 0x4]
+ bl LoadCompressedObjectPalette
+ mov r0, r8
+ bl Free
+ mov r0, r10
+ bl Free
+ mov r1, sp
+ mov r0, sp
+ ldrh r0, [r0]
+ adds r0, r6
+ strh r0, [r1]
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ adds r0, r6
+ strh r0, [r1, 0x2]
+ ldr r4, [sp, 0x28]
+ lsls r1, r4, 16
+ asrs r1, 16
+ ldr r0, [sp, 0x2C]
+ lsls r2, r0, 16
+ asrs r2, 16
+ mov r0, sp
+ ldr r3, [sp, 0x30]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0802CAF4
+ lsls r0, r6, 2
+ ldr r2, =0x000081a8
+ add r2, r9
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ str r0, [r2]
+ ldr r0, =0x000081fc
+ add r0, r9
+ adds r0, r6
+ add r1, sp, 0x30
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _0802CB00
+ .pool
+_0802CAF4:
+ lsls r0, r6, 2
+ ldr r1, =0x000081a8
+ add r1, r9
+ adds r1, r0
+ movs r0, 0
+ str r0, [r1]
+_0802CB00:
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802C9D4
+
+ thumb_func_start sub_802CB14
+sub_802CB14: @ 802CB14
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r6, r1, 2
+ ldr r0, =0x000081bc
+ adds r5, r4, r0
+ adds r5, r6
+ ldr r0, [r5]
+ bl sub_802C9BC
+ ldr r2, [r5]
+ ldr r0, =0x000081a8
+ adds r4, r0
+ adds r4, r6
+ ldr r1, [r4]
+ ldr r0, =gSprites
+ subs r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r1, r0, 8
+ adds r0, r1
+ lsls r1, r0, 16
+ adds r0, r1
+ negs r0, r0
+ asrs r0, 2
+ strh r0, [r2, 0x3C]
+ ldr r1, [r5]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, [r5]
+ movs r0, 0x60
+ strh r0, [r1, 0x22]
+ ldr r0, [r5]
+ ldr r1, =sub_802CB7C
+ str r1, [r0, 0x1C]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802CB14
+
+ thumb_func_start sub_802CB7C
+sub_802CB7C: @ 802CB7C
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _0802CBA8
+ cmp r0, 0x1
+ bgt _0802CB92
+ cmp r0, 0
+ beq _0802CB98
+ b _0802CBE6
+_0802CB92:
+ cmp r0, 0x2
+ beq _0802CBC8
+ b _0802CBE6
+_0802CB98:
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0802CBE6
+ b _0802CBD6
+_0802CBA8:
+ ldrh r1, [r2, 0x22]
+ subs r1, 0x1
+ strh r1, [r2, 0x22]
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x48
+ bgt _0802CBE6
+ movs r0, 0x48
+ strh r0, [r2, 0x22]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ b _0802CBE6
+_0802CBC8:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2F
+ ble _0802CBE6
+_0802CBD6:
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_0802CBE6:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802CB7C
+
+ thumb_func_start sub_802CBF0
+sub_802CBF0: @ 802CBF0
+ push {lr}
+ lsls r1, 2
+ ldr r2, =0x000081a8
+ adds r0, r2
+ adds r0, r1
+ ldr r2, [r0]
+ ldr r1, =sub_802CC40
+ str r1, [r2, 0x1C]
+ movs r1, 0
+ strh r1, [r2, 0x26]
+ ldr r0, [r0]
+ bl sub_802C9BC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802CBF0
+
+ thumb_func_start sub_802CC18
+sub_802CC18: @ 802CC18
+ push {lr}
+ movs r2, 0
+ lsls r1, 2
+ ldr r3, =0x000081a8
+ adds r0, r3
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, [r0, 0x1C]
+ ldr r0, =sub_802CC40
+ cmp r1, r0
+ bne _0802CC30
+ movs r2, 0x1
+_0802CC30:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802CC18
+
+ thumb_func_start sub_802CC40
+sub_802CC40: @ 802CC40
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0802CC6C
+ ldrh r0, [r2, 0x32]
+ adds r0, 0x1
+ strh r0, [r2, 0x32]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802CC64
+ movs r0, 0x2
+ b _0802CC66
+_0802CC64:
+ ldr r0, =0x0000fffe
+_0802CC66:
+ strh r0, [r2, 0x26]
+ movs r0, 0
+ strh r0, [r2, 0x30]
+_0802CC6C:
+ movs r1, 0x32
+ ldrsh r0, [r2, r1]
+ cmp r0, 0xC
+ ble _0802CC7C
+ movs r0, 0
+ strh r0, [r2, 0x26]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_0802CC7C:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802CC40
+
+ thumb_func_start sub_802CC88
+sub_802CC88: @ 802CC88
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 2
+ ldr r0, =0x000081a8
+ adds r4, r0
+ adds r4, r1
+ ldr r0, [r4]
+ bl sub_802C9BC
+ ldr r1, [r4]
+ ldr r0, =sub_802CD08
+ str r0, [r1, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802CC88
+
+ thumb_func_start sub_802CCB0
+sub_802CCB0: @ 802CCB0
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ bl sub_802C8AC
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _0802CCF4
+ movs r1, 0x5
+ negs r1, r1
+ mov r12, r1
+ ldr r1, =0x000081a8
+ adds r3, r4, r1
+ ldr r7, =sub_802CD08
+ ldr r6, =SpriteCallbackDummy
+ movs r5, 0xA
+ adds r4, r0, 0
+_0802CCD2:
+ ldr r2, [r3]
+ ldr r0, [r2, 0x1C]
+ cmp r0, r7
+ bne _0802CCEC
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ mov r0, r12
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, [r3]
+ str r6, [r0, 0x1C]
+ adds r0, 0x43
+ strb r5, [r0]
+_0802CCEC:
+ adds r3, 0x4
+ subs r4, 0x1
+ cmp r4, 0
+ bne _0802CCD2
+_0802CCF4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802CCB0
+
+ thumb_func_start sub_802CD08
+sub_802CD08: @ 802CD08
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _0802CD36
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_0802CD36:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802CD08
+
+ thumb_func_start sub_802CD3C
+sub_802CD3C: @ 802CD3C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_802C8AC
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ cmp r2, r3
+ bge _0802CD66
+ ldr r0, =0x000081fc
+ adds r5, r4, r0
+ subs r0, 0x54
+ adds r4, r0
+_0802CD56:
+ ldm r4!, {r0}
+ adds r1, r5, r2
+ ldrb r1, [r1]
+ adds r0, 0x43
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, r3
+ blt _0802CD56
+_0802CD66:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802CD3C
+
+ thumb_func_start sub_802CD70
+sub_802CD70: @ 802CD70
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 2
+ ldr r0, =0x000081a8
+ adds r4, r0
+ adds r4, r1
+ ldr r0, [r4]
+ bl sub_802C9BC
+ ldr r1, [r4]
+ ldr r0, =sub_802CDD4
+ str r0, [r1, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802CD70
+
+ thumb_func_start sub_802CD98
+sub_802CD98: @ 802CD98
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_802C8AC
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ cmp r2, r3
+ bge _0802CDCC
+ ldr r5, =sub_802CDD4
+ ldr r0, =0x000081a8
+ adds r1, r4, r0
+_0802CDB0:
+ ldr r0, [r1]
+ ldr r0, [r0, 0x1C]
+ cmp r0, r5
+ bne _0802CDC4
+ movs r0, 0x1
+ b _0802CDCE
+ .pool
+_0802CDC4:
+ adds r1, 0x4
+ adds r2, 0x1
+ cmp r2, r3
+ blt _0802CDB0
+_0802CDCC:
+ movs r0, 0
+_0802CDCE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802CD98
+
+ thumb_func_start sub_802CDD4
+sub_802CDD4: @ 802CDD4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r0, 0x2E
+ ldrsh r4, [r5, r0]
+ cmp r4, 0
+ beq _0802CDE6
+ cmp r4, 0x1
+ beq _0802CDF4
+ b _0802CE3C
+_0802CDE6:
+ movs r0, 0x22
+ bl PlaySE
+ strh r4, [r5, 0x30]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_0802CDF4:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x4
+ strh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7F
+ ble _0802CE06
+ movs r0, 0
+ strh r0, [r5, 0x30]
+_0802CE06:
+ ldr r1, =gSineTable
+ movs r2, 0x30
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ negs r0, r0
+ strh r0, [r5, 0x26]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ cmp r1, 0
+ bne _0802CE3C
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bgt _0802CE38
+ strh r1, [r5, 0x2E]
+ b _0802CE3C
+ .pool
+_0802CE38:
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r5, 0x1C]
+_0802CE3C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802CDD4
+
+ thumb_func_start sub_802CE48
+sub_802CE48: @ 802CE48
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r3, 24
+ lsrs r4, r3, 24
+ ldr r0, =gUnknown_082FC00C
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _0802CE88
+ ldr r0, =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r3]
+ lsls r2, r4, 2
+ ldr r3, =0x000081bc
+ adds r0, r5, r3
+ adds r0, r2
+ str r1, [r0]
+_0802CE88:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802CE48
+
+ thumb_func_start sub_802CE9C
+sub_802CE9C: @ 802CE9C
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ movs r5, 0
+ movs r4, 0
+ ldr r6, =gUnknown_082FBE58
+_0802CEA6:
+ ldr r1, =gUnknown_082FBEB8
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r2, =gUnknown_082FBEA8
+ lsls r1, r5, 1
+ adds r1, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r3, 0
+ ldrsh r2, [r6, r3]
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r5, 2
+ ldr r3, =0x000081d0
+ adds r2, r7, r3
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ str r0, [r2]
+ adds r5, 0x1
+ adds r6, 0x14
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0802CEA6
+ movs r4, 0x3
+ movs r6, 0x3C
+_0802CEE8:
+ ldr r1, =gUnknown_082FBEB8
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r2, =gUnknown_082FBEA8
+ lsls r1, r5, 1
+ adds r1, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ ldr r2, =gUnknown_082FBE58
+ adds r2, r6, r2
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r5, 2
+ ldr r3, =0x000081d0
+ adds r2, r7, r3
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ str r0, [r2]
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ adds r5, 0x1
+ subs r6, 0x14
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0802CEE8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802CE9C
+
+ thumb_func_start sub_802CF50
+sub_802CF50: @ 802CF50
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ str r0, [sp, 0x8]
+ cmp r1, 0x5
+ ble _0802CF70
+ movs r0, 0xA
+ subs r1, r0, r1
+ movs r0, 0x3
+ str r0, [sp]
+ ldr r2, [sp, 0x8]
+ ldrb r0, [r2, 0xF]
+ b _0802CF78
+_0802CF70:
+ movs r3, 0x2
+ str r3, [sp]
+ ldr r7, [sp, 0x8]
+ ldrb r0, [r7, 0xE]
+_0802CF78:
+ movs r6, 0
+ lsls r2, r1, 1
+ str r2, [sp, 0x4]
+ lsls r0, 4
+ mov r9, r0
+ lsls r1, 24
+ mov r8, r1
+ ldr r0, =gUnknown_082FBE58
+ adds r4, r2, r0
+ ldr r3, [sp]
+ lsls r3, 2
+ mov r10, r3
+ movs r5, 0x3
+_0802CF92:
+ lsls r0, r6, 2
+ ldr r7, [sp, 0x8]
+ ldr r1, =0x000081d0
+ adds r2, r7, r1
+ adds r2, r0
+ ldr r1, [r2]
+ ldrh r0, [r4]
+ strh r0, [r1, 0x22]
+ ldr r3, [r2]
+ ldrb r0, [r3, 0x5]
+ movs r7, 0xD
+ negs r7, r7
+ adds r1, r7, 0
+ ands r0, r1
+ mov r1, r10
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ ldr r3, [r2]
+ ldrb r1, [r3, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ mov r7, r9
+ orrs r0, r7
+ strb r0, [r3, 0x5]
+ ldr r0, [r2]
+ mov r2, r8
+ lsrs r1, r2, 24
+ bl StartSpriteAnim
+ adds r6, 0x1
+ adds r4, 0x14
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0802CF92
+ movs r5, 0x3
+ ldr r0, =gUnknown_082FBE58
+ ldr r3, [sp, 0x4]
+ adds r0, r3, r0
+ adds r4, r0, 0
+ adds r4, 0x3C
+ ldr r7, [sp]
+ lsls r7, 2
+ mov r10, r7
+_0802CFE8:
+ lsls r0, r6, 2
+ ldr r1, [sp, 0x8]
+ ldr r3, =0x000081d0
+ adds r2, r1, r3
+ adds r2, r0
+ ldr r1, [r2]
+ ldrh r0, [r4]
+ strh r0, [r1, 0x22]
+ ldr r3, [r2]
+ ldrb r0, [r3, 0x5]
+ movs r7, 0xD
+ negs r7, r7
+ adds r1, r7, 0
+ ands r0, r1
+ mov r1, r10
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ ldr r3, [r2]
+ ldrb r1, [r3, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ mov r7, r9
+ orrs r0, r7
+ strb r0, [r3, 0x5]
+ ldr r0, [r2]
+ mov r2, r8
+ lsrs r1, r2, 24
+ bl StartSpriteAnim
+ adds r6, 0x1
+ subs r4, 0x14
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0802CFE8
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802CF50
+
+ thumb_func_start sub_802D044
+sub_802D044: @ 802D044
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x9
+ movs r1, 0x7
+ movs r2, 0x78
+ movs r3, 0x50
+ bl sub_802EB24
+ adds r0, r4, 0
+ bl sub_802CD3C
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802D044
+
+ thumb_func_start sub_802D068
+sub_802D068: @ 802D068
+ push {lr}
+ bl sub_802EB84
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802D068
+
+ thumb_func_start sub_802D074
+sub_802D074: @ 802D074
+ push {r4,lr}
+ ldr r4, =gUnknown_02022D00
+ str r0, [r4]
+ bl sub_802D0BC
+ ldr r0, =sub_802D12C
+ movs r1, 0x3
+ bl CreateTask
+ ldr r1, [r4]
+ strb r0, [r1, 0x6]
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x6]
+ movs r1, 0x2
+ bl SetWordTaskArg
+ ldr r0, =sub_802D150
+ bl sub_802D108
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802D074
+
+ thumb_func_start sub_802D0AC
+sub_802D0AC: @ 802D0AC
+ push {lr}
+ bl FreeAllWindowBuffers
+ bl sub_8034CC8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802D0AC
+
+ thumb_func_start sub_802D0BC
+sub_802D0BC: @ 802D0BC
+ movs r1, 0
+ strh r1, [r0, 0x4]
+ str r1, [r0]
+ movs r1, 0xFF
+ strh r1, [r0, 0x12]
+ bx lr
+ thumb_func_end sub_802D0BC
+
+ thumb_func_start sub_802D0C8
+sub_802D0C8: @ 802D0C8
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r5, 0
+ ldr r4, =gUnknown_082FE18C
+_0802D0D0:
+ ldr r0, [r4]
+ cmp r0, r6
+ bne _0802D0DC
+ ldr r0, [r4, 0x4]
+ bl sub_802D108
+_0802D0DC:
+ adds r4, 0x8
+ adds r5, 0x1
+ cmp r5, 0x9
+ bls _0802D0D0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802D0C8
+
+ thumb_func_start sub_802D0F0
+sub_802D0F0: @ 802D0F0
+ ldr r0, =gUnknown_02022D00
+ ldr r0, [r0]
+ ldr r1, [r0]
+ movs r0, 0x1
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ bx lr
+ .pool
+ thumb_func_end sub_802D0F0
+
+ thumb_func_start sub_802D108
+sub_802D108: @ 802D108
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r4, =gUnknown_02022D00
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x6]
+ movs r1, 0
+ bl SetWordTaskArg
+ ldr r1, [r4]
+ movs r0, 0
+ strh r0, [r1, 0x4]
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802D108
+
+ thumb_func_start sub_802D12C
+sub_802D12C: @ 802D12C
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, =gUnknown_02022D00
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0802D148
+ adds r0, r1, 0
+ movs r1, 0
+ bl GetWordTaskArg
+ bl _call_via_r0
+_0802D148:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802D12C
+
+ thumb_func_start sub_802D150
+sub_802D150: @ 802D150
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r6, =gUnknown_02022D00
+ ldr r1, [r6]
+ ldrh r5, [r1, 0x4]
+ cmp r5, 0x1
+ bne _0802D160
+ b _0802D298
+_0802D160:
+ cmp r5, 0x1
+ bgt _0802D170
+ cmp r5, 0
+ beq _0802D178
+ b _0802D2DA
+ .pool
+_0802D170:
+ cmp r5, 0x2
+ bne _0802D176
+ b _0802D2D6
+_0802D176:
+ b _0802D2DA
+_0802D178:
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_082FE164
+ movs r0, 0
+ movs r2, 0x4
+ bl InitBgsFromTemplates
+ ldr r0, =gUnknown_082FE174
+ bl InitWindows
+ bl reset_temp_tile_data_buffers
+ ldr r0, [r6]
+ bl sub_802C974
+ bl sub_802DD08
+ ldr r0, =gPkmnJumpBgPal
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, =gPkmnJumpBgGfx
+ str r5, [sp]
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ ldr r1, =gPkmnJumpBgTilemap
+ movs r4, 0x1
+ str r4, [sp]
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ ldr r0, =gPkmnJumpVenusaurPal
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, =gPkmnJumpVenusaurGfx
+ str r5, [sp]
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ ldr r1, =gPkmnJumpVenusaurTilemap
+ str r4, [sp]
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ ldr r0, =gPkmnJumpResultsPal
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, =gPkmnJumpResultsGfx
+ str r5, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ ldr r1, =gPkmnJumpResultsTilemap
+ str r4, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ ldr r0, =gPkmnJumpPal3
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, [r6]
+ movs r0, 0xD3
+ lsls r0, 1
+ adds r1, r0
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x20
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ bl sub_802DB8C
+ movs r0, 0
+ bl sub_802DD64
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0xE0
+ bl sub_8098C6C
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x2
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ bl sub_8199D98
+ b _0802D2CC
+ .pool
+_0802D298:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D2DA
+ bl sub_802DBF8
+ ldr r0, [r6]
+ bl sub_802CE9C
+ ldr r0, [r6]
+ movs r1, 0x6
+ bl sub_802CF50
+ movs r0, 0x3
+ bl ShowBg
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ movs r0, 0x1
+ bl HideBg
+_0802D2CC:
+ ldr r1, [r6]
+ ldrh r0, [r1, 0x4]
+ adds r0, 0x1
+ strh r0, [r1, 0x4]
+ b _0802D2DA
+_0802D2D6:
+ movs r0, 0x1
+ str r0, [r1]
+_0802D2DA:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802D150
+
+ thumb_func_start sub_802D2E4
+sub_802D2E4: @ 802D2E4
+ push {r4,lr}
+ ldr r4, =gUnknown_02022D00
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0x1
+ beq _0802D310
+ cmp r0, 0x1
+ bgt _0802D300
+ cmp r0, 0
+ beq _0802D30A
+ b _0802D34A
+ .pool
+_0802D300:
+ cmp r0, 0x2
+ beq _0802D322
+ cmp r0, 0x3
+ beq _0802D33A
+ b _0802D34A
+_0802D30A:
+ bl sub_802DE1C
+ b _0802D330
+_0802D310:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D34A
+ movs r0, 0
+ bl sub_802DF70
+ b _0802D330
+_0802D322:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D34A
+ bl sub_802DFD4
+_0802D330:
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x4]
+ adds r0, 0x1
+ strh r0, [r1, 0x4]
+ b _0802D34A
+_0802D33A:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D34A
+ ldr r1, [r4]
+ movs r0, 0x1
+ str r0, [r1]
+_0802D34A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802D2E4
+
+ thumb_func_start sub_802D350
+sub_802D350: @ 802D350
+ push {r4,lr}
+ ldr r4, =gUnknown_02022D00
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0x1
+ beq _0802D37C
+ cmp r0, 0x1
+ bgt _0802D36C
+ cmp r0, 0
+ beq _0802D376
+ b _0802D3B6
+ .pool
+_0802D36C:
+ cmp r0, 0x2
+ beq _0802D38E
+ cmp r0, 0x3
+ beq _0802D3A6
+ b _0802D3B6
+_0802D376:
+ bl sub_802DE1C
+ b _0802D39C
+_0802D37C:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D3B6
+ movs r0, 0x1
+ bl sub_802DF70
+ b _0802D39C
+_0802D38E:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D3B6
+ bl sub_802DFD4
+_0802D39C:
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x4]
+ adds r0, 0x1
+ strh r0, [r1, 0x4]
+ b _0802D3B6
+_0802D3A6:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D3B6
+ ldr r1, [r4]
+ movs r0, 0x1
+ str r0, [r1]
+_0802D3B6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802D350
+
+ thumb_func_start sub_802D3BC
+sub_802D3BC: @ 802D3BC
+ push {r4,r5,lr}
+ bl sub_802C8AC
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, =gUnknown_02022D00
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0
+ beq _0802D3DC
+ cmp r0, 0x1
+ beq _0802D410
+ b _0802D43E
+ .pool
+_0802D3DC:
+ movs r4, 0
+ cmp r4, r5
+ bge _0802D3F8
+_0802D3E2:
+ ldr r0, =gUnknown_02022D00
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ adds r0, 0x1C
+ adds r0, r1
+ ldrb r0, [r0]
+ bl ClearWindowTilemap
+ adds r4, 0x1
+ cmp r4, r5
+ blt _0802D3E2
+_0802D3F8:
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldr r0, =gUnknown_02022D00
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x4]
+ adds r0, 0x1
+ strh r0, [r1, 0x4]
+ b _0802D43E
+ .pool
+_0802D410:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D43E
+ movs r4, 0
+ cmp r4, r5
+ bge _0802D436
+_0802D420:
+ ldr r0, =gUnknown_02022D00
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ adds r0, 0x1C
+ adds r0, r1
+ ldrb r0, [r0]
+ bl RemoveWindow
+ adds r4, 0x1
+ cmp r4, r5
+ blt _0802D420
+_0802D436:
+ ldr r0, =gUnknown_02022D00
+ ldr r1, [r0]
+ movs r0, 0x1
+ str r0, [r1]
+_0802D43E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802D3BC
+
+ thumb_func_start sub_802D448
+sub_802D448: @ 802D448
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r5, =gUnknown_02022D00
+ ldr r0, [r5]
+ ldrh r4, [r0, 0x4]
+ cmp r4, 0x1
+ beq _0802D4A4
+ cmp r4, 0x1
+ bgt _0802D464
+ cmp r4, 0
+ beq _0802D46A
+ b _0802D4EC
+ .pool
+_0802D464:
+ cmp r4, 0x2
+ beq _0802D4DC
+ b _0802D4EC
+_0802D46A:
+ movs r0, 0x1
+ movs r1, 0x8
+ movs r2, 0x14
+ movs r3, 0x2
+ bl sub_802DA9C
+ ldr r1, [r5]
+ strh r0, [r1, 0x12]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gText_WantToPlayAgain2
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x12]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _0802D4D2
+ .pool
+_0802D4A4:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D4EC
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x12]
+ bl PutWindowTilemap
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x12]
+ movs r1, 0x1
+ movs r2, 0xE
+ bl sub_8098858
+ movs r0, 0x17
+ movs r1, 0x7
+ movs r2, 0
+ bl sub_802DB18
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+_0802D4D2:
+ ldr r1, [r5]
+ ldrh r0, [r1, 0x4]
+ adds r0, 0x1
+ strh r0, [r1, 0x4]
+ b _0802D4EC
+_0802D4DC:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D4EC
+ ldr r1, [r5]
+ movs r0, 0x1
+ str r0, [r1]
+_0802D4EC:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802D448
+
+ thumb_func_start sub_802D4F4
+sub_802D4F4: @ 802D4F4
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r5, =gUnknown_02022D00
+ ldr r0, [r5]
+ ldrh r4, [r0, 0x4]
+ cmp r4, 0x1
+ beq _0802D550
+ cmp r4, 0x1
+ bgt _0802D510
+ cmp r4, 0
+ beq _0802D516
+ b _0802D58E
+ .pool
+_0802D510:
+ cmp r4, 0x2
+ beq _0802D57E
+ b _0802D58E
+_0802D516:
+ movs r0, 0x2
+ movs r1, 0x7
+ movs r2, 0x1A
+ movs r3, 0x4
+ bl sub_802DA9C
+ ldr r1, [r5]
+ strh r0, [r1, 0x12]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gText_SavingDontTurnOffPower
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x12]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _0802D574
+ .pool
+_0802D550:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D58E
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x12]
+ bl PutWindowTilemap
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x12]
+ movs r1, 0x1
+ movs r2, 0xE
+ bl sub_8098858
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+_0802D574:
+ ldr r1, [r5]
+ ldrh r0, [r1, 0x4]
+ adds r0, 0x1
+ strh r0, [r1, 0x4]
+ b _0802D58E
+_0802D57E:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D58E
+ ldr r1, [r5]
+ movs r0, 0x1
+ str r0, [r1]
+_0802D58E:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802D4F4
+
+ thumb_func_start sub_802D598
+sub_802D598: @ 802D598
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_02022D00
+ ldr r0, [r5]
+ ldrh r4, [r0, 0x4]
+ cmp r4, 0
+ beq _0802D5B0
+ cmp r4, 0x1
+ beq _0802D5C8
+ b _0802D5DE
+ .pool
+_0802D5B0:
+ bl sub_802DA14
+ bl sub_8198C78
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldr r1, [r5]
+ ldrh r0, [r1, 0x4]
+ adds r0, 0x1
+ strh r0, [r1, 0x4]
+ b _0802D5DE
+_0802D5C8:
+ bl sub_802DA44
+ cmp r0, 0
+ bne _0802D5DE
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D5DE
+ ldr r0, [r5]
+ str r4, [r0]
+_0802D5DE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802D598
+
+ thumb_func_start sub_802D5E4
+sub_802D5E4: @ 802D5E4
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r5, =gUnknown_02022D00
+ ldr r0, [r5]
+ ldrh r4, [r0, 0x4]
+ cmp r4, 0x1
+ beq _0802D640
+ cmp r4, 0x1
+ bgt _0802D600
+ cmp r4, 0
+ beq _0802D606
+ b _0802D67E
+ .pool
+_0802D600:
+ cmp r4, 0x2
+ beq _0802D66E
+ b _0802D67E
+_0802D606:
+ movs r0, 0x2
+ movs r1, 0x8
+ movs r2, 0x16
+ movs r3, 0x4
+ bl sub_802DA9C
+ ldr r1, [r5]
+ strh r0, [r1, 0x12]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gText_SomeoneDroppedOut2
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x12]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _0802D664
+ .pool
+_0802D640:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D67E
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x12]
+ bl PutWindowTilemap
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x12]
+ movs r1, 0x1
+ movs r2, 0xE
+ bl sub_8098858
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+_0802D664:
+ ldr r1, [r5]
+ ldrh r0, [r1, 0x4]
+ adds r0, 0x1
+ strh r0, [r1, 0x4]
+ b _0802D67E
+_0802D66E:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D67E
+ ldr r1, [r5]
+ movs r0, 0x1
+ str r0, [r1]
+_0802D67E:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802D5E4
+
+ thumb_func_start sub_802D688
+sub_802D688: @ 802D688
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r5, =gUnknown_02022D00
+ ldr r0, [r5]
+ ldrh r4, [r0, 0x4]
+ cmp r4, 0x1
+ beq _0802D6E4
+ cmp r4, 0x1
+ bgt _0802D6A4
+ cmp r4, 0
+ beq _0802D6AA
+ b _0802D722
+ .pool
+_0802D6A4:
+ cmp r4, 0x2
+ beq _0802D712
+ b _0802D722
+_0802D6AA:
+ movs r0, 0x7
+ movs r1, 0xA
+ movs r2, 0x10
+ movs r3, 0x2
+ bl sub_802DA9C
+ ldr r1, [r5]
+ strh r0, [r1, 0x12]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gText_CommunicationStandby4
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x12]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _0802D708
+ .pool
+_0802D6E4:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D722
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x12]
+ bl PutWindowTilemap
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x12]
+ movs r1, 0x1
+ movs r2, 0xE
+ bl sub_8098858
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+_0802D708:
+ ldr r1, [r5]
+ ldrh r0, [r1, 0x4]
+ adds r0, 0x1
+ strh r0, [r1, 0x4]
+ b _0802D722
+_0802D712:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D722
+ ldr r1, [r5]
+ movs r0, 0x1
+ str r0, [r1]
+_0802D722:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802D688
+
+ thumb_func_start sub_802D72C
+sub_802D72C: @ 802D72C
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_02022D00
+ ldr r0, [r5]
+ ldrh r4, [r0, 0x4]
+ cmp r4, 0
+ beq _0802D744
+ cmp r4, 0x1
+ beq _0802D752
+ b _0802D75E
+ .pool
+_0802D744:
+ bl sub_802D044
+ ldr r1, [r5]
+ ldrh r0, [r1, 0x4]
+ adds r0, 0x1
+ strh r0, [r1, 0x4]
+ b _0802D75E
+_0802D752:
+ bl sub_802D068
+ cmp r0, 0
+ bne _0802D75E
+ ldr r0, [r5]
+ str r4, [r0]
+_0802D75E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802D72C
+
+ thumb_func_start sub_802D764
+sub_802D764: @ 802D764
+ push {lr}
+ ldr r1, =gUnknown_02022D00
+ ldr r0, [r1]
+ movs r2, 0
+ strb r2, [r0, 0xA]
+ ldr r0, [r1]
+ strb r2, [r0, 0xB]
+ ldr r2, [r1]
+ movs r0, 0x6
+ strb r0, [r2, 0xC]
+ ldr r0, [r1]
+ ldrb r0, [r0, 0xC]
+ bl sub_802DC9C
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802D764
+
+ thumb_func_start sub_802D788
+sub_802D788: @ 802D788
+ push {r4,lr}
+ ldr r0, =gUnknown_02022D00
+ ldr r2, [r0]
+ ldrb r3, [r2, 0xA]
+ adds r4, r0, 0
+ cmp r3, 0
+ beq _0802D7A0
+ cmp r3, 0x1
+ beq _0802D7DA
+ b _0802D7DE
+ .pool
+_0802D7A0:
+ ldrb r0, [r2, 0xB]
+ adds r0, 0x1
+ strb r0, [r2, 0xB]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0xA
+ bls _0802D7CA
+ strb r3, [r1, 0xB]
+ ldr r0, [r4]
+ ldrb r1, [r0, 0xC]
+ adds r1, 0x1
+ strb r1, [r0, 0xC]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0xC]
+ cmp r0, 0x9
+ bls _0802D7CA
+ strb r3, [r1, 0xC]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0xA]
+ adds r0, 0x1
+ strb r0, [r1, 0xA]
+_0802D7CA:
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xC]
+ bl sub_802DC9C
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xC]
+ cmp r0, 0x7
+ bne _0802D7DE
+_0802D7DA:
+ movs r0, 0
+ b _0802D7E0
+_0802D7DE:
+ movs r0, 0x1
+_0802D7E0:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802D788
+
+ thumb_func_start sub_802D7E8
+sub_802D7E8: @ 802D7E8
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r1, 0
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r5, =gUnknown_02022D00
+ ldr r1, [r5]
+ adds r1, 0x26
+ adds r2, r4, 0
+ bl CopyItemNameHandlePlural
+ ldr r0, [r5]
+ adds r0, 0x66
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ bl UnkTextUtil_Reset
+ ldr r1, [r5]
+ adds r1, 0x26
+ movs r0, 0
+ bl UnkTextUtil_SetPtrI
+ ldr r1, [r5]
+ adds r1, 0x66
+ movs r0, 0x1
+ bl UnkTextUtil_SetPtrI
+ ldr r0, [r5]
+ adds r0, 0xA6
+ ldr r1, =gText_AwesomeWonF701F700
+ bl UnkTextUtil_StringExpandPlaceholders
+ movs r0, 0x4
+ movs r1, 0x8
+ movs r2, 0x16
+ movs r3, 0x4
+ bl sub_802DA9C
+ ldr r2, [r5]
+ movs r4, 0
+ movs r3, 0
+ strh r0, [r2, 0x12]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, 0xA6
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ str r3, [sp, 0x8]
+ movs r1, 0x1
+ bl PrintTextOnWindow
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x12]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldr r1, [r5]
+ ldr r0, =0x0000016f
+ strh r0, [r1, 0x14]
+ strb r4, [r1, 0xD]
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802D7E8
+
+ thumb_func_start sub_802D884
+sub_802D884: @ 802D884
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, =gUnknown_02022D00
+ ldr r1, [r4]
+ adds r1, 0x26
+ bl CopyItemName
+ bl UnkTextUtil_Reset
+ ldr r1, [r4]
+ adds r1, 0x26
+ movs r0, 0
+ bl UnkTextUtil_SetPtrI
+ ldr r0, [r4]
+ adds r0, 0xA6
+ ldr r1, =gText_FilledStorageSpace2
+ bl UnkTextUtil_StringExpandPlaceholders
+ movs r0, 0x4
+ movs r1, 0x8
+ movs r2, 0x16
+ movs r3, 0x4
+ bl sub_802DA9C
+ ldr r2, [r4]
+ movs r6, 0
+ movs r5, 0
+ strh r0, [r2, 0x12]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, 0xA6
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x12]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldr r0, [r4]
+ strh r5, [r0, 0x14]
+ strb r6, [r0, 0xD]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802D884
+
+ thumb_func_start sub_802D8FC
+sub_802D8FC: @ 802D8FC
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, =gUnknown_02022D00
+ ldr r1, [r4]
+ adds r1, 0x26
+ bl CopyItemName
+ bl UnkTextUtil_Reset
+ ldr r1, [r4]
+ adds r1, 0x26
+ movs r0, 0
+ bl UnkTextUtil_SetPtrI
+ ldr r0, [r4]
+ adds r0, 0xA6
+ ldr r1, =gText_CantHoldMore
+ bl UnkTextUtil_StringExpandPlaceholders
+ movs r0, 0x4
+ movs r1, 0x9
+ movs r2, 0x16
+ movs r3, 0x2
+ bl sub_802DA9C
+ ldr r2, [r4]
+ movs r6, 0
+ movs r5, 0
+ strh r0, [r2, 0x12]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, 0xA6
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x12]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldr r0, [r4]
+ strh r5, [r0, 0x14]
+ strb r6, [r0, 0xD]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802D8FC
+
+ thumb_func_start sub_802D974
+sub_802D974: @ 802D974
+ push {r4,lr}
+ ldr r4, =gUnknown_02022D00
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xD]
+ cmp r0, 0x1
+ beq _0802D9C8
+ cmp r0, 0x1
+ bgt _0802D990
+ cmp r0, 0
+ beq _0802D99A
+ b _0802DA0C
+ .pool
+_0802D990:
+ cmp r0, 0x2
+ beq _0802D9EE
+ cmp r0, 0x3
+ beq _0802DA02
+ b _0802DA0C
+_0802D99A:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802DA0C
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x12]
+ bl PutWindowTilemap
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x12]
+ movs r1, 0x1
+ movs r2, 0xE
+ bl sub_8098858
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldr r1, [r4]
+ ldrb r0, [r1, 0xD]
+ adds r0, 0x1
+ strb r0, [r1, 0xD]
+ b _0802DA0C
+_0802D9C8:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802DA0C
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x14]
+ cmp r0, 0
+ bne _0802D9E0
+ ldrb r0, [r1, 0xD]
+ adds r0, 0x2
+ b _0802DA00
+_0802D9E0:
+ ldrh r0, [r1, 0x14]
+ bl PlayFanfare
+ ldr r1, [r4]
+ ldrb r0, [r1, 0xD]
+ adds r0, 0x1
+ strb r0, [r1, 0xD]
+_0802D9EE:
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802DA0C
+ ldr r0, =gUnknown_02022D00
+ ldr r1, [r0]
+ ldrb r0, [r1, 0xD]
+ adds r0, 0x1
+_0802DA00:
+ strb r0, [r1, 0xD]
+_0802DA02:
+ movs r0, 0
+ b _0802DA0E
+ .pool
+_0802DA0C:
+ movs r0, 0x1
+_0802DA0E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802D974
+
+ thumb_func_start sub_802DA14
+sub_802DA14: @ 802DA14
+ push {r4,lr}
+ ldr r4, =gUnknown_02022D00
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x12]
+ cmp r0, 0xFF
+ beq _0802DA38
+ lsls r0, 24
+ lsrs r0, 24
+ bl rbox_fill_rectangle
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x12]
+ movs r1, 0x1
+ bl CopyWindowToVram
+ ldr r1, [r4]
+ movs r0, 0
+ strb r0, [r1, 0xD]
+_0802DA38:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802DA14
+
+ thumb_func_start sub_802DA44
+sub_802DA44: @ 802DA44
+ push {r4,lr}
+ ldr r4, =gUnknown_02022D00
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x12]
+ cmp r0, 0xFF
+ bne _0802DA58
+_0802DA50:
+ movs r0, 0
+ b _0802DA84
+ .pool
+_0802DA58:
+ ldrb r0, [r1, 0xD]
+ cmp r0, 0
+ bne _0802DA7E
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802DA82
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x12]
+ bl RemoveWindow
+ ldr r1, [r4]
+ movs r0, 0xFF
+ strh r0, [r1, 0x12]
+ ldrb r0, [r1, 0xD]
+ adds r0, 0x1
+ strb r0, [r1, 0xD]
+ b _0802DA50
+_0802DA7E:
+ cmp r0, 0x1
+ beq _0802DA50
+_0802DA82:
+ movs r0, 0x1
+_0802DA84:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802DA44
+
+ thumb_func_start sub_802DA8C
+sub_802DA8C: @ 802DA8C
+ push {lr}
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802DA8C
+
+ thumb_func_start sub_802DA9C
+sub_802DA9C: @ 802DA9C
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r6, =0xffffff00
+ ldr r4, [sp]
+ ands r4, r6
+ lsls r0, 24
+ lsrs r0, 16
+ ldr r5, =0xffff00ff
+ ands r4, r5
+ orrs r4, r0
+ lsls r1, 24
+ lsrs r1, 8
+ ldr r0, =0xff00ffff
+ ands r4, r0
+ orrs r4, r1
+ lsls r2, 24
+ ldr r0, =0x00ffffff
+ ands r4, r0
+ orrs r4, r2
+ str r4, [sp]
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, [sp, 0x4]
+ ands r0, r6
+ orrs r0, r3
+ ands r0, r5
+ movs r1, 0xF0
+ lsls r1, 4
+ orrs r0, r1
+ ldr r1, =0x0000ffff
+ ands r0, r1
+ movs r1, 0x86
+ lsls r1, 15
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl AddWindow
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, r4, 24
+ lsrs r0, 24
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ adds r0, r4, 0
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802DA9C
+
+ thumb_func_start sub_802DB18
+sub_802DB18: @ 802DB18
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r3, r2, 0
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r5, =0xffffff00
+ ldr r2, [sp]
+ ands r2, r5
+ lsls r0, 24
+ lsrs r0, 16
+ ldr r4, =0xffff00ff
+ ands r2, r4
+ orrs r2, r0
+ lsls r1, 24
+ lsrs r1, 8
+ ldr r0, =0xff00ffff
+ ands r2, r0
+ orrs r2, r1
+ ldr r0, =0x00ffffff
+ ands r2, r0
+ movs r0, 0xC0
+ lsls r0, 19
+ orrs r2, r0
+ str r2, [sp]
+ ldr r0, [sp, 0x4]
+ ands r0, r5
+ movs r1, 0x4
+ orrs r0, r1
+ ands r0, r4
+ movs r1, 0x80
+ lsls r1, 2
+ orrs r0, r1
+ ldr r1, =0x0000ffff
+ ands r0, r1
+ movs r1, 0xAC
+ lsls r1, 14
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ movs r1, 0x1
+ movs r2, 0xD
+ bl CreateYesNoMenu
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802DB18
+
+ thumb_func_start sub_802DB8C
+sub_802DB8C: @ 802DB8C
+ push {r4,lr}
+ sub sp, 0x10
+ ldr r1, =gUnknown_082FE1DC
+ add r0, sp, 0xC
+ movs r2, 0x3
+ bl memcpy
+ movs r0, 0
+ bl PutWindowTilemap
+ movs r0, 0x1
+ bl PutWindowTilemap
+ movs r0, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x1
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ add r0, sp, 0xC
+ str r0, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r0, =gText_SpacePoints2
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl box_print
+ add r0, sp, 0xC
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ ldr r0, =gText_SpaceTimes3
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl box_print
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802DB8C
+
+ thumb_func_start sub_802DBF8
+sub_802DBF8: @ 802DBF8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ bl sub_802C8AC
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ ldr r1, =gUnknown_082FE260
+ subs r0, 0x2
+ lsls r0, 2
+ adds r0, r1
+ ldr r5, [r0]
+ movs r6, 0
+ cmp r6, r10
+ bge _0802DC62
+ ldr r0, =gMonFrontPicCoords
+ mov r9, r0
+ ldr r1, =gUnknown_02022D00
+ mov r8, r1
+_0802DC26:
+ lsls r4, r6, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_802C8C8
+ adds r1, r0, 0
+ ldrh r0, [r1]
+ lsls r0, 2
+ add r0, r9
+ ldrb r3, [r0, 0x1]
+ mov r2, r8
+ ldr r0, [r2]
+ movs r7, 0
+ ldrsh r2, [r5, r7]
+ adds r3, 0x70
+ str r4, [sp]
+ bl sub_802C9D4
+ mov r1, r8
+ ldr r0, [r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ movs r2, 0x70
+ adds r3, r4, 0
+ bl sub_802CE48
+ adds r5, 0x2
+ adds r6, 0x1
+ cmp r6, r10
+ blt _0802DC26
+_0802DC62:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802DBF8
+
+ thumb_func_start sub_802DC80
+sub_802DC80: @ 802DC80
+ ldr r2, =gUnknown_02022D00
+ ldr r2, [r2]
+ lsls r0, 2
+ ldr r3, =0x000081a8
+ adds r2, r3
+ adds r2, r0
+ ldr r0, [r2]
+ strh r1, [r0, 0x26]
+ bx lr
+ .pool
+ thumb_func_end sub_802DC80
+
+ thumb_func_start sub_802DC9C
+sub_802DC9C: @ 802DC9C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gUnknown_02022D00
+ ldr r0, [r0]
+ adds r1, r4, 0
+ bl sub_802CF50
+ ldr r0, =gUnknown_082FE1DF
+ adds r4, r0
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 13
+ movs r0, 0x2
+ movs r2, 0
+ bl ChangeBgY
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802DC9C
+
+ thumb_func_start sub_802DCCC
+sub_802DCCC: @ 802DCCC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r5, 0
+ movs r6, 0
+_0802DCD6:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0802DCEA
+ ldr r0, =gUnknown_02022D00
+ ldr r0, [r0]
+ adds r1, r5, 0
+ bl sub_802CB14
+ adds r6, 0x1
+_0802DCEA:
+ lsrs r4, 1
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _0802DCD6
+ subs r0, r6, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_802E00C
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802DCCC
+
+ thumb_func_start sub_802DD08
+sub_802DD08: @ 802DD08
+ push {r4,lr}
+ sub sp, 0x10
+ mov r1, sp
+ movs r0, 0x40
+ strb r0, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ movs r0, 0x8
+ strb r0, [r1, 0x2]
+ movs r0, 0x6C
+ strh r0, [r1, 0x4]
+ movs r4, 0x6
+ strh r4, [r1, 0x6]
+ ldr r0, =gUnknown_082FE1EC
+ str r0, [sp, 0x8]
+ ldr r0, =gUnknown_082FE1F4
+ str r0, [sp, 0xC]
+ movs r0, 0x2
+ bl sub_8034C54
+ movs r0, 0
+ movs r1, 0
+ mov r2, sp
+ bl sub_8034D14
+ mov r1, sp
+ movs r0, 0x4
+ strb r0, [r1, 0x1]
+ movs r0, 0x1E
+ strh r0, [r1, 0x4]
+ mov r0, sp
+ strh r4, [r0, 0x6]
+ movs r0, 0x1
+ movs r1, 0
+ mov r2, sp
+ bl sub_8034D14
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802DD08
+
+ thumb_func_start sub_802DD64
+sub_802DD64: @ 802DD64
+ push {lr}
+ adds r1, r0, 0
+ movs r0, 0
+ bl sub_8035044
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802DD64
+
+ thumb_func_start sub_802DD74
+sub_802DD74: @ 802DD74
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x1
+ bl sub_8035044
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802DD74
+
+ thumb_func_start sub_802DD88
+sub_802DD88: @ 802DD88
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, =gUnknown_02022D00
+ ldr r0, [r0]
+ bl sub_802CBF0
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802DD88
+
+ thumb_func_start sub_802DDA0
+sub_802DDA0: @ 802DDA0
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, =gUnknown_02022D00
+ ldr r0, [r0]
+ bl sub_802CC88
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802DDA0
+
+ thumb_func_start sub_802DDB8
+sub_802DDB8: @ 802DDB8
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, =gUnknown_02022D00
+ ldr r0, [r0]
+ bl sub_802CC18
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802DDB8
+
+ thumb_func_start sub_802DDCC
+sub_802DDCC: @ 802DDCC
+ push {lr}
+ ldr r0, =gUnknown_02022D00
+ ldr r0, [r0]
+ bl sub_802CCB0
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802DDCC
+
+ thumb_func_start sub_802DDE0
+sub_802DDE0: @ 802DDE0
+ push {lr}
+ ldr r0, =gUnknown_02022D00
+ ldr r0, [r0]
+ bl sub_802CD3C
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802DDE0
+
+ thumb_func_start sub_802DDF4
+sub_802DDF4: @ 802DDF4
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, =gUnknown_02022D00
+ ldr r0, [r0]
+ bl sub_802CD70
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802DDF4
+
+ thumb_func_start sub_802DE08
+sub_802DE08: @ 802DE08
+ push {lr}
+ ldr r0, =gUnknown_02022D00
+ ldr r0, [r0]
+ bl sub_802CD98
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802DE08
+
+ thumb_func_start sub_802DE1C
+sub_802DE1C: @ 802DE1C
+ push {r4-r7,lr}
+ sub sp, 0x8
+ bl sub_802C8AC
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r1, =gUnknown_082FE234
+ subs r0, r7, 0x2
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+ ldr r2, =0xffffff00
+ ldr r0, [sp]
+ ands r0, r2
+ ldr r1, =0x00ffffff
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 20
+ orrs r0, r1
+ str r0, [sp]
+ ldr r0, [sp, 0x4]
+ ands r0, r2
+ movs r1, 0x2
+ orrs r0, r1
+ ldr r1, =0xffff00ff
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 2
+ orrs r0, r1
+ ldr r1, =0x0000ffff
+ ands r0, r1
+ movs r1, 0xAC
+ lsls r1, 14
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ movs r5, 0
+ cmp r5, r7
+ bge _0802DEAC
+ mov r6, sp
+_0802DE6A:
+ ldrb r0, [r4]
+ lsls r0, 8
+ ldr r2, =0xffff00ff
+ ldr r1, [sp]
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp]
+ ldrb r2, [r4, 0x2]
+ lsls r2, 16
+ ldr r0, =0xff00ffff
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp]
+ mov r0, sp
+ bl AddWindow
+ ldr r1, =gUnknown_02022D00
+ ldr r1, [r1]
+ lsls r2, r5, 1
+ adds r1, 0x1C
+ adds r1, r2
+ strh r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ bl ClearWindowTilemap
+ ldrh r0, [r6, 0x6]
+ adds r0, 0x10
+ strh r0, [r6, 0x6]
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, r7
+ blt _0802DE6A
+_0802DEAC:
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802DE1C
+
+ thumb_func_start sub_802DED8
+sub_802DED8: @ 802DED8
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x10
+ adds r5, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ add r0, sp, 0xC
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ strb r3, [r0, 0x2]
+ ldr r6, =gUnknown_02022D00
+ ldr r0, [r6]
+ lsls r1, r5, 1
+ mov r8, r1
+ adds r0, 0x1C
+ add r0, r8
+ ldrb r0, [r0]
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r5, 0
+ bl sub_802C8E8
+ adds r1, r0, 0
+ movs r2, 0x1
+ negs r2, r2
+ mov r9, r2
+ movs r0, 0x1
+ bl GetStringWidth
+ movs r4, 0x40
+ subs r4, r0
+ lsrs r4, 1
+ adds r0, r5, 0
+ bl sub_802C8E8
+ adds r1, r0, 0
+ ldr r0, [r6]
+ adds r0, 0x1C
+ add r0, r8
+ ldrb r0, [r0]
+ lsls r4, 24
+ lsrs r4, 24
+ add r2, sp, 0xC
+ str r2, [sp]
+ mov r2, r9
+ str r2, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl box_print
+ ldr r0, [r6]
+ adds r0, 0x1C
+ add r0, r8
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802DED8
+
+ thumb_func_start sub_802DF70
+sub_802DF70: @ 802DF70
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ bl sub_802C8AC
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r4, 0
+ bne _0802DF9A
+ movs r4, 0
+ cmp r4, r5
+ bge _0802DFCC
+_0802DF86:
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0x3
+ bl sub_802DED8
+ adds r4, 0x1
+ cmp r4, r5
+ blt _0802DF86
+ b _0802DFCC
+_0802DF9A:
+ bl sub_802C8BC
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r4, 0
+ cmp r4, r5
+ bge _0802DFCC
+_0802DFA8:
+ cmp r6, r4
+ beq _0802DFBA
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0x3
+ bl sub_802DED8
+ b _0802DFC6
+_0802DFBA:
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x4
+ movs r3, 0x5
+ bl sub_802DED8
+_0802DFC6:
+ adds r4, 0x1
+ cmp r4, r5
+ blt _0802DFA8
+_0802DFCC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802DF70
+
+ thumb_func_start sub_802DFD4
+sub_802DFD4: @ 802DFD4
+ push {r4,r5,lr}
+ bl sub_802C8AC
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r4, 0
+ cmp r4, r5
+ bge _0802DFFA
+_0802DFE4:
+ ldr r0, =gUnknown_02022D00
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ adds r0, 0x1C
+ adds r0, r1
+ ldrb r0, [r0]
+ bl PutWindowTilemap
+ adds r4, 0x1
+ cmp r4, r5
+ blt _0802DFE4
+_0802DFFA:
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802DFD4
+
+ thumb_func_start sub_802E00C
+sub_802E00C: @ 802E00C
+ push {r4,lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r0, =gUnknown_02022D00
+ ldr r2, [r0]
+ movs r0, 0
+ str r0, [r2, 0x18]
+ lsrs r1, 25
+ lsls r1, 16
+ movs r0, 0x1
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x1
+ ands r4, r0
+ lsls r4, 8
+ subs r4, 0x28
+ lsls r4, 8
+ adds r1, r4, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x1
+ bl ShowBg
+ ldr r0, =sub_802E090
+ movs r1, 0x4
+ bl CreateTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802E00C
+
+ thumb_func_start sub_802E058
+sub_802E058: @ 802E058
+ push {r4,lr}
+ ldr r4, =gUnknown_02022D00
+ ldr r0, [r4]
+ ldr r0, [r0, 0x18]
+ cmp r0, 0x1F
+ bls _0802E06C
+ movs r0, 0
+ b _0802E08A
+ .pool
+_0802E06C:
+ movs r0, 0x1
+ movs r1, 0x80
+ movs r2, 0x1
+ bl ChangeBgY
+ ldr r1, [r4]
+ ldr r0, [r1, 0x18]
+ adds r0, 0x1
+ str r0, [r1, 0x18]
+ cmp r0, 0x1F
+ bls _0802E088
+ movs r0, 0x1
+ bl HideBg
+_0802E088:
+ movs r0, 0x1
+_0802E08A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802E058
+
+ thumb_func_start sub_802E090
+sub_802E090: @ 802E090
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_802E058
+ cmp r0, 0
+ bne _0802E0A4
+ adds r0, r4, 0
+ bl DestroyTask
+_0802E0A4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802E090
+
+ thumb_func_start sub_802E0AC
+sub_802E0AC: @ 802E0AC
+ push {lr}
+ sub sp, 0xC
+ mov r2, sp
+ movs r1, 0x1
+ strb r1, [r2]
+ ldrh r1, [r0]
+ strh r1, [r2, 0x2]
+ ldr r1, [r0, 0x4]
+ str r1, [sp, 0x8]
+ ldr r0, [r0, 0x8]
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl sub_800FE50
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802E0AC
+
+ thumb_func_start sub_802E0D0
+sub_802E0D0: @ 802E0D0
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r1, 0
+ ldr r3, =gRecvCmds
+ lsls r2, r0, 4
+ adds r0, r2, r3
+ ldrh r1, [r0]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ movs r1, 0xBC
+ lsls r1, 6
+ cmp r0, r1
+ bne _0802E100
+ adds r1, r3, 0x2
+ adds r1, r2, r1
+ mov r0, sp
+ movs r2, 0xC
+ bl memcpy
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0802E108
+_0802E100:
+ movs r0, 0
+ b _0802E118
+ .pool
+_0802E108:
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ strh r0, [r4]
+ ldr r0, [sp, 0x8]
+ str r0, [r4, 0x4]
+ ldr r0, [sp, 0x4]
+ str r0, [r4, 0x8]
+ movs r0, 0x1
+_0802E118:
+ add sp, 0xC
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802E0D0
+
+ thumb_func_start sub_802E120
+sub_802E120: @ 802E120
+ push {lr}
+ sub sp, 0xC
+ mov r2, sp
+ movs r1, 0x2
+ strb r1, [r2]
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl sub_800FE50
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802E120
+
+ thumb_func_start sub_802E138
+sub_802E138: @ 802E138
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0xC
+ mov r3, sp
+ movs r2, 0x3
+ strb r2, [r3]
+ ldr r3, [r1, 0x8]
+ lsls r3, 15
+ ldr r2, [sp, 0x8]
+ ldr r4, =0x00007fff
+ mov r8, r4
+ ands r2, r4
+ orrs r2, r3
+ str r2, [sp, 0x8]
+ mov r6, sp
+ ldrb r2, [r1, 0x1]
+ movs r5, 0x1F
+ adds r3, r5, 0
+ ands r3, r2
+ ldrb r4, [r6, 0x3]
+ movs r2, 0x20
+ negs r2, r2
+ ands r2, r4
+ orrs r2, r3
+ strb r2, [r6, 0x3]
+ mov r3, sp
+ ldrb r2, [r1]
+ strb r2, [r3, 0x1]
+ ldrh r2, [r1, 0x2]
+ strh r2, [r3, 0x6]
+ mov r4, sp
+ ldrh r2, [r1, 0x4]
+ mov r1, r8
+ ands r2, r1
+ ldrh r3, [r4, 0x8]
+ ldr r1, =0xffff8000
+ ands r1, r3
+ orrs r1, r2
+ strh r1, [r4, 0x8]
+ mov r2, sp
+ ldrh r1, [r0, 0x10]
+ strb r1, [r2, 0x2]
+ mov r3, sp
+ ldr r1, [r0, 0x14]
+ lsls r1, 5
+ ldrb r2, [r3, 0x3]
+ ands r5, r2
+ orrs r5, r1
+ strb r5, [r3, 0x3]
+ mov r1, sp
+ ldrh r0, [r0, 0xE]
+ strh r0, [r1, 0x4]
+ mov r0, sp
+ bl sub_800FE50
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802E138
+
+ thumb_func_start sub_802E1BC
+sub_802E1BC: @ 802E1BC
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r2, =gRecvCmds
+ ldrh r0, [r2]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r1, r0
+ movs r0, 0xBC
+ lsls r0, 6
+ cmp r1, r0
+ bne _0802E228
+ adds r1, r2, 0x2
+ mov r0, sp
+ movs r2, 0xC
+ bl memcpy
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _0802E228
+ ldr r0, [sp, 0x8]
+ lsrs r0, 15
+ str r0, [r4, 0x8]
+ mov r0, sp
+ ldrb r1, [r0, 0x3]
+ lsls r0, r1, 27
+ lsrs r0, 27
+ strb r0, [r4, 0x1]
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ strb r0, [r4]
+ mov r0, sp
+ ldrh r0, [r0, 0x6]
+ strh r0, [r4, 0x2]
+ mov r0, sp
+ ldrh r0, [r0, 0x8]
+ lsls r0, 17
+ lsrs r0, 17
+ strh r0, [r4, 0x4]
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ strh r0, [r5, 0x10]
+ lsls r1, 24
+ lsrs r1, 29
+ str r1, [r5, 0x14]
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0xE]
+ movs r0, 0x1
+ b _0802E22A
+ .pool
+_0802E228:
+ movs r0, 0
+_0802E22A:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802E1BC
+
+ thumb_func_start sub_802E234
+sub_802E234: @ 802E234
+ push {r4,lr}
+ sub sp, 0xC
+ mov r4, sp
+ movs r3, 0x4
+ strb r3, [r4]
+ ldrh r3, [r0, 0x10]
+ strb r3, [r4, 0x1]
+ ldr r3, [r0, 0x14]
+ strb r3, [r4, 0x2]
+ ldr r3, [r0, 0x18]
+ strb r3, [r4, 0x3]
+ mov r3, sp
+ ldrh r0, [r0, 0xE]
+ strh r0, [r3, 0x4]
+ mov r0, sp
+ strb r1, [r0, 0x6]
+ strh r2, [r0, 0x8]
+ bl sub_800FE50
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802E234
+
+ thumb_func_start sub_802E264
+sub_802E264: @ 802E264
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r3, =gRecvCmds
+ lsls r2, r1, 4
+ adds r0, r2, r3
+ ldrh r1, [r0]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ movs r1, 0xBC
+ lsls r1, 6
+ cmp r0, r1
+ bne _0802E2C4
+ adds r1, r3, 0x2
+ adds r1, r2, r1
+ mov r0, sp
+ movs r2, 0xC
+ bl memcpy
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0802E2C4
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ strh r0, [r4, 0x10]
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ str r0, [r4, 0x14]
+ mov r0, sp
+ ldrb r0, [r0, 0x3]
+ str r0, [r4, 0x18]
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0xE]
+ mov r0, sp
+ ldrb r0, [r0, 0x6]
+ strb r0, [r5]
+ mov r0, sp
+ ldrh r0, [r0, 0x8]
+ strh r0, [r6]
+ movs r0, 0x1
+ b _0802E2C6
+ .pool
+_0802E2C4:
+ movs r0, 0
+_0802E2C6:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802E264
+
+ thumb_func_start sub_802E2D0
+sub_802E2D0: @ 802E2D0
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ ldr r3, =gRecvCmds
+ lsls r2, r1, 4
+ adds r0, r2, r3
+ ldrh r1, [r0]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ movs r1, 0xBC
+ lsls r1, 6
+ cmp r0, r1
+ bne _0802E320
+ adds r1, r3, 0x2
+ adds r1, r2, r1
+ mov r0, sp
+ movs r2, 0xC
+ bl memcpy
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0802E320
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ strh r0, [r4, 0x10]
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ str r0, [r4, 0x14]
+ mov r0, sp
+ ldrb r0, [r0, 0x3]
+ str r0, [r4, 0x18]
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0xE]
+ movs r0, 0x1
+ b _0802E322
+ .pool
+_0802E320:
+ movs r0, 0
+_0802E322:
+ add sp, 0xC
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802E2D0
+
+ thumb_func_start sub_802E32C
+sub_802E32C: @ 802E32C
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r1, 0xFE
+ lsls r1, 1
+ adds r0, r1
+ bx lr
+ .pool
+ thumb_func_end sub_802E32C
+
+ thumb_func_start ResetPokeJumpResults
+ResetPokeJumpResults: @ 802E33C
+ push {lr}
+ bl sub_802E32C
+ movs r1, 0
+ strh r1, [r0]
+ str r1, [r0, 0xC]
+ strh r1, [r0, 0x4]
+ strh r1, [r0, 0x6]
+ str r1, [r0, 0x8]
+ strh r1, [r0, 0x2]
+ pop {r0}
+ bx r0
+ thumb_func_end ResetPokeJumpResults
+
+ thumb_func_start sub_802E354
+sub_802E354: @ 802E354
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ lsls r2, 16
+ lsrs r6, r2, 16
+ bl sub_802E32C
+ adds r1, r0, 0
+ movs r2, 0
+ ldr r0, [r1, 0xC]
+ cmp r0, r4
+ bcs _0802E378
+ ldr r0, =0x00018696
+ cmp r4, r0
+ bhi _0802E378
+ str r4, [r1, 0xC]
+ movs r2, 0x1
+_0802E378:
+ ldrh r0, [r1]
+ cmp r0, r5
+ bcs _0802E388
+ ldr r0, =0x0000270f
+ cmp r5, r0
+ bhi _0802E388
+ strh r5, [r1]
+ movs r2, 0x1
+_0802E388:
+ ldrh r0, [r1, 0x4]
+ cmp r0, r6
+ bcs _0802E398
+ ldr r0, =0x0000270f
+ cmp r6, r0
+ bhi _0802E398
+ strh r6, [r1, 0x4]
+ movs r2, 0x1
+_0802E398:
+ adds r0, r2, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802E354
+
+ thumb_func_start sub_802E3A8
+sub_802E3A8: @ 802E3A8
+ push {lr}
+ bl sub_802E32C
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x6]
+ ldr r0, =0x0000270e
+ cmp r1, r0
+ bhi _0802E3BC
+ adds r0, r1, 0x1
+ strh r0, [r2, 0x6]
+_0802E3BC:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802E3A8
+
+ thumb_func_start sub_802E3C4
+sub_802E3C4: @ 802E3C4
+ push {r4,lr}
+ ldr r4, =sub_802E3E4
+ adds r0, r4, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802E3C4
+
+ thumb_func_start sub_802E3E4
+sub_802E3E4: @ 802E3E4
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r7, r0, r1
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x1
+ beq _0802E4A8
+ cmp r0, 0x1
+ bgt _0802E40C
+ cmp r0, 0
+ beq _0802E416
+ b _0802E4F6
+ .pool
+_0802E40C:
+ cmp r0, 0x2
+ beq _0802E4B4
+ cmp r0, 0x3
+ beq _0802E4DC
+ b _0802E4F6
+_0802E416:
+ ldr r0, =gUnknown_082FE270
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r1, =gText_PkmnJumpRecords
+ movs r0, 0x1
+ movs r2, 0
+ bl GetStringWidth
+ adds r4, r0, 0
+ movs r6, 0
+ ldr r5, =gUnknown_082FE278
+_0802E430:
+ ldr r1, [r5]
+ movs r0, 0x1
+ movs r2, 0
+ bl GetStringWidth
+ adds r0, 0x26
+ cmp r0, r4
+ ble _0802E442
+ adds r4, r0, 0
+_0802E442:
+ adds r5, 0x4
+ adds r6, 0x1
+ cmp r6, 0x2
+ bls _0802E430
+ adds r0, r4, 0x7
+ cmp r0, 0
+ bge _0802E452
+ adds r0, 0x7
+_0802E452:
+ asrs r4, r0, 3
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0802E45E
+ adds r4, 0x1
+_0802E45E:
+ movs r1, 0x1E
+ subs r1, r4
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ lsls r1, 24
+ lsrs r1, 16
+ ldr r2, =0xffff00ff
+ ldr r0, [sp]
+ ands r0, r2
+ orrs r0, r1
+ lsls r2, r4, 24
+ ldr r1, =0x00ffffff
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp]
+ mov r0, sp
+ bl AddWindow
+ strh r0, [r7, 0x2]
+ ldrh r0, [r7, 0x2]
+ adds r1, r4, 0
+ bl sub_802E500
+ ldrb r0, [r7, 0x2]
+ movs r1, 0x3
+ b _0802E4CA
+ .pool
+_0802E4A8:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802E4F6
+ b _0802E4CE
+_0802E4B4:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0802E4F6
+ ldrb r0, [r7, 0x2]
+ bl rbox_fill_rectangle
+ ldrb r0, [r7, 0x2]
+ movs r1, 0x1
+_0802E4CA:
+ bl CopyWindowToVram
+_0802E4CE:
+ ldrh r0, [r7]
+ adds r0, 0x1
+ strh r0, [r7]
+ b _0802E4F6
+ .pool
+_0802E4DC:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802E4F6
+ ldrb r0, [r7, 0x2]
+ bl RemoveWindow
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_0802E4F6:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802E3E4
+
+ thumb_func_start sub_802E500
+sub_802E500: @ 802E500
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ str r1, [sp, 0x1C]
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x18]
+ bl sub_802E32C
+ ldrh r1, [r0]
+ str r1, [sp, 0xC]
+ ldr r1, [r0, 0xC]
+ str r1, [sp, 0x10]
+ ldrh r0, [r0, 0x4]
+ str r0, [sp, 0x14]
+ ldr r0, [sp, 0x18]
+ lsls r4, r0, 24
+ lsrs r4, 24
+ ldr r5, =0x0000021d
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xD0
+ bl box_border_load_tiles_and_pal
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xD
+ bl sub_8098858
+ adds r0, r4, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r5, =gText_PkmnJumpRecords
+ ldr r1, [sp, 0x1C]
+ lsls r2, r1, 3
+ movs r0, 0x1
+ adds r1, r5, 0
+ bl GetStringCenterAlignXOffset
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x1
+ adds r2, r5, 0
+ bl PrintTextOnWindow
+ movs r6, 0
+ adds r7, r4, 0
+ movs r0, 0xFF
+ mov r10, r0
+ mov r9, r6
+ mov r1, sp
+ adds r1, 0xC
+ str r1, [sp, 0x20]
+ movs r0, 0xC8
+ lsls r0, 21
+ mov r8, r0
+ ldr r5, =gStringVar1
+_0802E58A:
+ ldr r1, =gUnknown_082FE278
+ lsls r0, r6, 2
+ adds r0, r1
+ ldr r2, [r0]
+ mov r1, r8
+ lsrs r4, r1, 24
+ str r4, [sp]
+ mov r0, r10
+ str r0, [sp, 0x4]
+ mov r1, r9
+ str r1, [sp, 0x8]
+ adds r0, r7, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldr r0, [sp, 0x20]
+ ldm r0!, {r1}
+ str r0, [sp, 0x20]
+ adds r0, r5, 0
+ movs r2, 0
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ adds r0, r5, 0
+ bl sub_802E620
+ movs r0, 0x1
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetStringWidth
+ ldr r1, [sp, 0x1C]
+ lsls r3, r1, 3
+ subs r3, r0
+ lsls r3, 24
+ lsrs r3, 24
+ str r4, [sp]
+ mov r0, r10
+ str r0, [sp, 0x4]
+ mov r1, r9
+ str r1, [sp, 0x8]
+ adds r0, r7, 0
+ movs r1, 0x1
+ adds r2, r5, 0
+ bl PrintTextOnWindow
+ movs r0, 0x80
+ lsls r0, 21
+ add r8, r0
+ adds r6, 0x1
+ ldr r1, [sp, 0x18]
+ lsls r0, r1, 24
+ cmp r6, 0x2
+ bls _0802E58A
+ lsrs r0, 24
+ bl PutWindowTilemap
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802E500
+
+ thumb_func_start sub_802E620
+sub_802E620: @ 802E620
+ push {lr}
+ adds r1, r0, 0
+ b _0802E628
+_0802E626:
+ adds r1, 0x1
+_0802E628:
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _0802E636
+ cmp r0, 0
+ bne _0802E626
+ movs r0, 0xFF
+ strb r0, [r1]
+_0802E636:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802E620
+
+ thumb_func_start sub_802E63C
+sub_802E63C: @ 802E63C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, =sub_802E6D0
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0, 0x8]
+ strh r5, [r0, 0xA]
+ ldr r0, =gUnknown_082FE748
+ lsls r5, 4
+ adds r5, r0
+ ldr r1, [r5]
+ adds r0, r4, 0
+ bl _call_via_r1
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802E63C
+
+ thumb_func_start sub_802E688
+sub_802E688: @ 802E688
+ push {lr}
+ ldr r0, =sub_802E6D0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _0802E6B4
+ ldr r0, =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x2
+ strh r0, [r1, 0x8]
+ movs r0, 0x1
+ b _0802E6B6
+ .pool
+_0802E6B4:
+ movs r0, 0
+_0802E6B6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802E688
+
+ thumb_func_start sub_802E6BC
+sub_802E6BC: @ 802E6BC
+ push {lr}
+ ldr r0, =sub_802E6D0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802E6BC
+
+ thumb_func_start sub_802E6D0
+sub_802E6D0: @ 802E6D0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ beq _0802E71C
+ cmp r0, 0x3
+ bgt _0802E6F8
+ cmp r0, 0x2
+ beq _0802E6FE
+ b _0802E752
+ .pool
+_0802E6F8:
+ cmp r0, 0x4
+ beq _0802E738
+ b _0802E752
+_0802E6FE:
+ ldr r1, =gUnknown_082FE748
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ lsls r0, 4
+ adds r1, 0x8
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r1
+ movs r0, 0x3
+ strh r0, [r4]
+ b _0802E752
+ .pool
+_0802E71C:
+ ldr r0, =gUnknown_082FE748
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ lsls r1, 4
+ adds r0, 0xC
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _0802E752
+ .pool
+_0802E738:
+ ldr r0, =gUnknown_082FE748
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ lsls r1, 4
+ adds r0, 0x4
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r5, 0
+ bl _call_via_r1
+ adds r0, r5, 0
+ bl DestroyTask
+_0802E752:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802E6D0
+
+ thumb_func_start sub_802E75C
+sub_802E75C: @ 802E75C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ lsls r0, 3
+ ldr r1, =gUnknown_082FE6C8
+ adds r0, r1
+ bl LoadCompressedObjectPic
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ lsls r0, 3
+ ldr r1, =gUnknown_082FE6D8
+ adds r0, r1
+ bl LoadSpritePalette
+ movs r5, 0
+ movs r3, 0x10
+ ldrsh r0, [r4, r3]
+ cmp r5, r0
+ bge _0802E7C4
+_0802E790:
+ movs r0, 0x4
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, =gUnknown_082FE730
+ adds r0, r1
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ movs r3, 0x14
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0xE]
+ bl CreateSprite
+ lsls r1, r5, 1
+ adds r1, r4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x1A]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r5, r0
+ blt _0802E790
+_0802E7C4:
+ movs r5, 0
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r5, r0
+ bge _0802E820
+ movs r7, 0x3
+ movs r3, 0xD
+ negs r3, r3
+ mov r12, r3
+ ldr r6, =gSprites
+_0802E7D8:
+ lsls r0, r5, 1
+ adds r0, r4
+ movs r1, 0x1A
+ ldrsh r0, [r0, r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldrb r1, [r4, 0xC]
+ ands r1, r7
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ mov r0, r12
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r2, 0x30]
+ mov r3, r8
+ strh r3, [r2, 0x34]
+ strh r5, [r2, 0x36]
+ ldrh r0, [r4, 0x1A]
+ strh r0, [r2, 0x38]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r5, r0
+ blt _0802E7D8
+_0802E820:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802E75C
+
+ thumb_func_start sub_802E83C
+sub_802E83C: @ 802E83C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r1
+ movs r5, 0
+ strh r5, [r4, 0x4]
+ strh r5, [r4, 0x6]
+ strh r5, [r4, 0x8]
+ movs r1, 0x3C
+ strh r1, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ movs r1, 0x3
+ strh r1, [r4, 0x10]
+ movs r1, 0x78
+ strh r1, [r4, 0x12]
+ movs r1, 0x58
+ strh r1, [r4, 0x14]
+ adds r1, r4, 0
+ bl sub_802E75C
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, =gSprites
+ adds r0, r5
+ movs r1, 0x4
+ bl StartSpriteAnim
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, =0x0000ffe0
+ strh r1, [r0, 0x24]
+ movs r0, 0x1E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x5
+ bl StartSpriteAnim
+ movs r0, 0x1E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x20
+ strh r1, [r0, 0x24]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802E83C
+
+ thumb_func_start sub_802E8C8
+sub_802E8C8: @ 802E8C8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r1, r0
+ b _0802E8FC
+ .pool
+_0802E8E0:
+ lsls r0, r5, 1
+ adds r0, r4
+ movs r2, 0x1A
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0802E8FC:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r5, r0
+ blt _0802E8E0
+ ldr r1, =gUnknown_082FE6C8
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x6]
+ bl FreeSpriteTilesByTag
+ ldr r1, =gUnknown_082FE6D8
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802E8C8
+
+ thumb_func_start sub_802E938
+sub_802E938: @ 802E938
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r0, 0x34
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r5, r0, r1
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ movs r2, 0xA
+ ldrsh r1, [r5, r2]
+ bl __modsi3
+ cmp r0, 0
+ bne _0802EA4A
+ ldrh r2, [r5, 0x16]
+ movs r3, 0x16
+ ldrsh r1, [r5, r3]
+ movs r3, 0x14
+ ldrsh r0, [r5, r3]
+ cmp r1, r0
+ beq _0802EA4A
+ strh r2, [r5, 0x14]
+ movs r1, 0x32
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x4
+ bhi _0802EA44
+ lsls r0, 2
+ ldr r1, =_0802E984
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0802E984:
+ .4byte _0802E998
+ .4byte _0802E9A6
+ .4byte _0802E9A6
+ .4byte _0802E9BA
+ .4byte _0802EA04
+_0802E998:
+ adds r2, r6, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0802E9A6:
+ movs r0, 0x38
+ bl PlaySE
+ ldrh r1, [r6, 0x32]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl StartSpriteAnim
+ b _0802EA44
+_0802E9BA:
+ movs r0, 0x15
+ bl PlaySE
+ ldrh r1, [r6, 0x32]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl StartSpriteAnim
+ ldr r4, =gSprites
+ movs r2, 0x1C
+ ldrsh r0, [r5, r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r3, 0x1E
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ b _0802EA44
+ .pool
+_0802EA04:
+ adds r1, r6, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r3, =gSprites
+ movs r0, 0x1C
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x1E
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x4
+ strh r0, [r5]
+ b _0802EA4A
+ .pool
+_0802EA44:
+ ldrh r0, [r6, 0x32]
+ adds r0, 0x1
+ strh r0, [r6, 0x32]
+_0802EA4A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802E938
+
+ thumb_func_start sub_802EA50
+sub_802EA50: @ 802EA50
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r5, =gTasks + 0x8
+ adds r6, r4, r5
+ movs r0, 0x38
+ bl PlaySE
+ ldr r2, =gSprites
+ movs r0, 0x1A
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r2, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, =sub_802E938
+ str r1, [r0]
+ movs r0, 0x1A
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ subs r5, 0x8
+ adds r4, r5
+ movs r0, 0x3
+ strh r0, [r4, 0x8]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802EA50
+
+ thumb_func_start sub_802EAB0
+sub_802EAB0: @ 802EAB0
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r1, r0
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802EB14
+ ldr r1, =gRecvCmds
+ ldrh r0, [r1, 0x2]
+ ldr r5, =0x00007fff
+ cmp r0, r5
+ bne _0802EAD8
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x16]
+_0802EAD8:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802EB1A
+ ldrh r0, [r4, 0x18]
+ adds r0, 0x1
+ strh r0, [r4, 0x18]
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0xC
+ bl memset
+ mov r0, sp
+ strh r5, [r0]
+ mov r1, sp
+ ldrh r0, [r4, 0x18]
+ strh r0, [r1, 0x2]
+ mov r0, sp
+ bl sub_800FE50
+ b _0802EB1A
+ .pool
+_0802EB14:
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+_0802EB1A:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802EAB0
+
+ thumb_func_start sub_802EB24
+sub_802EB24: @ 802EB24
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ ldr r0, [sp, 0x18]
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 16
+ lsrs r6, 16
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, =sub_802EB98
+ movs r1, 0x50
+ str r3, [sp]
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xC]
+ strh r5, [r1, 0xE]
+ strh r6, [r1, 0x10]
+ ldr r3, [sp]
+ strh r3, [r1, 0x12]
+ mov r0, r8
+ strh r0, [r1, 0x14]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802EB24
+
+ thumb_func_start sub_802EB84
+sub_802EB84: @ 802EB84
+ push {lr}
+ ldr r0, =sub_802EB98
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802EB84
+
+ thumb_func_start sub_802EB98
+sub_802EB98: @ 802EB98
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r5, r0, r1
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _0802EC08
+ cmp r0, 0x1
+ bgt _0802EBC0
+ cmp r0, 0
+ beq _0802EBC6
+ b _0802EC8A
+ .pool
+_0802EBC0:
+ cmp r0, 0x2
+ beq _0802EC4C
+ b _0802EC8A
+_0802EBC6:
+ ldrh r0, [r5, 0x4]
+ ldrh r1, [r5, 0x6]
+ bl sub_802EF50
+ ldrh r0, [r5, 0x4]
+ ldrh r1, [r5, 0x6]
+ movs r3, 0x8
+ ldrsh r2, [r5, r3]
+ movs r4, 0xA
+ ldrsh r3, [r5, r4]
+ ldrb r4, [r5, 0xC]
+ str r4, [sp]
+ bl sub_802EFA8
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xE]
+ ldrh r0, [r5, 0x4]
+ ldrh r1, [r5, 0x6]
+ movs r3, 0x8
+ ldrsh r2, [r5, r3]
+ movs r4, 0xA
+ ldrsh r3, [r5, r4]
+ ldrb r4, [r5, 0xC]
+ str r4, [sp]
+ adds r4, r5, 0
+ adds r4, 0x10
+ str r4, [sp, 0x4]
+ adds r4, 0x2
+ str r4, [sp, 0x8]
+ bl sub_802EFFC
+ b _0802EC3E
+_0802EC08:
+ ldrb r0, [r5, 0xE]
+ bl sub_802EC98
+ cmp r0, 0
+ bne _0802EC8A
+ ldrb r0, [r5, 0xE]
+ ldrb r1, [r5, 0x10]
+ ldrb r2, [r5, 0x12]
+ bl sub_802EDCC
+ movs r0, 0xE
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =gSprites
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ movs r3, 0xE
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+_0802EC3E:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ b _0802EC8A
+ .pool
+_0802EC4C:
+ ldrb r0, [r5, 0x10]
+ bl sub_802EE30
+ cmp r0, 0
+ bne _0802EC8A
+ movs r4, 0x10
+ ldrsh r1, [r5, r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =gSprites
+ adds r0, r4
+ bl DestroySprite
+ movs r0, 0x12
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldrh r0, [r5, 0x4]
+ bl FreeSpriteTilesByTag
+ ldrh r0, [r5, 0x6]
+ bl FreeSpritePaletteByTag
+ adds r0, r6, 0
+ bl DestroyTask
+_0802EC8A:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802EB98
+
+ thumb_func_start sub_802EC98
+sub_802EC98: @ 802EC98
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =gSprites
+ adds r4, r1, r0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ bls _0802ECB2
+ b _0802EDC4
+_0802ECB2:
+ lsls r0, 2
+ ldr r1, =_0802ECC4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0802ECC4:
+ .4byte _0802ECE4
+ .4byte _0802ECF6
+ .4byte _0802ED1C
+ .4byte _0802ED2C
+ .4byte _0802ED4E
+ .4byte _0802ED86
+ .4byte _0802EDAC
+ .4byte _0802ED82
+_0802ECE4:
+ movs r1, 0x80
+ lsls r1, 4
+ adds r0, r4, 0
+ movs r2, 0x1A
+ bl sub_8007E18
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_0802ECF6:
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0802ED04
+ movs r0, 0x39
+ bl PlaySE
+_0802ED04:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _0802EDC4
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ adds r0, r4, 0
+ movs r1, 0x1
+ b _0802EDA2
+_0802ED1C:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0802EDC4
+ b _0802EDA6
+_0802ED2C:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _0802EDC4
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ b _0802EDC4
+_0802ED4E:
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x4
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _0802EDC4
+ ldrh r1, [r4, 0x36]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ bgt _0802ED7E
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ b _0802EDA6
+_0802ED7E:
+ movs r0, 0x7
+ strh r0, [r4, 0x2E]
+_0802ED82:
+ movs r0, 0
+ b _0802EDC6
+_0802ED86:
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x4
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _0802EDC4
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ adds r0, r4, 0
+ movs r1, 0x3
+_0802EDA2:
+ bl StartSpriteAffineAnim
+_0802EDA6:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ b _0802EDC2
+_0802EDAC:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0802EDC4
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ movs r0, 0x1
+_0802EDC2:
+ strh r0, [r4, 0x2E]
+_0802EDC4:
+ movs r0, 0x1
+_0802EDC6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802EC98
+
+ thumb_func_start sub_802EDCC
+sub_802EDCC: @ 802EDCC
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, =gSprites
+ mov r8, r0
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ adds r5, r4, r0
+ ldr r0, =0x0000ffd8
+ strh r0, [r5, 0x26]
+ lsls r3, r2, 4
+ adds r3, r2
+ lsls r3, 2
+ mov r1, r8
+ adds r2, r3, r1
+ strh r0, [r2, 0x26]
+ adds r5, 0x3E
+ ldrb r6, [r5]
+ movs r1, 0x5
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r6
+ strb r0, [r5]
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ ands r1, r0
+ strb r1, [r2]
+ movs r0, 0x1C
+ add r8, r0
+ add r4, r8
+ ldr r0, =sub_802EE5C
+ str r0, [r4]
+ add r3, r8
+ str r0, [r3]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802EDCC
+
+ thumb_func_start sub_802EE30
+sub_802EE30: @ 802EE30
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0
+ ldr r2, =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r2, 0x1C
+ adds r1, r2
+ ldr r1, [r1]
+ ldr r0, =sub_802EE5C
+ cmp r1, r0
+ bne _0802EE4E
+ movs r3, 0x1
+_0802EE4E:
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802EE30
+
+ thumb_func_start sub_802EE5C
+sub_802EE5C: @ 802EE5C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r5, 0
+ adds r4, 0x2E
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bhi _0802EF46
+ lsls r0, 2
+ ldr r1, =_0802EE7C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0802EE7C:
+ .4byte _0802EE90
+ .4byte _0802EEA0
+ .4byte _0802EEC8
+ .4byte _0802EEFC
+ .4byte _0802EF34
+_0802EE90:
+ movs r0, 0x40
+ strh r0, [r4, 0x8]
+ ldrh r0, [r5, 0x26]
+ lsls r0, 4
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0802EEA0:
+ ldrh r1, [r4, 0x8]
+ ldrh r2, [r4, 0xA]
+ adds r0, r1, r2
+ strh r0, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r5, 0x26]
+ cmp r0, 0
+ blt _0802EF46
+ movs r0, 0x39
+ bl PlaySE
+ movs r0, 0
+ strh r0, [r5, 0x26]
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _0802EF46
+_0802EEC8:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0xC
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7F
+ ble _0802EEE6
+ movs r0, 0x39
+ bl PlaySE
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0802EEE6:
+ ldr r0, =gSineTable
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ lsls r1, 1
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ asrs r0, 4
+ b _0802EF2A
+ .pool
+_0802EEFC:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x10
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7F
+ ble _0802EF1A
+ movs r0, 0x39
+ bl PlaySE
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0802EF1A:
+ ldr r1, =gSineTable
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+_0802EF2A:
+ negs r0, r0
+ strh r0, [r5, 0x26]
+ b _0802EF46
+ .pool
+_0802EF34:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ ble _0802EF46
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r5, 0x1C]
+_0802EF46:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802EE5C
+
+ thumb_func_start sub_802EF50
+sub_802EF50: @ 802EF50
+ push {r4,lr}
+ sub sp, 0x10
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, =gUnknown_082FEBCC
+ ldr r3, [r2, 0x4]
+ ldr r2, [r2]
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ ldr r2, =gUnknown_082FEBD4
+ ldr r3, [r2, 0x4]
+ ldr r2, [r2]
+ str r2, [sp, 0x8]
+ str r3, [sp, 0xC]
+ lsls r0, 16
+ ldr r3, =0x0000ffff
+ ldr r2, [sp, 0x4]
+ ands r2, r3
+ orrs r2, r0
+ str r2, [sp, 0x4]
+ ldr r2, =0xffff0000
+ add r4, sp, 0x8
+ ldr r0, [r4, 0x4]
+ ands r0, r2
+ orrs r0, r1
+ str r0, [r4, 0x4]
+ mov r0, sp
+ bl LoadCompressedObjectPic
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802EF50
+
+ thumb_func_start sub_802EFA8
+sub_802EFA8: @ 802EFA8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x18
+ mov r12, r3
+ ldr r3, [sp, 0x30]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ mov r5, sp
+ ldr r4, =gUnknown_082FEC90
+ ldm r4!, {r3,r6,r7}
+ stm r5!, {r3,r6,r7}
+ ldm r4!, {r3,r6,r7}
+ stm r5!, {r3,r6,r7}
+ mov r4, sp
+ strh r0, [r4]
+ mov r0, sp
+ strh r1, [r0, 0x2]
+ lsls r2, 16
+ asrs r2, 16
+ mov r0, r12
+ lsls r6, r0, 16
+ asrs r6, 16
+ mov r0, sp
+ adds r1, r2, 0
+ adds r2, r6, 0
+ mov r3, r8
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_802EFA8
+
+ thumb_func_start sub_802EFFC
+sub_802EFFC: @ 802EFFC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ mov r12, r3
+ ldr r6, [sp, 0x38]
+ ldr r3, [sp, 0x3C]
+ mov r9, r3
+ ldr r4, [sp, 0x40]
+ mov r8, r4
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r6, 24
+ lsrs r6, 24
+ mov r10, r6
+ mov r4, sp
+ ldr r3, =gUnknown_082FECA8
+ ldm r3!, {r5-r7}
+ stm r4!, {r5-r7}
+ ldm r3!, {r5-r7}
+ stm r4!, {r5-r7}
+ mov r3, sp
+ strh r0, [r3]
+ mov r0, sp
+ strh r1, [r0, 0x2]
+ lsls r2, 16
+ asrs r4, r2, 16
+ ldr r0, =0xffe00000
+ adds r2, r0
+ asrs r2, 16
+ mov r1, r12
+ lsls r5, r1, 16
+ asrs r5, 16
+ mov r0, sp
+ adds r1, r2, 0
+ adds r2, r5, 0
+ mov r3, r10
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r3, r9
+ strh r0, [r3]
+ adds r4, 0x20
+ lsls r4, 16
+ asrs r4, 16
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ mov r3, r10
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r4, r8
+ strh r0, [r4]
+ ldr r2, =gSprites
+ mov r5, r9
+ movs r6, 0
+ ldrsh r1, [r5, r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r3, 0x4
+ orrs r1, r3
+ strb r1, [r0]
+ movs r7, 0
+ ldrsh r1, [r4, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r3
+ strb r1, [r0]
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x1
+ bl StartSpriteAnim
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_802EFFC
+
+ .align 2, 0 @ don't pad with nop