summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/decoration.s7167
-rw-r--r--asm/decoration_inventory.s459
-rwxr-xr-xasm/pokemon_summary_screen.s7826
-rw-r--r--asm/secret_base.s2
-rw-r--r--asm/trader.s10
5 files changed, 15458 insertions, 6 deletions
diff --git a/asm/decoration.s b/asm/decoration.s
new file mode 100644
index 000000000..0798e3165
--- /dev/null
+++ b/asm/decoration.s
@@ -0,0 +1,7167 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8126968
+sub_8126968: @ 8126968
+ push {lr}
+ ldr r3, =gUnknown_0203A173
+ ldrb r0, [r3]
+ cmp r0, 0x7
+ bhi _0812697E
+ ldr r2, =gUnknown_0203A14C
+ ldr r1, =gDecorationInventories
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+_0812697E:
+ ldr r2, =gUnknown_0203A17C
+ ldrb r0, [r2, 0x9]
+ cmp r0, 0
+ bne _08126996
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r3, =0x00001aae
+ adds r1, r0, r3
+ str r1, [r2]
+ ldr r1, =0x00001abe
+ adds r0, r1
+ str r0, [r2, 0x4]
+_08126996:
+ ldrb r0, [r2, 0x9]
+ cmp r0, 0x1
+ bne _081269AC
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r3, =0x0000271c
+ adds r1, r0, r3
+ str r1, [r2]
+ ldr r1, =0x00002728
+ adds r0, r1
+ str r0, [r2, 0x4]
+_081269AC:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8126968
+
+ thumb_func_start sub_81269D4
+sub_81269D4: @ 81269D4
+ push {r4,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, =gUnknown_0203A188
+ adds r4, r1, r0
+ cmp r1, 0
+ bne _08126A28
+ ldr r0, =gUnknown_085A6B90
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r0, =gUnknown_085A6B48
+ movs r1, 0x4
+ bl GetMaxWidthInMenuTable
+ lsls r0, 24
+ ldr r2, =0x00ffffff
+ ldr r1, [sp]
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp]
+ lsrs r0, r1, 24
+ cmp r0, 0x12
+ bls _08126A14
+ adds r0, r2, 0
+ ands r0, r1
+ movs r1, 0x90
+ lsls r1, 21
+ orrs r0, r1
+ str r0, [sp]
+_08126A14:
+ mov r0, sp
+ b _08126A2E
+ .pool
+_08126A28:
+ lsls r0, r1, 3
+ ldr r1, =gUnknown_085A6B90
+ adds r0, r1
+_08126A2E:
+ bl AddWindow
+ strb r0, [r4]
+ ldrb r0, [r4]
+ movs r2, 0x85
+ lsls r2, 2
+ movs r1, 0
+ movs r3, 0xE
+ bl SetWindowBorderStyle
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ ldrb r0, [r4]
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81269D4
+
+ thumb_func_start sub_8126A58
+sub_8126A58: @ 8126A58
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_0203A188
+ adds r4, r0
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8198070
+ ldrb r0, [r4]
+ bl ClearWindowTilemap
+ ldrb r0, [r4]
+ bl RemoveWindow
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8126A58
+
+ thumb_func_start sub_8126A88
+sub_8126A88: @ 8126A88
+ push {r4,lr}
+ movs r0, 0
+ bl sub_81269D4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r2, =gUnknown_085A6B48
+ adds r0, r4, 0
+ movs r1, 0x4
+ bl PrintMenuTable
+ ldr r0, =gUnknown_0203A150
+ ldrb r2, [r0]
+ adds r0, r4, 0
+ movs r1, 0x4
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8126A88
+
+ thumb_func_start sub_8126ABC
+sub_8126ABC: @ 8126ABC
+ push {lr}
+ ldr r1, =gUnknown_0203A150
+ movs r0, 0
+ strb r0, [r1]
+ bl ScriptContext2_Enable
+ bl sub_8126A88
+ bl sub_8126C08
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8126ABC
+
+ thumb_func_start sub_8126AD8
+sub_8126AD8: @ 8126AD8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8126ABC
+ ldr r2, =gUnknown_0203A17C
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r3, =0x00001aae
+ adds r1, r0, r3
+ str r1, [r2]
+ ldr r1, =0x00001abe
+ adds r0, r1
+ str r0, [r2, 0x4]
+ movs r1, 0
+ movs r0, 0x10
+ strb r0, [r2, 0x8]
+ strb r1, [r2, 0x9]
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_8126B80
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8126AD8
+
+ thumb_func_start sub_8126B2C
+sub_8126B2C: @ 8126B2C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8126ABC
+ ldr r2, =gUnknown_0203A17C
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r3, =0x0000271c
+ adds r1, r0, r3
+ str r1, [r2]
+ ldr r1, =0x00002728
+ adds r0, r1
+ str r0, [r2, 0x4]
+ movs r0, 0xC
+ strb r0, [r2, 0x8]
+ movs r0, 0x1
+ strb r0, [r2, 0x9]
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_8126B80
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8126B2C
+
+ thumb_func_start sub_8126B80
+sub_8126B80: @ 8126B80
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08126C00
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl ProcessMenuInput
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ beq _08126BD8
+ adds r0, 0x1
+ cmp r1, r0
+ beq _08126BF4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, =gUnknown_085A6B48
+ ldr r0, =gUnknown_0203A150
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _08126C00
+ .pool
+_08126BD8:
+ bl GetMenuCursorPos
+ ldr r1, =gUnknown_0203A150
+ strb r0, [r1]
+ lsls r0, r4, 24
+ asrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _08126C00
+ bl sub_8126C08
+ b _08126C00
+ .pool
+_08126BF4:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_8126D6C
+_08126C00:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8126B80
+
+ thumb_func_start sub_8126C08
+sub_8126C08: @ 8126C08
+ push {lr}
+ sub sp, 0x10
+ movs r0, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r1, =gUnknown_085A6B68
+ ldr r0, =gUnknown_0203A150
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, [r0]
+ 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 AddTextPrinterParametrized
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8126C08
+
+ thumb_func_start sub_8126C48
+sub_8126C48: @ 8126C48
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_8161B10
+ lsls r0, 24
+ cmp r0, 0
+ bne _08126C7C
+ ldr r4, =gStringVar4
+ ldr r1, =gText_NoDecorations
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, =sub_8126DA4
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl DisplayItemMessageOnField
+ b _08126C96
+ .pool
+_08126C7C:
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0
+ strh r1, [r0, 0x1E]
+ ldr r0, =gUnknown_0203A173
+ strb r2, [r0]
+ adds r0, r5, 0
+ bl sub_8126DCC
+_08126C96:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8126C48
+
+ thumb_func_start sub_8126CA4
+sub_8126CA4: @ 8126CA4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_81299AC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08126CD8
+ ldr r4, =gStringVar4
+ ldr r1, =gText_NoDecorationsInUse
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, =sub_8126DA4
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl DisplayItemMessageOnField
+ b _08126D00
+ .pool
+_08126CD8:
+ movs r0, 0
+ bl sub_8126A58
+ movs r0, 0
+ movs r1, 0
+ bl sub_8197434
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r1, =sub_8129ABC
+ str r1, [r0]
+_08126D00:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8126CA4
+
+ thumb_func_start sub_8126D10
+sub_8126D10: @ 8126D10
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_8161B10
+ lsls r0, 24
+ cmp r0, 0
+ bne _08126D44
+ ldr r4, =gStringVar4
+ ldr r1, =gText_NoDecorations
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, =sub_8126DA4
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl DisplayItemMessageOnField
+ b _08126D5E
+ .pool
+_08126D44:
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x1
+ strh r1, [r0, 0x1E]
+ ldr r0, =gUnknown_0203A173
+ strb r2, [r0]
+ adds r0, r5, 0
+ bl sub_8126DCC
+_08126D5E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8126D10
+
+ thumb_func_start sub_8126D6C
+sub_8126D6C: @ 8126D6C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ bl sub_8126A58
+ ldr r0, =gUnknown_0203A17C
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0
+ bne _08126D98
+ ldr r0, =gUnknown_0823B4E8
+ bl ScriptContext1_SetupScript
+ adds r0, r4, 0
+ bl DestroyTask
+ b _08126D9E
+ .pool
+_08126D98:
+ adds r0, r4, 0
+ bl sub_816B060
+_08126D9E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8126D6C
+
+ thumb_func_start sub_8126DA4
+sub_8126DA4: @ 8126DA4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8126C08
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_8126B80
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8126DA4
+
+ thumb_func_start sub_8126DCC
+sub_8126DCC: @ 8126DCC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_085A6BB0
+ movs r1, 0xD0
+ movs r2, 0x20
+ bl LoadPalette
+ movs r0, 0
+ movs r1, 0
+ bl sub_8197434
+ movs r0, 0
+ bl sub_8126A58
+ adds r0, r4, 0
+ bl sub_8126DFC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8126DCC
+
+ thumb_func_start sub_8126DFC
+sub_8126DFC: @ 8126DFC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x1
+ bl sub_81269D4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl sub_8126E8C
+ ldr r0, =gUnknown_0203A173
+ ldrb r2, [r0]
+ adds r0, r4, 0
+ movs r1, 0x9
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_8127088
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8126DFC
+
+ thumb_func_start sub_8126E44
+sub_8126E44: @ 8126E44
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, =gUnknown_0203A188
+ ldrb r0, [r5, 0x1]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ adds r0, r4, 0
+ bl sub_8126E8C
+ ldrb r0, [r5, 0x1]
+ ldr r1, =gUnknown_0203A173
+ ldrb r2, [r1]
+ movs r1, 0x9
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_8127088
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8126E44
+
+ thumb_func_start sub_8126E8C
+sub_8126E8C: @ 8126E8C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ 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 r1, r0, r1
+ ldr r0, =gUnknown_0203A188
+ ldrb r5, [r0, 0x1]
+ ldr r0, =gUnknown_0203A17C
+ ldrb r0, [r0, 0x9]
+ movs r2, 0
+ mov r8, r2
+ cmp r0, 0x1
+ bne _08126EC0
+ movs r2, 0x16
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08126EC0
+ movs r0, 0x1
+ mov r8, r0
+_08126EC0:
+ movs r4, 0
+ lsls r2, r6, 2
+ mov r9, r2
+ movs r7, 0xFF
+_08126EC8:
+ mov r0, r8
+ cmp r0, 0x1
+ bne _08126EF8
+ cmp r4, 0x6
+ beq _08126EF8
+ cmp r4, 0x7
+ beq _08126EF8
+ lsls r3, r4, 28
+ lsrs r3, 24
+ str r0, [sp]
+ str r7, [sp, 0x4]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x8
+ bl sub_8126F68
+ b _08126F0C
+ .pool
+_08126EF8:
+ lsls r3, r4, 28
+ lsrs r3, 24
+ movs r0, 0
+ str r0, [sp]
+ str r7, [sp, 0x4]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x8
+ bl sub_8126F68
+_08126F0C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _08126EC8
+ ldr r0, =gTasks
+ mov r2, r9
+ adds r1, r2, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x1E
+ ldrsh r0, [r1, r2]
+ ldr r2, =gText_Cancel
+ cmp r0, 0x2
+ bne _08126F2C
+ ldr r2, =gText_Exit
+_08126F2C:
+ lsls r0, r4, 4
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8126E8C
+
+ thumb_func_start sub_8126F68
+sub_8126F68: @ 8126F68
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ ldr r4, [sp, 0x38]
+ ldr r6, [sp, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0xC]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r5, r3, 24
+ lsls r4, 24
+ lsrs r1, r4, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r9, r6
+ movs r0, 0x60
+ str r0, [sp, 0x14]
+ cmp r7, 0x8
+ bne _08126FA2
+ movs r2, 0x68
+ str r2, [sp, 0x14]
+_08126FA2:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, =gStringVar4
+ adds r0, r4, 0
+ bl sub_8127058
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ adds r6, r0, r4
+ ldr r1, =gUnknown_085A6B28
+ mov r2, r8
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl StringCopy
+ str r5, [sp]
+ mov r0, r9
+ str r0, [sp, 0x4]
+ movs r2, 0
+ mov r10, r2
+ str r2, [sp, 0x8]
+ ldr r0, [sp, 0xC]
+ movs r1, 0x1
+ adds r2, r4, 0
+ adds r3, r7, 0
+ bl PrintTextOnWindow
+ mov r0, r8
+ bl sub_8161AD0
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r6, r0, 0
+ movs r0, 0xBA
+ strb r0, [r6]
+ adds r6, 0x1
+ ldr r1, =gDecorationInventories
+ mov r2, r8
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x4]
+ adds r0, r6, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x1
+ adds r1, r4, 0
+ ldr r2, [sp, 0x14]
+ bl GetStringRightAlignXOffset
+ lsls r0, 24
+ lsrs r7, r0, 24
+ str r5, [sp]
+ mov r0, r9
+ str r0, [sp, 0x4]
+ mov r2, r10
+ str r2, [sp, 0x8]
+ ldr r0, [sp, 0xC]
+ movs r1, 0x1
+ adds r2, r4, 0
+ adds r3, r7, 0
+ bl PrintTextOnWindow
+ 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_8126F68
+
+ thumb_func_start sub_8127058
+sub_8127058: @ 8127058
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ ldr r1, =gText_Color161Shadow161
+ bl StringCopy
+ cmp r4, 0x1
+ bne _08127078
+ movs r0, 0x4
+ strb r0, [r5, 0x2]
+ movs r0, 0x5
+ b _0812707E
+ .pool
+_08127078:
+ movs r0, 0x2
+ strb r0, [r5, 0x2]
+ movs r0, 0x3
+_0812707E:
+ strb r0, [r5, 0x5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8127058
+
+ thumb_func_start sub_8127088
+sub_8127088: @ 8127088
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081270DE
+ bl ProcessMenuInput
+ lsls r0, 24
+ lsrs r4, r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _081270C0
+ cmp r1, r0
+ bgt _081270BC
+ subs r0, 0x1
+ cmp r1, r0
+ beq _081270DE
+ b _081270CE
+ .pool
+_081270BC:
+ cmp r1, 0x8
+ bne _081270CE
+_081270C0:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_812719C
+ b _081270DE
+_081270CE:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_0203A173
+ strb r4, [r0]
+ adds r0, r5, 0
+ bl sub_81270E8
+_081270DE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8127088
+
+ thumb_func_start sub_81270E8
+sub_81270E8: @ 81270E8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, =gUnknown_0203A173
+ ldrb r0, [r4]
+ bl sub_8161AD0
+ ldr r1, =gUnknown_0203A151
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ beq _08127154
+ ldrb r0, [r4]
+ bl sub_8161A38
+ ldr r2, =gUnknown_0203A14C
+ ldr r1, =gDecorationInventories
+ ldrb r0, [r4]
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ adds r0, r5, 0
+ bl sub_81279B4
+ ldr r0, =gUnknown_0203A170
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gUnknown_0203A16E
+ strh r1, [r0]
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_8127620
+ str r1, [r0]
+ b _0812716E
+ .pool
+_08127154:
+ movs r0, 0x1
+ bl sub_8126A58
+ ldr r4, =gStringVar4
+ ldr r1, =gText_NoDecorations
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, =sub_8127180
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl DisplayItemMessageOnField
+_0812716E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81270E8
+
+ thumb_func_start sub_8127180
+sub_8127180: @ 8127180
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ bl sub_8197434
+ adds r0, r4, 0
+ bl sub_8126DFC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8127180
+
+ thumb_func_start sub_812719C
+sub_812719C: @ 812719C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1E
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x2
+ beq _081271C0
+ adds r0, r2, 0
+ bl sub_81271CC
+ b _081271C6
+ .pool
+_081271C0:
+ adds r0, r2, 0
+ bl sub_8127268
+_081271C6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812719C
+
+ thumb_func_start sub_81271CC
+sub_81271CC: @ 81271CC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl sub_8126A58
+ bl sub_8126A88
+ movs r0, 0
+ movs r1, 0
+ bl sub_81973C4
+ bl sub_8126C08
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_8126B80
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81271CC
+
+ thumb_func_start sub_8127208
+sub_8127208: @ 8127208
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_085A6BB0
+ movs r1, 0xD0
+ movs r2, 0x20
+ bl LoadPalette
+ movs r0, 0
+ movs r1, 0
+ bl sub_8197434
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x2
+ strh r1, [r0, 0x1E]
+ ldr r0, =gUnknown_0203A173
+ strb r2, [r0]
+ adds r0, r4, 0
+ bl sub_8126DFC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8127208
+
+ thumb_func_start sub_8127250
+sub_8127250: @ 8127250
+ push {lr}
+ lsls r1, 24
+ ldr r2, =gUnknown_085A6B28
+ lsrs r1, 22
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8127250
+
+ thumb_func_start sub_8127268
+sub_8127268: @ 8127268
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl sub_8126A58
+ adds r0, r4, 0
+ bl sub_8133E1C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8127268
+
+ thumb_func_start sub_8127284
+sub_8127284: @ 8127284
+ push {lr}
+ ldr r3, =gUnknown_0203A18C
+ ldr r2, [r3]
+ ldr r0, =gUnknown_0203A151
+ ldrb r0, [r0]
+ adds r0, 0x1
+ movs r1, 0xA4
+ lsls r1, 3
+ adds r2, r1
+ strb r0, [r2]
+ ldr r0, [r3]
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ cmp r1, 0x8
+ bls _081272B8
+ ldr r2, =0x00000521
+ adds r1, r0, r2
+ movs r0, 0x8
+ strb r0, [r1]
+ b _081272BE
+ .pool
+_081272B8:
+ ldr r2, =0x00000521
+ adds r0, r2
+ strb r1, [r0]
+_081272BE:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8127284
+
+ thumb_func_start sub_81272C8
+sub_81272C8: @ 81272C8
+ push {r4,lr}
+ ldr r0, =gUnknown_0203A170
+ ldr r1, =gUnknown_0203A16E
+ ldr r2, =gUnknown_0203A18C
+ ldr r3, [r2]
+ ldr r4, =0x00000521
+ adds r2, r3, r4
+ ldrb r2, [r2]
+ subs r4, 0x1
+ adds r3, r4
+ ldrb r3, [r3]
+ bl sub_812225C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81272C8
+
+ thumb_func_start sub_81272F8
+sub_81272F8: @ 81272F8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, =gUnknown_0203A170
+ ldr r1, =gUnknown_0203A16E
+ ldr r2, =gUnknown_0203A18C
+ ldr r3, [r2]
+ ldr r4, =0x00000521
+ adds r2, r3, r4
+ ldrb r2, [r2]
+ subs r4, 0x1
+ adds r3, r4
+ ldrb r3, [r3]
+ movs r4, 0x8
+ str r4, [sp]
+ bl sub_8122298
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81272F8
+
+ thumb_func_start sub_8127330
+sub_8127330: @ 8127330
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r1, r0
+ ldr r0, =gUnknown_0203A173
+ ldrb r0, [r0]
+ subs r0, 0x6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08127378
+ ldr r0, =gUnknown_0203A17C
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x1
+ bne _08127378
+ movs r2, 0x16
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08127378
+ ldr r0, =gStringVar1
+ movs r1, 0x1
+ bl sub_8127058
+ b _08127380
+ .pool
+_08127378:
+ ldr r0, =gStringVar1
+ movs r1, 0
+ bl sub_8127058
+_08127380:
+ movs r6, 0
+ ldr r1, =gUnknown_0203A18C
+ ldr r0, [r1]
+ movs r3, 0xA4
+ lsls r3, 3
+ adds r0, r3
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r6, r0
+ bge _081273D6
+ adds r5, r1, 0
+_08127396:
+ lsls r4, r6, 1
+ adds r4, r6
+ lsls r4, 3
+ movs r0, 0xA4
+ lsls r0, 1
+ adds r4, r0
+ ldr r0, [r5]
+ adds r0, r4
+ ldr r1, =gUnknown_0203A14C
+ ldr r1, [r1]
+ adds r1, r6
+ ldrb r1, [r1]
+ bl sub_8127454
+ ldr r1, [r5]
+ lsls r2, r6, 3
+ adds r0, r1, r2
+ adds r4, r1, r4
+ str r4, [r0]
+ adds r0, r1, 0x4
+ adds r0, r2
+ str r6, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r2, 0xA4
+ lsls r2, 3
+ adds r1, r2
+ ldrb r0, [r1]
+ subs r0, 0x1
+ cmp r6, r0
+ blt _08127396
+_081273D6:
+ ldr r5, =gUnknown_0203A18C
+ lsls r4, r6, 1
+ adds r4, r6
+ lsls r4, 3
+ movs r3, 0xA4
+ lsls r3, 1
+ adds r4, r3
+ ldr r0, [r5]
+ adds r0, r4
+ ldr r1, =gText_Cancel
+ bl StringCopy
+ ldr r0, [r5]
+ lsls r2, r6, 3
+ adds r1, r0, r2
+ adds r4, r0, r4
+ str r4, [r1]
+ adds r0, 0x4
+ adds r0, r2
+ movs r1, 0x2
+ negs r1, r1
+ str r1, [r0]
+ ldr r2, =gUnknown_03006310
+ adds r1, r2, 0
+ ldr r0, =gUnknown_085A6BD0
+ ldm r0!, {r3,r4,r6}
+ stm r1!, {r3,r4,r6}
+ ldm r0!, {r3,r4,r6}
+ stm r1!, {r3,r4,r6}
+ ldr r0, =gUnknown_0203A188
+ ldrb r0, [r0, 0x1]
+ strb r0, [r2, 0x10]
+ ldr r0, [r5]
+ movs r4, 0xA4
+ lsls r4, 3
+ adds r1, r0, r4
+ ldrb r1, [r1]
+ strh r1, [r2, 0xC]
+ str r0, [r2]
+ ldr r6, =0x00000521
+ adds r0, r6
+ ldrb r0, [r0]
+ strh r0, [r2, 0xE]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8127330
+
+ thumb_func_start sub_8127454
+sub_8127454: @ 8127454
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r4, r1, 16
+ lsrs r4, 16
+ ldr r1, =gStringVar1
+ bl StringCopy
+ lsls r4, 5
+ ldr r0, =gDecorations + 1
+ adds r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl StringAppend
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8127454
+
+ thumb_func_start sub_8127480
+sub_8127480: @ 8127480
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x1
+ beq _08127492
+ movs r0, 0x5
+ bl PlaySE
+_08127492:
+ adds r0, r4, 0
+ bl sub_8127744
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8127480
+
+ thumb_func_start sub_81274A0
+sub_81274A0: @ 81274A0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r8, r6
+ lsls r2, 24
+ lsrs r5, r2, 24
+ adds r7, r5, 0
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ beq _081274F6
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_81277BC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081274DC
+ adds r3, r5, 0x2
+ adds r0, r6, 0
+ movs r1, 0x18
+ movs r2, 0x5C
+ bl blit_move_info_icon
+ b _081274F6
+_081274DC:
+ adds r0, r4, 0
+ bl sub_81277E8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081274F6
+ adds r3, r7, 0x2
+ mov r0, r8
+ movs r1, 0x19
+ movs r2, 0x5C
+ bl blit_move_info_icon
+_081274F6:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81274A0
+
+ thumb_func_start sub_8127500
+sub_8127500: @ 8127500
+ push {r4,lr}
+ sub sp, 0x10
+ ldr r4, =gUnknown_0203A18C
+ ldr r1, [r4]
+ ldr r2, =0x00000522
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08127540
+ subs r2, 0x2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ subs r0, r1
+ str r0, [sp]
+ movs r0, 0x6E
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ ldr r0, =gUnknown_0203A170
+ str r0, [sp, 0xC]
+ movs r0, 0x2
+ movs r1, 0x3C
+ movs r2, 0xC
+ movs r3, 0x94
+ bl AddScrollIndicatorArrowPairParametrized
+ ldr r1, [r4]
+ ldr r2, =0x00000522
+ adds r1, r2
+ strb r0, [r1]
+_08127540:
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8127500
+
+ thumb_func_start sub_8127554
+sub_8127554: @ 8127554
+ push {r4,lr}
+ ldr r4, =gUnknown_0203A18C
+ ldr r0, [r4]
+ ldr r2, =0x00000522
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _08127572
+ bl RemoveScrollIndicatorArrowPair
+ ldr r0, [r4]
+ ldr r1, =0x00000522
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+_08127572:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8127554
+
+ thumb_func_start sub_8127580
+sub_8127580: @ 8127580
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl sub_81269D4
+ adds r0, r4, 0
+ bl sub_812759C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8127580
+
+ thumb_func_start sub_812759C
+sub_812759C: @ 812759C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, r4, 2
+ adds r5, r4
+ lsls r5, 3
+ ldr r0, =gTasks + 0x8
+ adds r5, r0
+ movs r0, 0x3
+ bl sub_81269D4
+ ldr r0, =gUnknown_0203A173
+ ldrb r0, [r0]
+ bl sub_8127718
+ ldr r6, =gUnknown_0203A18C
+ ldr r0, =0x00000524
+ bl AllocZeroed
+ str r0, [r6]
+ ldr r1, =0x00000522
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ bl sub_8127284
+ bl sub_81272C8
+ bl sub_81272F8
+ adds r0, r4, 0
+ bl sub_8127330
+ ldr r0, =gUnknown_03006310
+ ldr r1, =gUnknown_0203A170
+ ldrh r1, [r1]
+ ldr r2, =gUnknown_0203A16E
+ ldrh r2, [r2]
+ bl ListMenuInit
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x1A]
+ bl sub_8127500
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_812759C
+
+ thumb_func_start sub_8127620
+sub_8127620: @ 8127620
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_812759C
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_812764C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8127620
+
+ thumb_func_start sub_812764C
+sub_812764C: @ 812764C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ 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
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08127700
+ ldrb r0, [r5, 0x1A]
+ bl ListMenuHandleInput
+ adds r4, r0, 0
+ ldrb r0, [r5, 0x1A]
+ ldr r7, =gUnknown_0203A170
+ ldr r1, =gUnknown_0203A16E
+ mov r8, r1
+ adds r1, r7, 0
+ mov r2, r8
+ bl get_coro_args_x18_x1A
+ movs r0, 0x2
+ negs r0, r0
+ cmp r4, r0
+ beq _081276A4
+ adds r0, 0x1
+ cmp r4, r0
+ bne _081276C4
+ b _08127700
+ .pool
+_081276A4:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_085A6B78
+ movs r2, 0x16
+ ldrsh r1, [r5, r2]
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r6, 0
+ bl _call_via_r1
+ b _08127700
+ .pool
+_081276C4:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_0203A172
+ strb r4, [r0]
+ bl sub_8127554
+ ldrb r0, [r5, 0x1A]
+ adds r1, r7, 0
+ mov r2, r8
+ bl sub_81AE6C8
+ movs r0, 0x1
+ bl sub_8126A58
+ bl sub_81277A8
+ ldr r0, =gUnknown_0203A18C
+ ldr r0, [r0]
+ bl Free
+ ldr r1, =gUnknown_085A6B78
+ movs r2, 0x16
+ ldrsh r0, [r5, r2]
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl _call_via_r1
+_08127700:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_812764C
+
+ thumb_func_start sub_8127718
+sub_8127718: @ 8127718
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2
+ bl sub_81269D4
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8126F68
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8127718
+
+ thumb_func_start sub_8127744
+sub_8127744: @ 8127744
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ ldr r0, =gUnknown_0203A188
+ ldrb r5, [r0, 0x3]
+ adds r0, r5, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r0, =gUnknown_0203A151
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _08127770
+ ldr r2, =gText_GoBackPrevMenu
+ b _08127782
+ .pool
+_08127770:
+ ldr r1, =gDecorations
+ ldr r0, =gUnknown_0203A14C
+ ldr r0, [r0]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r0, 5
+ adds r1, 0x18
+ adds r0, r1
+ ldr r2, [r0]
+_08127782:
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8127744
+
+ thumb_func_start sub_81277A8
+sub_81277A8: @ 81277A8
+ push {lr}
+ movs r0, 0x3
+ bl sub_8126A58
+ movs r0, 0x2
+ bl sub_8126A58
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81277A8
+
+ thumb_func_start sub_81277BC
+sub_81277BC: @ 81277BC
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r3, =gUnknown_0203A152
+_081277C6:
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _081277D8
+ movs r0, 0x1
+ b _081277E4
+ .pool
+_081277D8:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _081277C6
+ movs r0, 0
+_081277E4:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81277BC
+
+ thumb_func_start sub_81277E8
+sub_81277E8: @ 81277E8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r3, =gUnknown_0203A162
+_081277F2:
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _08127804
+ movs r0, 0x1
+ b _08127810
+ .pool
+_08127804:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xB
+ bls _081277F2
+ movs r0, 0
+_08127810:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81277E8
+
+ thumb_func_start sub_8127814
+sub_8127814: @ 8127814
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r5, 0
+ ldr r0, =gUnknown_0203A152
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ ldr r0, =gUnknown_0203A162
+ movs r1, 0
+ movs r2, 0xC
+ bl memset
+ movs r6, 0
+ ldr r0, =gSaveBlock1Ptr
+ mov r10, r0
+ ldr r1, =0x00001aae
+ mov r9, r1
+ ldr r3, =gUnknown_0203A173
+ mov r8, r3
+_08127842:
+ mov r1, r10
+ ldr r0, [r1]
+ add r0, r9
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081278E2
+ movs r2, 0
+ mov r3, r8
+ ldrb r0, [r3]
+ lsls r0, 3
+ ldr r1, =gDecorationInventories
+ adds r0, r1
+ ldrb r0, [r0, 0x4]
+ cmp r2, r0
+ bcs _081278E2
+ ldr r7, =gUnknown_0203A152
+ adds r3, r1, 0
+ mov r12, r3
+_08127868:
+ ldr r0, =gUnknown_0203A14C
+ ldr r1, [r0]
+ adds r1, r2
+ mov r3, r10
+ ldr r0, [r3]
+ add r0, r9
+ adds r0, r6
+ ldrb r1, [r1]
+ adds r4, r2, 0x1
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _081278D0
+ movs r1, 0
+ cmp r1, r5
+ bcs _081278A2
+ ldrb r0, [r7]
+ cmp r0, r4
+ beq _081278A2
+ ldr r3, =gUnknown_0203A152
+ adds r2, r4, 0
+_08127890:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r5
+ bcs _081278A2
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _08127890
+_081278A2:
+ cmp r1, r5
+ bne _081278D0
+ adds r0, r5, r7
+ strb r4, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _081278E2
+ .pool
+_081278D0:
+ lsls r0, r4, 16
+ lsrs r2, r0, 16
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r0, 3
+ add r0, r12
+ ldrb r0, [r0, 0x4]
+ cmp r2, r0
+ bcc _08127868
+_081278E2:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0xF
+ bls _08127842
+ movs r5, 0
+ movs r6, 0
+ ldr r3, =gDecorationInventories
+ mov r8, r3
+_081278F4:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x0000271c
+ adds r0, r1
+ adds r0, r6
+ ldrb r0, [r0]
+ adds r7, r6, 0x1
+ cmp r0, 0
+ beq _0812799A
+ movs r2, 0
+ b _0812798C
+ .pool
+_08127918:
+ ldr r0, =gUnknown_0203A14C
+ ldr r1, [r0]
+ adds r1, r2
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r3, =0x0000271c
+ adds r0, r3
+ adds r0, r6
+ ldrb r1, [r1]
+ adds r4, r2, 0x1
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08127988
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_81277BC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08127988
+ movs r1, 0
+ cmp r1, r5
+ bcs _08127966
+ ldr r2, =gUnknown_0203A162
+ ldrb r0, [r2]
+ cmp r0, r4
+ beq _08127966
+ adds r3, r2, 0
+ adds r2, r4, 0
+_08127954:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r5
+ bcs _08127966
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _08127954
+_08127966:
+ cmp r1, r5
+ bne _08127988
+ ldr r0, =gUnknown_0203A162
+ adds r0, r5, r0
+ strb r4, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _0812799A
+ .pool
+_08127988:
+ lsls r0, r4, 16
+ lsrs r2, r0, 16
+_0812798C:
+ ldr r0, =gUnknown_0203A173
+ ldrb r0, [r0]
+ lsls r0, 3
+ add r0, r8
+ ldrb r0, [r0, 0x4]
+ cmp r2, r0
+ bcc _08127918
+_0812799A:
+ lsls r0, r7, 16
+ lsrs r6, r0, 16
+ cmp r6, 0xB
+ bls _081278F4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8127814
+
+ thumb_func_start sub_81279B4
+sub_81279B4: @ 81279B4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8127814
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81279B4
+
+ thumb_func_start sub_81279C4
+sub_81279C4: @ 81279C4
+ push {r4,lr}
+ movs r2, 0
+ ldr r0, =gUnknown_0203A170
+ ldrh r0, [r0]
+ ldr r1, =gUnknown_0203A16E
+ ldrh r1, [r1]
+ adds r0, r1
+ adds r1, r0, 0x1
+ ldr r4, =gUnknown_0203A152
+ ldr r3, =gUnknown_0203A162
+_081279D8:
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ cmp r0, r1
+ beq _081279EC
+ cmp r2, 0xB
+ bhi _08127A00
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _08127A00
+_081279EC:
+ movs r0, 0
+ b _08127A0C
+ .pool
+_08127A00:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xF
+ bls _081279D8
+ movs r0, 0x1
+_08127A0C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81279C4
+
+ thumb_func_start sub_8127A14
+sub_8127A14: @ 8127A14
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl sub_81269D4
+ adds r0, r4, 0
+ bl sub_8127620
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8127A14
+
+ thumb_func_start sub_8127A30
+sub_8127A30: @ 8127A30
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ bl sub_8197434
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_8127A14
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8127A30
+
+ thumb_func_start sub_8127A5C
+sub_8127A5C: @ 8127A5C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08127A82
+ movs r0, 0
+ movs r1, 0
+ bl sub_8197434
+ movs r0, 0x1
+ bl sub_81269D4
+ adds r0, r4, 0
+ bl sub_8127620
+_08127A82:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8127A5C
+
+ thumb_func_start sub_8127A8C
+sub_8127A8C: @ 8127A8C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r0
+ bl sub_8127554
+ bl sub_81277A8
+ ldrb r0, [r4, 0x1A]
+ movs r1, 0
+ movs r2, 0
+ bl sub_81AE6C8
+ ldr r0, =gUnknown_0203A18C
+ ldr r0, [r0]
+ bl Free
+ adds r0, r5, 0
+ bl sub_8126E44
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8127A8C
+
+ thumb_func_start sub_8127ACC
+sub_8127ACC: @ 8127ACC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r4, r2, r3
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x10]
+ adds r3, 0x8
+ adds r2, r3
+ adds r1, r2, 0x2
+ adds r0, r2, 0
+ bl PlayerGetDestCoords
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8127ACC
+
+ thumb_func_start sub_8127B04
+sub_8127B04: @ 8127B04
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ bl DrawWholeMapView
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ movs r0, 0x4
+ ldrsb r0, [r1, r0]
+ ldrb r1, [r1, 0x5]
+ lsls r1, 24
+ asrs r1, 24
+ movs r2, 0x1
+ negs r2, r2
+ ldr r3, =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r3
+ movs r3, 0xE
+ ldrsb r3, [r4, r3]
+ ldrb r4, [r4, 0x10]
+ lsls r4, 24
+ asrs r4, 24
+ str r4, [sp]
+ bl Overworld_SetWarpDestination
+ bl warp_in
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8127B04
+
+ thumb_func_start sub_8127B54
+sub_8127B54: @ 8127B54
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, =0x0000ffff
+ cmp r2, 0x22
+ beq _08127B7C
+ cmp r2, 0x26
+ bne _08127B86
+ ldr r0, =gUnknown_085A72E4
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r0, 28
+ lsrs r0, 16
+ b _08127B86
+ .pool
+_08127B7C:
+ ldr r0, =gUnknown_085A72EC
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r0, 28
+ lsrs r0, 16
+_08127B86:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8127B54
+
+ thumb_func_start sub_8127B90
+sub_8127B90: @ 8127B90
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ ldr r4, [sp, 0x54]
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp]
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x4]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x8]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0xC]
+ lsls r4, 16
+ lsrs r4, 16
+ str r4, [sp, 0x10]
+ movs r2, 0
+ lsls r0, r3, 16
+ cmp r2, r3
+ bcc _08127BC6
+ b _08127D28
+_08127BC6:
+ ldr r1, [sp, 0x8]
+ str r1, [sp, 0x28]
+ str r0, [sp, 0x2C]
+_08127BCC:
+ ldr r3, [sp, 0x4]
+ ldr r4, [sp, 0xC]
+ subs r1, r3, r4
+ lsls r0, r2, 16
+ asrs r0, 16
+ adds r0, 0x1
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x14]
+ movs r0, 0
+ mov r10, r0
+ adds r1, r2, 0x1
+ str r1, [sp, 0x30]
+ ldr r3, [sp, 0x28]
+ cmp r10, r3
+ bcc _08127BF0
+ b _08127D18
+_08127BF0:
+ ldr r4, [sp, 0x10]
+ lsls r4, 5
+ str r4, [sp, 0x18]
+ ldr r0, =gUnknown_085A5C24
+ adds r0, r4, r0
+ str r0, [sp, 0x1C]
+ ldr r0, =gDecorations
+ adds r0, r4, r0
+ str r0, [sp, 0x24]
+ ldr r3, [sp, 0x8]
+ adds r1, r2, 0
+ muls r1, r3
+ str r1, [sp, 0x20]
+_08127C0A:
+ ldr r0, [sp]
+ add r0, r10
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, [sp, 0x20]
+ add r1, r10
+ ldr r4, [sp, 0x1C]
+ ldr r0, [r4]
+ lsls r1, 1
+ adds r1, r0
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetBehaviorByMetatileId
+ lsls r4, r0, 16
+ lsls r0, r4, 8
+ lsrs r0, 24
+ bl MetatileBehavior_IsMB_B9
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08127C50
+ ldr r3, [sp, 0x24]
+ ldrb r0, [r3, 0x11]
+ cmp r0, 0x1
+ beq _08127C60
+ lsrs r0, r4, 28
+ cmp r0, 0
+ beq _08127C60
+_08127C50:
+ movs r4, 0xC0
+ lsls r4, 4
+ mov r8, r4
+ b _08127C64
+ .pool
+_08127C60:
+ movs r0, 0
+ mov r8, r0
+_08127C64:
+ ldr r1, [sp, 0x24]
+ ldrb r0, [r1, 0x11]
+ lsls r7, r5, 16
+ ldr r2, [sp, 0x14]
+ lsls r2, 16
+ mov r9, r2
+ cmp r0, 0x3
+ beq _08127C8E
+ asrs r0, r7, 16
+ asrs r1, r2, 16
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsMB_B7
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0x1
+ cmp r0, 0x1
+ beq _08127C90
+_08127C8E:
+ movs r6, 0
+_08127C90:
+ ldr r3, [sp, 0x18]
+ ldr r4, =gDecorations
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ ldr r4, [sp, 0x20]
+ add r4, r10
+ lsls r1, r4, 24
+ lsrs r1, 24
+ bl sub_8127B54
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, =0x0000ffff
+ cmp r5, r0
+ beq _08127CE0
+ asrs r0, r7, 16
+ mov r2, r9
+ asrs r1, r2, 16
+ ldr r3, [sp, 0x1C]
+ ldr r2, [r3]
+ lsls r3, r4, 1
+ adds r3, r2
+ movs r4, 0x80
+ lsls r4, 2
+ adds r2, r4, 0
+ orrs r6, r2
+ ldrh r3, [r3]
+ adds r2, r6, r3
+ mov r3, r8
+ orrs r3, r2
+ orrs r3, r5
+ lsls r2, r3, 16
+ lsrs r2, 16
+ bl MapGridSetMetatileEntryAt
+ b _08127D06
+ .pool
+_08127CE0:
+ asrs r0, r7, 16
+ mov r2, r9
+ asrs r1, r2, 16
+ ldr r3, [sp, 0x1C]
+ ldr r2, [r3]
+ lsls r3, r4, 1
+ adds r3, r2
+ movs r4, 0x80
+ lsls r4, 2
+ adds r2, r4, 0
+ orrs r6, r2
+ ldrh r3, [r3]
+ adds r2, r6, r3
+ mov r3, r8
+ orrs r3, r2
+ lsls r2, r3, 16
+ lsrs r2, 16
+ bl MapGridSetMetatileIdAt
+_08127D06:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ ldr r4, [sp, 0x28]
+ cmp r10, r4
+ bcs _08127D18
+ b _08127C0A
+_08127D18:
+ ldr r1, [sp, 0x30]
+ lsls r0, r1, 16
+ lsrs r2, r0, 16
+ ldr r3, [sp, 0x2C]
+ lsrs r0, r3, 16
+ cmp r2, r0
+ bcs _08127D28
+ b _08127BCC
+_08127D28:
+ 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_8127B90
+
+ thumb_func_start sub_8127D38
+sub_8127D38: @ 8127D38
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r1, =gDecorations
+ lsls r0, r2, 5
+ adds r0, r1
+ ldrb r0, [r0, 0x12]
+ cmp r0, 0x9
+ bhi _08127E10
+ lsls r0, 2
+ ldr r1, =_08127D68
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08127D68:
+ .4byte _08127D90
+ .4byte _08127D9A
+ .4byte _08127DA4
+ .4byte _08127DB4
+ .4byte _08127DBE
+ .4byte _08127DC8
+ .4byte _08127DD8
+ .4byte _08127DE2
+ .4byte _08127DF2
+ .4byte _08127E02
+_08127D90:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ b _08127DAC
+_08127D9A:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x2
+ b _08127DAC
+_08127DA4:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x3
+_08127DAC:
+ movs r3, 0x1
+ bl sub_8127B90
+ b _08127E10
+_08127DB4:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x4
+ b _08127DD0
+_08127DBE:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x2
+ b _08127DD0
+_08127DC8:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+_08127DD0:
+ movs r3, 0x2
+ bl sub_8127B90
+ b _08127E10
+_08127DD8:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ b _08127DFA
+_08127DE2:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x2
+ movs r3, 0x4
+ bl sub_8127B90
+ b _08127E10
+_08127DF2:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x3
+_08127DFA:
+ movs r3, 0x3
+ bl sub_8127B90
+ b _08127E10
+_08127E02:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x3
+ movs r3, 0x2
+ bl sub_8127B90
+_08127E10:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8127D38
+
+ thumb_func_start sub_8127E18
+sub_8127E18: @ 8127E18
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r6, 0
+ ldr r7, =gMapHeader
+ ldr r0, =gSpecialVar_0x8005
+ mov r8, r0
+ ldr r1, =gSpecialVar_0x8006
+ mov r10, r1
+ ldr r2, =gSaveBlock1Ptr
+ mov r9, r2
+_08127E34:
+ adds r5, r6, 0
+ adds r5, 0xAE
+ adds r4, r5, 0
+ adds r0, r4, 0
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08127F1C
+ adds r0, r4, 0
+ bl FlagClear
+ movs r2, 0
+ ldr r0, [r7, 0x4]
+ ldrb r4, [r0]
+ cmp r2, r4
+ bcs _08127E82
+ ldr r0, [r0, 0x4]
+ ldrh r0, [r0, 0x14]
+ cmp r0, r5
+ beq _08127E82
+ ldr r0, =gMapHeader
+ ldr r3, [r0, 0x4]
+ ldrb r6, [r3]
+ adds r4, r5, 0
+_08127E68:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r6
+ bcs _08127E82
+ ldr r0, [r3, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x14]
+ cmp r0, r4
+ bne _08127E68
+_08127E82:
+ ldr r0, [r7, 0x4]
+ ldr r1, [r0, 0x4]
+ lsls r4, r2, 1
+ adds r4, r2
+ lsls r4, 3
+ adds r1, r4, r1
+ ldr r5, =0x00003f20
+ adds r0, r5, 0
+ ldrb r1, [r1, 0x1]
+ adds r0, r1
+ ldr r1, =gUnknown_0203A190
+ ldr r1, [r1]
+ ldr r1, [r1, 0x1C]
+ ldrh r1, [r1]
+ bl VarSet
+ ldr r0, [r7, 0x4]
+ ldr r0, [r0, 0x4]
+ adds r4, r0
+ ldrb r0, [r4]
+ mov r6, r8
+ strh r0, [r6]
+ ldr r1, =gUnknown_0203AA34
+ ldrh r1, [r1]
+ mov r2, r10
+ strh r1, [r2]
+ ldr r1, =gUnknown_0203AA36
+ ldrh r1, [r1]
+ ldr r4, =gSpecialVar_0x8007
+ strh r1, [r4]
+ mov r5, r9
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl show_sprite
+ ldrb r0, [r6]
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ mov r6, r10
+ movs r4, 0
+ ldrsh r3, [r6, r4]
+ ldr r5, =gSpecialVar_0x8007
+ movs r6, 0
+ ldrsh r4, [r5, r6]
+ str r4, [sp]
+ bl sub_808EBA8
+ mov r1, r8
+ ldrb r0, [r1]
+ mov r4, r9
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl sub_808F254
+ b _08127F26
+ .pool
+_08127F1C:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xD
+ bls _08127E34
+_08127F26:
+ 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_8127E18
+
+ thumb_func_start sub_8127F38
+sub_8127F38: @ 8127F38
+ push {lr}
+ movs r1, 0
+ ldr r0, =gUnknown_0203A17C
+ ldrb r2, [r0, 0x8]
+ cmp r1, r2
+ bcs _08127F62
+ ldr r3, [r0]
+_08127F46:
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08127F58
+ movs r0, 0x1
+ b _08127F64
+ .pool
+_08127F58:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bcc _08127F46
+_08127F62:
+ movs r0, 0
+_08127F64:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8127F38
+
+ thumb_func_start sub_8127F68
+sub_8127F68: @ 8127F68
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gUnknown_0203A17C
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x1
+ bne _08127FAC
+ ldr r0, =gUnknown_0203A173
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ beq _08127FAC
+ cmp r0, 0x7
+ beq _08127FAC
+ ldr r4, =gStringVar4
+ ldr r1, =gText_CantPlaceInRoom
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, =sub_8127A5C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl DisplayItemMessageOnField
+ b _0812804C
+ .pool
+_08127FAC:
+ bl sub_81279C4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08128038
+ bl sub_8127F38
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08127FE8
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r1, =sub_8128060
+ str r1, [r0]
+ b _0812804C
+ .pool
+_08127FE8:
+ ldr r0, =gStringVar1
+ ldr r4, =gUnknown_0203A17C
+ ldrb r1, [r4, 0x8]
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0
+ bne _08128018
+ ldr r0, =gStringVar4
+ ldr r1, =gText_NoMoreDecorations
+ bl StringExpandPlaceholders
+ b _08128020
+ .pool
+_08128018:
+ ldr r0, =gStringVar4
+ ldr r1, =gText_NoMoreDecorations2
+ bl StringExpandPlaceholders
+_08128020:
+ ldr r1, =gStringVar4
+ ldr r2, =sub_8127A5C
+ adds r0, r5, 0
+ bl DisplayItemMessageOnField
+ b _0812804C
+ .pool
+_08128038:
+ ldr r4, =gStringVar4
+ ldr r1, =gText_InUseAlready
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, =sub_8127A5C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl DisplayItemMessageOnField
+_0812804C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8127F68
+
+ thumb_func_start sub_8128060
+sub_8128060: @ 8128060
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r7, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x1
+ beq _081280AC
+ cmp r0, 0x1
+ bgt _08128088
+ cmp r0, 0
+ beq _0812808E
+ b _08128112
+ .pool
+_08128088:
+ cmp r0, 0x2
+ beq _081280FC
+ b _08128112
+_0812808E:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08128112
+ adds r0, r6, 0
+ bl sub_8127ACC
+ movs r0, 0x1
+ strh r0, [r7, 0xC]
+ b _08128112
+ .pool
+_081280AC:
+ ldr r4, =gPaletteFade
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r4, 0x8]
+ ldr r5, =gUnknown_0203A190
+ ldr r0, =gUnknown_0203A172
+ ldrb r1, [r0]
+ ldr r0, =gUnknown_0203A14C
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl ConfigureCameraObjectForPlacingDecoration
+ adds r0, r6, 0
+ bl sub_812826C
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl SetUpPlacingDecorationPlayerAvatar
+ bl pal_fill_black
+ ldrb r1, [r4, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r4, 0x8]
+ movs r0, 0x2
+ strh r0, [r7, 0xC]
+ b _08128112
+ .pool
+_081280FC:
+ bl sub_80ABDFC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08128112
+ movs r0, 0
+ strh r0, [r7, 0x20]
+ adds r0, r6, 0
+ bl sub_8128FD8
+_08128112:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128060
+
+ thumb_func_start ConfigureCameraObjectForPlacingDecoration
+ConfigureCameraObjectForPlacingDecoration: @ 8128118
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, =gUnknown_0203AA38
+ ldr r4, =gSprites
+ ldr r5, =gUnknown_03005DD0
+ ldr r2, [r5, 0x4]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x2E]
+ strb r0, [r3]
+ adds r0, r6, 0
+ bl gpu_pal_decompress_alloc_tag_and_upload
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r5, 0x4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ ldr r0, [r5, 0x4]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r0, r4, 0
+ adds r0, 0x1C
+ adds r0, r2, r0
+ ldr r1, =sub_81292D0
+ str r1, [r0]
+ adds r2, r4
+ ldr r3, =gUnknown_085A7250
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x12]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x2]
+ strh r0, [r2, 0x20]
+ ldr r0, [r5, 0x4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x12]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x3]
+ strh r0, [r1, 0x22]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ConfigureCameraObjectForPlacingDecoration
+
+ thumb_func_start SetUpPlacingDecorationPlayerAvatar
+SetUpPlacingDecorationPlayerAvatar: @ 81281A8
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ ldrb r2, [r2, 0x12]
+ ldr r3, =gUnknown_085A7250
+ ldr r0, [r1]
+ ldrb r4, [r0, 0x12]
+ lsls r1, r4, 2
+ adds r1, r3
+ lsls r0, r2, 4
+ ldrb r1, [r1, 0x2]
+ adds r0, r1
+ subs r2, 0x1
+ lsls r2, 3
+ subs r0, r2
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r4, 0x2
+ beq _081281E2
+ cmp r4, 0x8
+ beq _081281E2
+ cmp r4, 0x9
+ bne _081281EA
+_081281E2:
+ adds r0, r2, 0
+ subs r0, 0x8
+ lsls r0, 24
+ lsrs r2, r0, 24
+_081281EA:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _0812820C
+ ldr r1, =SpriteCallbackDummy
+ str r0, [sp]
+ movs r0, 0xC1
+ b _08128214
+ .pool
+_0812820C:
+ ldr r1, =SpriteCallbackDummy
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xC2
+_08128214:
+ movs r3, 0x48
+ bl AddPseudoFieldObject
+ ldr r1, =gUnknown_0203AA39
+ strb r0, [r1]
+ ldr r3, =gSprites
+ ldr r0, =gUnknown_0203AA39
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r4, =gUnknown_0203AA38
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ bl DestroySprite
+ ldr r0, =gUnknown_03005DD0
+ ldr r0, [r0, 0x4]
+ strb r0, [r4]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end SetUpPlacingDecorationPlayerAvatar
+
+ thumb_func_start sub_812826C
+sub_812826C: @ 812826C
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, =gDecorations
+ ldr r0, =gUnknown_0203A172
+ ldrb r1, [r0]
+ ldr r0, =gUnknown_0203A14C
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 5
+ adds r0, r2
+ ldrb r0, [r0, 0x12]
+ cmp r0, 0x9
+ bls _0812828C
+ b _081283B2
+_0812828C:
+ lsls r0, 2
+ ldr r1, =_081282A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081282A8:
+ .4byte _081282D0
+ .4byte _081282E4
+ .4byte _081282FC
+ .4byte _08128314
+ .4byte _08128328
+ .4byte _0812833C
+ .4byte _08128350
+ .4byte _08128370
+ .4byte _08128388
+ .4byte _081283A0
+_081282D0:
+ ldr r0, =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ b _08128394
+ .pool
+_081282E4:
+ ldr r1, =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x12]
+ movs r1, 0x1
+ b _081283B0
+ .pool
+_081282FC:
+ ldr r1, =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3
+ strh r1, [r0, 0x12]
+ movs r1, 0x1
+ b _081283B0
+ .pool
+_08128314:
+ ldr r1, =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ b _081283AC
+ .pool
+_08128328:
+ ldr r0, =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x2
+ b _08128394
+ .pool
+_0812833C:
+ ldr r1, =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ b _081283AC
+ .pool
+_08128350:
+ ldr r0, =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x12]
+ movs r0, 0x3
+ strh r0, [r1, 0x14]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ b _081283B2
+ .pool
+_08128370:
+ ldr r1, =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x12]
+ movs r1, 0x4
+ b _081283B0
+ .pool
+_08128388:
+ ldr r0, =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x3
+_08128394:
+ strh r0, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ b _081283B2
+ .pool
+_081283A0:
+ ldr r1, =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3
+_081283AC:
+ strh r1, [r0, 0x12]
+ movs r1, 0x2
+_081283B0:
+ strh r1, [r0, 0x14]
+_081283B2:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_812826C
+
+ thumb_func_start sub_81283BC
+sub_81283BC: @ 81283BC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ ldr r3, =gSprites
+ ldr r0, =gUnknown_0203AA38
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x1
+ strh r2, [r0, 0x3C]
+ ldr r0, =gUnknown_0203AA39
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x3C]
+ bl sub_8128DE0
+ adds r0, r4, 0
+ bl sub_8128950
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81283BC
+
+ thumb_func_start sub_8128414
+sub_8128414: @ 8128414
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ ldr r3, =gSprites
+ ldr r0, =gUnknown_0203AA38
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x1
+ strh r2, [r0, 0x3C]
+ ldr r0, =gUnknown_0203AA39
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x3C]
+ bl sub_8128DE0
+ ldr r5, =gStringVar4
+ ldr r1, =gText_CancelDecorating
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ ldr r2, =sub_8128B80
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl DisplayItemMessageOnField
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8128414
+
+ thumb_func_start sub_8128484
+sub_8128484: @ 8128484
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r4, r1, 16
+ bl MetatileBehavior_IsMB_B3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812849E
+ cmp r4, 0
+ beq _081284A2
+_0812849E:
+ movs r0, 0
+ b _081284A4
+_081284A2:
+ movs r0, 0x1
+_081284A4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8128484
+
+ thumb_func_start sub_81284AC
+sub_81284AC: @ 81284AC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 16
+ lsrs r4, r2, 16
+ lsls r3, 16
+ lsrs r5, r3, 16
+ lsls r1, 16
+ asrs r1, 16
+ ldr r3, =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ adds r0, 0x7
+ cmp r1, r0
+ bne _081284EC
+ lsls r1, r4, 16
+ asrs r1, 16
+ movs r3, 0x10
+ ldrsh r0, [r2, r3]
+ adds r0, 0x7
+ cmp r1, r0
+ bne _081284EC
+ cmp r5, 0
+ beq _081284EC
+ movs r0, 0
+ b _081284EE
+ .pool
+_081284EC:
+ movs r0, 0x1
+_081284EE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81284AC
+
+ thumb_func_start sub_81284F4
+sub_81284F4: @ 81284F4
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl MetatileBehavior_IsMB_B3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08128534
+ ldrb r0, [r5]
+ cmp r0, 0x21
+ bne _08128522
+ adds r0, r4, 0
+ bl MetatileBehavior_IsMB_C2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08128530
+_08128522:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsNormal
+ lsls r0, 24
+ cmp r0, 0
+ beq _08128534
+_08128530:
+ movs r0, 0x1
+ b _08128536
+_08128534:
+ movs r0, 0
+_08128536:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81284F4
+
+ thumb_func_start sub_812853C
+sub_812853C: @ 812853C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ str r1, [sp]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r1, =gTasks
+ lsls r0, 2
+ add r0, r10
+ lsls r0, 3
+ adds r0, r1
+ ldrb r2, [r0, 0x14]
+ str r2, [sp, 0x4]
+ ldrb r0, [r0, 0x12]
+ str r0, [sp, 0x8]
+ ldr r3, [sp]
+ ldrb r0, [r3, 0x11]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _0812856E
+ b _0812893C
+_0812856E:
+ lsls r0, 2
+ ldr r1, =_08128580
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08128580:
+ .4byte _08128594
+ .4byte _08128594
+ .4byte _08128680
+ .4byte _08128834
+ .4byte _081288B8
+_08128594:
+ movs r6, 0
+ ldr r0, [sp, 0x4]
+ cmp r6, r0
+ bcc _0812859E
+ b _0812893C
+_0812859E:
+ mov r1, r10
+ lsls r1, 2
+ str r1, [sp, 0x1C]
+_081285A4:
+ mov r2, r10
+ lsls r0, r2, 2
+ add r0, r10
+ lsls r0, 3
+ ldr r3, =gTasks
+ adds r0, r3
+ ldrh r0, [r0, 0xA]
+ subs r0, r6
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r7, 0
+ adds r6, 0x1
+ str r6, [sp, 0x14]
+ ldr r0, [sp, 0x8]
+ cmp r7, r0
+ bcs _0812866E
+ mov r1, r9
+ lsls r1, 16
+ str r1, [sp, 0xC]
+ asrs r1, 16
+ mov r9, r1
+_081285D0:
+ ldr r0, [sp, 0x1C]
+ add r0, r10
+ lsls r0, 3
+ ldr r2, =gTasks
+ adds r0, r2
+ ldrh r0, [r0, 0x8]
+ adds r0, r7
+ lsls r0, 16
+ mov r8, r0
+ asrs r6, r0, 16
+ adds r0, r6, 0
+ mov r1, r9
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, [sp, 0x4]
+ ldr r1, [sp, 0x14]
+ subs r0, r3, r1
+ ldr r2, [sp, 0x8]
+ adds r1, r0, 0
+ muls r1, r2
+ adds r1, r7
+ ldr r3, [sp]
+ ldr r0, [r3, 0x1C]
+ lsls r1, 1
+ adds r1, r0
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetBehaviorByMetatileId
+ movs r3, 0xF0
+ lsls r3, 8
+ adds r1, r3, 0
+ adds r5, r1, 0
+ ands r5, r0
+ adds r0, r4, 0
+ ldr r1, [sp]
+ bl sub_81284F4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08128632
+ b _0812890C
+_08128632:
+ mov r0, r10
+ adds r1, r6, 0
+ mov r2, r9
+ adds r3, r5, 0
+ bl sub_81284AC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08128646
+ b _0812890C
+_08128646:
+ mov r1, r8
+ lsrs r0, r1, 16
+ ldr r2, [sp, 0xC]
+ lsrs r1, r2, 16
+ movs r2, 0
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _08128662
+ cmp r4, 0x10
+ beq _08128662
+ b _0812890C
+_08128662:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _081285D0
+_0812866E:
+ ldr r1, [sp, 0x14]
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ ldr r2, [sp, 0x4]
+ cmp r6, r2
+ bcc _081285A4
+ b _0812893C
+ .pool
+_08128680:
+ movs r6, 0
+ mov r3, r10
+ lsls r3, 2
+ str r3, [sp, 0x1C]
+ ldr r0, [sp, 0x4]
+ subs r0, 0x1
+ str r0, [sp, 0x18]
+ cmp r6, r0
+ bge _0812876C
+ adds r0, r3, 0
+ add r0, r10
+ lsls r0, 3
+ str r0, [sp, 0x10]
+_0812869A:
+ ldr r1, [sp, 0x10]
+ adds r0, r1, r2
+ ldrh r0, [r0, 0xA]
+ subs r0, r6
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r7, 0
+ adds r6, 0x1
+ str r6, [sp, 0x14]
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcs _08128760
+ lsls r0, 16
+ str r0, [sp, 0x20]
+_081286B8:
+ ldr r1, [sp, 0x10]
+ adds r0, r1, r2
+ ldrh r0, [r0, 0x8]
+ adds r0, r7
+ lsls r0, 16
+ mov r8, r0
+ asrs r6, r0, 16
+ mov r2, r9
+ lsls r1, r2, 16
+ adds r0, r6, 0
+ asrs r1, 16
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, [sp, 0x4]
+ ldr r1, [sp, 0x14]
+ subs r0, r3, r1
+ ldr r2, [sp, 0x8]
+ adds r1, r0, 0
+ muls r1, r2
+ adds r1, r7
+ ldr r3, [sp]
+ ldr r0, [r3, 0x1C]
+ lsls r1, 1
+ adds r1, r0
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetBehaviorByMetatileId
+ movs r3, 0xF0
+ lsls r3, 8
+ adds r1, r3, 0
+ adds r5, r1, 0
+ ands r5, r0
+ adds r0, r4, 0
+ bl MetatileBehavior_IsNormal
+ lsls r0, 24
+ cmp r0, 0
+ bne _08128724
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8128484
+ lsls r0, 24
+ cmp r0, 0
+ bne _08128724
+ b _0812890C
+_08128724:
+ mov r0, r10
+ adds r1, r6, 0
+ ldr r3, [sp, 0x20]
+ asrs r2, r3, 16
+ adds r3, r5, 0
+ bl sub_81284AC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812873A
+ b _0812890C
+_0812873A:
+ mov r1, r8
+ lsrs r0, r1, 16
+ ldr r2, [sp, 0x20]
+ lsrs r1, r2, 16
+ movs r2, 0
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x10
+ beq _08128752
+ b _0812890C
+_08128752:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, =gTasks
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _081286B8
+_08128760:
+ ldr r1, [sp, 0x14]
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ ldr r3, [sp, 0x18]
+ cmp r6, r3
+ blt _0812869A
+_0812876C:
+ ldr r0, [sp, 0x1C]
+ add r0, r10
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0, 0xA]
+ ldr r1, [sp, 0x4]
+ subs r0, r1
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r7, 0
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _0812878C
+ b _0812893C
+_0812878C:
+ lsls r0, 16
+ str r0, [sp, 0x20]
+_08128790:
+ ldr r0, [sp, 0x1C]
+ add r0, r10
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ adds r0, r7
+ lsls r0, 16
+ mov r8, r0
+ asrs r6, r0, 16
+ mov r2, r9
+ lsls r1, r2, 16
+ adds r0, r6, 0
+ asrs r1, 16
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, [sp]
+ ldr r0, [r3, 0x1C]
+ lsls r1, r7, 1
+ adds r1, r0
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetBehaviorByMetatileId
+ movs r3, 0xF0
+ lsls r3, 8
+ adds r1, r3, 0
+ adds r5, r1, 0
+ ands r5, r0
+ adds r0, r4, 0
+ bl MetatileBehavior_IsNormal
+ lsls r0, 24
+ cmp r0, 0
+ bne _081287F2
+ adds r0, r4, 0
+ bl MetatileBehavior_IsMB_B7
+ lsls r0, 24
+ cmp r0, 0
+ bne _081287F2
+ b _0812890C
+_081287F2:
+ mov r0, r10
+ adds r1, r6, 0
+ ldr r3, [sp, 0x20]
+ asrs r2, r3, 16
+ adds r3, r5, 0
+ bl sub_81284AC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08128808
+ b _0812890C
+_08128808:
+ mov r1, r8
+ lsrs r0, r1, 16
+ ldr r2, [sp, 0x20]
+ lsrs r1, r2, 16
+ movs r2, 0
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _08128822
+ cmp r4, 0x10
+ bne _0812890C
+_08128822:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _08128790
+ b _0812893C
+ .pool
+_08128834:
+ movs r6, 0
+ ldr r0, [sp, 0x4]
+ cmp r6, r0
+ bcc _0812883E
+ b _0812893C
+_0812883E:
+ mov r1, r10
+ lsls r0, r1, 2
+ add r0, r10
+ lsls r1, r0, 3
+ ldr r2, =gTasks
+ adds r0, r1, r2
+ ldrh r0, [r0, 0xA]
+ subs r0, r6
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r7, 0
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcs _081288A4
+ adds r0, r2, 0
+ adds r1, r0
+ mov r8, r1
+ mov r1, r9
+ lsls r0, r1, 16
+ asrs r5, r0, 16
+_08128868:
+ mov r2, r8
+ ldrh r0, [r2, 0x8]
+ adds r0, r7
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsMB_B7
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812890C
+ adds r0, r4, 0
+ adds r1, r5, 0x1
+ bl MapGridGetMetatileIdAt
+ movs r1, 0xA3
+ lsls r1, 2
+ cmp r0, r1
+ beq _0812890C
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _08128868
+_081288A4:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, [sp, 0x4]
+ cmp r6, r0
+ bcc _0812883E
+ b _0812893C
+ .pool
+_081288B8:
+ mov r3, r10
+ lsls r1, r3, 2
+ adds r0, r1, r3
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0, 0xA]
+ mov r9, r0
+ movs r7, 0
+ str r1, [sp, 0x1C]
+ ldr r0, [sp, 0x8]
+ cmp r7, r0
+ bcs _0812893C
+ adds r6, r2, 0
+ mov r1, r9
+ lsls r1, 16
+ str r1, [sp, 0x20]
+_081288D8:
+ ldr r0, [sp, 0x1C]
+ add r0, r10
+ lsls r0, 3
+ adds r0, r6
+ ldrh r0, [r0, 0x8]
+ adds r0, r7
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ mov r2, r9
+ lsls r1, r2, 16
+ asrs r1, 16
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, [sp]
+ ldrb r0, [r3, 0x12]
+ cmp r0, 0x5
+ bne _08128910
+_08128900:
+ adds r0, r4, 0
+ bl MetatileBehavior_IsMB_C3
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812891C
+_0812890C:
+ movs r0, 0
+ b _0812893E
+_08128910:
+ adds r0, r4, 0
+ bl MetatileBehavior_IsMB_B5
+ lsls r0, 24
+ cmp r0, 0
+ beq _08128900
+_0812891C:
+ adds r0, r5, 0
+ ldr r2, [sp, 0x20]
+ lsrs r1, r2, 16
+ movs r2, 0
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x10
+ bne _0812890C
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _081288D8
+_0812893C:
+ movs r0, 0x1
+_0812893E:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_812853C
+
+ thumb_func_start sub_8128950
+sub_8128950: @ 8128950
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gUnknown_0203A172
+ ldrb r1, [r0]
+ ldr r0, =gUnknown_0203A14C
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r1, 5
+ ldr r0, =gDecorations
+ adds r1, r0
+ adds r0, r5, 0
+ bl sub_812853C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081289A4
+ ldr r4, =gStringVar4
+ ldr r1, =gText_PlaceItHere
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, =sub_81289D0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl DisplayItemMessageOnField
+ b _081289BE
+ .pool
+_081289A4:
+ movs r0, 0x20
+ bl PlaySE
+ ldr r4, =gStringVar4
+ ldr r1, =gText_CantBePlacedHere
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, =sub_8129020
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl DisplayItemMessageOnField
+_081289BE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8128950
+
+ thumb_func_start sub_81289D0
+sub_81289D0: @ 81289D0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8197930
+ ldr r1, =gUnknown_085A72C4
+ adds r0, r4, 0
+ bl sub_8121F68
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81289D0
+
+ thumb_func_start sub_81289F0
+sub_81289F0: @ 81289F0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ movs r1, 0
+ bl sub_8197434
+ adds r0, r4, 0
+ bl sub_8128AAC
+ ldr r2, =gDecorations
+ ldr r0, =gUnknown_0203A172
+ ldrb r1, [r0]
+ ldr r0, =gUnknown_0203A14C
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r3, [r0]
+ lsls r0, r3, 5
+ adds r0, r2
+ ldrb r0, [r0, 0x11]
+ cmp r0, 0x4
+ beq _08128A44
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ ldrh r1, [r1, 0xA]
+ adds r2, r3, 0
+ bl sub_8127D38
+ b _08128A64
+ .pool
+_08128A44:
+ ldr r2, =gUnknown_0203AA34
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ subs r0, 0x7
+ strh r0, [r2]
+ ldr r2, =gUnknown_0203AA36
+ ldrh r0, [r1, 0xA]
+ subs r0, 0x7
+ strh r0, [r2]
+ ldr r0, =gUnknown_08275D1F
+ bl ScriptContext1_SetupScript
+_08128A64:
+ ldr r2, =gSprites
+ ldr r0, =gUnknown_0203AA38
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x2
+ strh r1, [r0, 0x22]
+ ldr r0, =gMapHeader
+ ldrb r0, [r0, 0x14]
+ cmp r0, 0x56
+ bne _08128A84
+ bl sub_80EE104
+_08128A84:
+ adds r0, r4, 0
+ bl sub_8128BBC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81289F0
+
+ thumb_func_start sub_8128AAC
+sub_8128AAC: @ 8128AAC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r3, 0
+ ldr r0, =gUnknown_0203A17C
+ ldrb r1, [r0, 0x8]
+ adds r5, r0, 0
+ cmp r3, r1
+ bcs _08128AD2
+ ldr r4, [r5]
+_08128AC0:
+ adds r2, r4, r3
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08128AF0
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r1
+ bcc _08128AC0
+_08128AD2:
+ ldrb r0, [r5, 0x9]
+ cmp r0, 0
+ bne _08128B3C
+ movs r3, 0
+ ldr r0, =gUnknown_0203A152
+ ldrb r1, [r0]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _08128B28
+ b _08128B48
+ .pool
+_08128AF0:
+ ldr r0, =gUnknown_0203A172
+ ldrb r1, [r0]
+ ldr r0, =gUnknown_0203A14C
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r2, [r5, 0x4]
+ adds r2, r3
+ ldr r0, =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x8]
+ subs r0, 0x7
+ lsls r0, 4
+ ldrb r1, [r1, 0xA]
+ subs r1, 0x7
+ adds r0, r1
+ strb r0, [r2]
+ b _08128AD2
+ .pool
+_08128B28:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xF
+ bhi _08128B76
+ adds r1, r3, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08128B28
+ b _08128B6E
+_08128B3C:
+ movs r3, 0
+ ldr r0, =gUnknown_0203A162
+ ldrb r1, [r0]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _08128B5C
+_08128B48:
+ ldr r0, =gUnknown_0203A172
+ ldrb r0, [r0]
+ adds r0, 0x1
+ strb r0, [r2]
+ b _08128B76
+ .pool
+_08128B5C:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xB
+ bhi _08128B76
+ adds r1, r3, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08128B5C
+_08128B6E:
+ ldr r0, =gUnknown_0203A172
+ ldrb r0, [r0]
+ adds r0, 0x1
+ strb r0, [r1]
+_08128B76:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8128AAC
+
+ thumb_func_start sub_8128B80
+sub_8128B80: @ 8128B80
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8197930
+ ldr r1, =gUnknown_085A72CC
+ adds r0, r4, 0
+ bl sub_8121F68
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8128B80
+
+ thumb_func_start sub_8128BA0
+sub_8128BA0: @ 8128BA0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ bl sub_8197434
+ adds r0, r4, 0
+ bl sub_8128BBC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128BA0
+
+ thumb_func_start sub_8128BBC
+sub_8128BBC: @ 8128BBC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r1, =c1_overworld_prev_quest
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8128BBC
+
+ thumb_func_start c1_overworld_prev_quest
+c1_overworld_prev_quest: @ 8128BEC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _08128C10
+ cmp r0, 0x1
+ beq _08128C30
+ b _08128C4C
+ .pool
+_08128C10:
+ bl ScriptContext2_Enable
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08128C4C
+ adds r0, r4, 0
+ bl sub_8127B04
+ movs r0, 0x1
+ strh r0, [r5, 0xC]
+ b _08128C4C
+ .pool
+_08128C30:
+ bl sub_812A3C8
+ ldr r0, =0x00000be5
+ bl FreeSpritePaletteByTag
+ ldr r1, =gFieldCallback
+ ldr r0, =sub_8128CD4
+ str r0, [r1]
+ ldr r0, =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08128C4C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end c1_overworld_prev_quest
+
+ thumb_func_start sub_8128C64
+sub_8128C64: @ 8128C64
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r5, r1, 3
+ ldr r6, =gTasks + 0x8
+ adds r4, r5, r6
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08128C9C
+ cmp r0, 0x1
+ bgt _08128C8C
+ cmp r0, 0
+ beq _08128C96
+ b _08128CCA
+ .pool
+_08128C8C:
+ cmp r0, 0x2
+ beq _08128CA8
+ cmp r0, 0x3
+ beq _08128CB4
+ b _08128CCA
+_08128C96:
+ bl sub_80E9578
+ b _08128CAC
+_08128C9C:
+ ldr r0, =gUnknown_08275D0C
+ bl ScriptContext1_SetupScript
+ b _08128CAC
+ .pool
+_08128CA8:
+ bl ScriptContext2_Enable
+_08128CAC:
+ ldrh r0, [r4, 0x4]
+ adds r0, 0x1
+ strh r0, [r4, 0x4]
+ b _08128CCA
+_08128CB4:
+ bl sub_80ABDFC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08128CCA
+ adds r0, r6, 0
+ subs r0, 0x8
+ adds r0, r5, r0
+ ldr r1, =sub_812764C
+ str r1, [r0]
+_08128CCA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8128C64
+
+ thumb_func_start sub_8128CD4
+sub_8128CD4: @ 8128CD4
+ push {r4,lr}
+ bl ScriptContext2_Enable
+ bl pal_fill_black
+ ldr r0, =sub_8128C64
+ movs r1, 0x8
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_8127580
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8128CD4
+
+ thumb_func_start sub_8128D10
+sub_8128D10: @ 8128D10
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r2, r1, r0
+ ldr r0, =gUnknown_0203AA3A
+ ldrb r1, [r0]
+ adds r3, r0, 0
+ cmp r1, 0x1
+ bne _08128D48
+ movs r1, 0x2
+ ldrsh r0, [r2, r1]
+ movs r4, 0xC
+ ldrsh r1, [r2, r4]
+ subs r0, r1
+ subs r0, 0x6
+ cmp r0, 0
+ bge _08128D48
+ ldrh r0, [r2, 0x2]
+ adds r0, 0x1
+ b _08128D62
+ .pool
+_08128D48:
+ ldrb r0, [r3]
+ cmp r0, 0x2
+ bne _08128D6C
+ movs r0, 0x2
+ ldrsh r1, [r2, r0]
+ subs r1, 0x7
+ ldr r0, =gMapHeader
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ cmp r1, r0
+ blt _08128D6C
+ ldrh r0, [r2, 0x2]
+ subs r0, 0x1
+_08128D62:
+ strh r0, [r2, 0x2]
+ movs r0, 0
+ b _08128DAE
+ .pool
+_08128D6C:
+ ldrb r0, [r3]
+ cmp r0, 0x3
+ bne _08128D82
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ subs r0, 0x7
+ cmp r0, 0
+ bge _08128D82
+ ldrh r0, [r2]
+ adds r0, 0x1
+ b _08128DA2
+_08128D82:
+ ldrb r0, [r3]
+ cmp r0, 0x4
+ bne _08128DAC
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ movs r4, 0xA
+ ldrsh r0, [r2, r4]
+ adds r1, r0
+ subs r1, 0x8
+ ldr r0, =gMapHeader
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r1, r0
+ blt _08128DAC
+ ldrh r0, [r2]
+ subs r0, 0x1
+_08128DA2:
+ strh r0, [r2]
+ movs r0, 0
+ b _08128DAE
+ .pool
+_08128DAC:
+ movs r0, 0x1
+_08128DAE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8128D10
+
+ thumb_func_start sub_8128DB4
+sub_8128DB4: @ 8128DB4
+ push {lr}
+ ldr r0, =gMain
+ ldrh r0, [r0, 0x2C]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ beq _08128DD8
+ cmp r1, 0x80
+ beq _08128DD8
+ cmp r1, 0x20
+ beq _08128DD8
+ cmp r1, 0x10
+ beq _08128DD8
+ movs r0, 0
+ b _08128DDA
+ .pool
+_08128DD8:
+ movs r0, 0x1
+_08128DDA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8128DB4
+
+ thumb_func_start sub_8128DE0
+sub_8128DE0: @ 8128DE0
+ push {r4,lr}
+ ldr r1, =gUnknown_0203AA3A
+ movs r0, 0
+ strb r0, [r1]
+ ldr r4, =gSprites
+ ldr r3, =gUnknown_0203AA38
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r2, 0
+ strh r2, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x34]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8128DE0
+
+ thumb_func_start sub_8128E18
+sub_8128E18: @ 8128E18
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ mov r8, r2
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ ldr r5, =gSprites
+ ldr r3, =gUnknown_0203AA38
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x36
+ ldrsh r6, [r0, r1]
+ cmp r6, 0
+ beq _08128E46
+ b _08128F66
+_08128E46:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _08128E68
+ ldr r0, =gUnknown_085A72D4
+ movs r3, 0x18
+ ldrsh r1, [r4, r3]
+ lsls r1, 3
+ b _08128E76
+ .pool
+_08128E68:
+ cmp r0, 0x2
+ bne _08128E88
+ ldr r0, =gUnknown_085A72D4
+ movs r3, 0x18
+ ldrsh r1, [r4, r3]
+ lsls r1, 3
+ adds r0, 0x4
+_08128E76:
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r2, 0
+ bl _call_via_r1
+ b _08128FBA
+ .pool
+_08128E88:
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2C]
+ movs r7, 0xF0
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0x40
+ bne _08128EBC
+ ldr r1, =gUnknown_0203AA3A
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, =0x0000fffe
+ strh r1, [r0, 0x34]
+ ldrh r0, [r4, 0x2]
+ subs r0, 0x1
+ strh r0, [r4, 0x2]
+_08128EBC:
+ ldrh r1, [r2, 0x2C]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0x80
+ bne _08128EEC
+ ldr r1, =gUnknown_0203AA3A
+ movs r0, 0x2
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x2
+ strh r1, [r0, 0x34]
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+_08128EEC:
+ ldrh r1, [r2, 0x2C]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0x20
+ bne _08128F1C
+ ldr r1, =gUnknown_0203AA3A
+ movs r0, 0x3
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, =0x0000fffe
+ strh r1, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x34]
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+_08128F1C:
+ ldrh r1, [r2, 0x2C]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0x10
+ bne _08128F4C
+ ldr r1, =gUnknown_0203AA3A
+ movs r0, 0x4
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x2
+ strh r1, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x34]
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_08128F4C:
+ bl sub_8128DB4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08128F62
+ mov r0, r8
+ bl sub_8128D10
+ lsls r0, 24
+ cmp r0, 0
+ bne _08128F66
+_08128F62:
+ bl sub_8128DE0
+_08128F66:
+ ldr r0, =gUnknown_0203AA3A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08128F94
+ ldr r3, =gSprites
+ ldr r2, =gUnknown_0203AA38
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x36]
+ adds r1, 0x1
+ strh r1, [r0, 0x36]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r2, [r1, 0x36]
+ movs r0, 0x7
+ ands r0, r2
+ strh r0, [r1, 0x36]
+_08128F94:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08128FBA
+ ldr r3, =gMain
+ ldrh r1, [r3, 0x2E]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08128FAC
+ strh r2, [r4, 0x14]
+_08128FAC:
+ ldrh r1, [r3, 0x2E]
+ movs r2, 0x2
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08128FBA
+ strh r2, [r4, 0x14]
+_08128FBA:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8128E18
+
+ thumb_func_start sub_8128FD8
+sub_8128FD8: @ 8128FD8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8197434
+ ldr r2, =gSprites
+ ldr r0, =gUnknown_0203AA38
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r2, 0
+ strh r2, [r0, 0x3C]
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x1C]
+ ldr r1, =sub_8128E18
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8128FD8
+
+ thumb_func_start sub_8129020
+sub_8129020: @ 8129020
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0812903A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08129040
+_0812903A:
+ adds r0, r2, 0
+ bl sub_8128FD8
+_08129040:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8129020
+
+ thumb_func_start sub_8129048
+sub_8129048: @ 8129048
+ push {lr}
+ sub sp, 0x4
+ adds r1, r0, 0
+ mov r2, sp
+ movs r0, 0
+ strh r0, [r2]
+ ldr r2, =0x01000452
+ mov r0, sp
+ bl CpuSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8129048
+
+ thumb_func_start sub_8129068
+sub_8129068: @ 8129068
+ push {lr}
+ adds r2, r0, 0
+ lsls r1, 16
+ ldr r0, =gTilesetPointer_SecretBase
+ ldr r0, [r0]
+ lsrs r1, 11
+ ldr r0, [r0, 0x8]
+ adds r0, r1
+ adds r1, r2, 0
+ movs r2, 0x8
+ bl CpuFastSet
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8129068
+
+ thumb_func_start sub_8129088
+sub_8129088: @ 8129088
+ push {r4-r7,lr}
+ sub sp, 0x20
+ adds r7, r0, 0
+ lsls r1, 16
+ lsrs r2, r1, 16
+ lsrs r4, r1, 26
+ adds r5, r4, 0
+ cmp r2, 0
+ beq _0812909E
+ ldr r0, =0x000003ff
+ ands r2, r0
+_0812909E:
+ ldr r0, =gTilesetPointer_SecretBase
+ ldr r0, [r0]
+ lsls r1, r2, 5
+ ldr r0, [r0, 0x4]
+ adds r0, r1
+ mov r1, sp
+ movs r2, 0x8
+ bl CpuFastSet
+ cmp r4, 0x1
+ beq _081290DE
+ cmp r4, 0x1
+ bgt _081290C8
+ cmp r4, 0
+ beq _081290D2
+ b _0812919A
+ .pool
+_081290C8:
+ cmp r5, 0x2
+ beq _0812913E
+ cmp r5, 0x3
+ beq _08129176
+ b _0812919A
+_081290D2:
+ mov r0, sp
+ adds r1, r7, 0
+ movs r2, 0x8
+ bl CpuFastSet
+ b _0812919A
+_081290DE:
+ movs r5, 0
+ movs r6, 0xF
+_081290E2:
+ lsls r4, r5, 2
+ adds r4, r7
+ adds r5, 0x1
+ lsls r3, r5, 2
+ subs r0, r3, 0x1
+ add r0, sp
+ ldrb r2, [r0]
+ lsrs r1, r2, 4
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 4
+ adds r1, r0
+ strb r1, [r4]
+ subs r0, r3, 0x2
+ add r0, sp
+ ldrb r2, [r0]
+ lsrs r1, r2, 4
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 4
+ adds r1, r0
+ strb r1, [r4, 0x1]
+ subs r0, r3, 0x3
+ add r0, sp
+ ldrb r2, [r0]
+ lsrs r1, r2, 4
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 4
+ adds r1, r0
+ strb r1, [r4, 0x2]
+ subs r3, 0x4
+ mov r1, sp
+ adds r0, r1, r3
+ ldrb r2, [r0]
+ lsrs r1, r2, 4
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 4
+ adds r1, r0
+ strb r1, [r4, 0x3]
+ lsls r5, 16
+ lsrs r5, 16
+ cmp r5, 0x7
+ bls _081290E2
+ b _0812919A
+_0812913E:
+ movs r5, 0
+ movs r3, 0x7
+_08129142:
+ lsls r2, r5, 2
+ adds r2, r7
+ subs r1, r3, r5
+ lsls r1, 2
+ mov r4, sp
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ adds r0, r1, 0x1
+ add r0, sp
+ ldrb r0, [r0]
+ strb r0, [r2, 0x1]
+ adds r0, r1, 0x2
+ add r0, sp
+ ldrb r0, [r0]
+ strb r0, [r2, 0x2]
+ adds r1, 0x3
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ strb r0, [r2, 0x3]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x7
+ bls _08129142
+ b _0812919A
+_08129176:
+ movs r5, 0
+ movs r4, 0x1F
+ movs r6, 0xF
+_0812917C:
+ adds r3, r7, r5
+ subs r0, r4, r5
+ add r0, sp
+ ldrb r2, [r0]
+ lsrs r1, r2, 4
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 4
+ adds r1, r0
+ strb r1, [r3]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1F
+ bls _0812917C
+_0812919A:
+ add sp, 0x20
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129088
+
+ thumb_func_start sub_81291A4
+sub_81291A4: @ 81291A4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+_081291AA:
+ lsls r0, r4, 5
+ adds r0, 0x84
+ adds r0, r5, r0
+ lsls r2, r4, 1
+ adds r1, r5, 0x4
+ adds r1, r2
+ ldrh r1, [r1]
+ bl sub_8129088
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3F
+ bls _081291AA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81291A4
+
+ thumb_func_start sub_81291CC
+sub_81291CC: @ 81291CC
+ lsls r0, 16
+ ldr r1, =gTilesetPointer_SecretBaseRedCave
+ ldr r1, [r1]
+ ldr r1, [r1, 0xC]
+ lsrs r0, 15
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, =0x00000fff
+ ands r0, r1
+ bx lr
+ .pool
+ thumb_func_end sub_81291CC
+
+ thumb_func_start sub_81291E8
+sub_81291E8: @ 81291E8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x12]
+ movs r6, 0
+ ldr r1, =gUnknown_085A71B0
+ lsls r5, r0, 4
+ adds r0, r5, r1
+ ldrb r0, [r0, 0xC]
+ cmp r6, r0
+ bcs _0812924C
+ adds r7, r1, 0
+_08129204:
+ mov r4, r8
+ ldm r4!, {r1}
+ adds r0, r7, 0x4
+ adds r0, r5, r0
+ ldr r0, [r0]
+ adds r0, r6
+ ldrb r0, [r0]
+ ldr r1, [r1, 0x1C]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r1, r7, 0
+ adds r1, 0x8
+ adds r1, r5, r1
+ ldr r1, [r1]
+ adds r1, r6
+ lsls r0, 3
+ ldrb r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_81291CC
+ adds r2, r5, r7
+ ldr r1, [r2]
+ adds r1, r6
+ ldrb r1, [r1]
+ lsls r1, 1
+ adds r4, r1
+ strh r0, [r4]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r2, [r2, 0xC]
+ cmp r6, r2
+ bcc _08129204
+_0812924C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81291E8
+
+ thumb_func_start sub_812925C
+sub_812925C: @ 812925C
+ push {r4,r5,lr}
+ lsls r0, 24
+ ldr r3, =gUnknown_0203AA3C
+ movs r1, 0
+ strb r1, [r3]
+ ldrb r2, [r3, 0x1]
+ subs r1, 0x4
+ ands r1, r2
+ movs r5, 0xD
+ negs r5, r5
+ ands r1, r5
+ movs r2, 0x11
+ negs r2, r2
+ ands r1, r2
+ subs r2, 0x10
+ ands r1, r2
+ strb r1, [r3, 0x1]
+ ldr r1, =gUnknown_085A7250
+ lsrs r0, 22
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r4, 0x3F
+ lsls r1, 6
+ strb r1, [r3, 0x1]
+ ldrh r2, [r3, 0x2]
+ ldr r1, =0xfffffe00
+ ands r1, r2
+ strh r1, [r3, 0x2]
+ ldrb r2, [r3, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r3, 0x3]
+ ldrb r0, [r0, 0x1]
+ lsls r0, 6
+ ands r4, r1
+ orrs r4, r0
+ strb r4, [r3, 0x3]
+ ldrh r1, [r3, 0x4]
+ ldr r0, =0xfffffc00
+ ands r0, r1
+ strh r0, [r3, 0x4]
+ ldrb r0, [r3, 0x5]
+ ands r5, r0
+ movs r0, 0xF
+ ands r5, r0
+ strb r5, [r3, 0x5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_812925C
+
+ thumb_func_start sub_81292D0
+sub_81292D0: @ 81292D0
+ movs r1, 0
+ strh r1, [r0, 0x32]
+ strh r1, [r0, 0x34]
+ strh r1, [r0, 0x36]
+ strh r1, [r0, 0x38]
+ strh r1, [r0, 0x3A]
+ strh r1, [r0, 0x3C]
+ ldr r1, =sub_81292E8
+ str r1, [r0, 0x1C]
+ bx lr
+ .pool
+ thumb_func_end sub_81292D0
+
+ thumb_func_start sub_81292E8
+sub_81292E8: @ 81292E8
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _08129322
+ movs r1, 0x3A
+ ldrsh r0, [r2, r1]
+ cmp r0, 0xE
+ bgt _0812930A
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ b _08129314
+_0812930A:
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+_08129314:
+ strb r0, [r3]
+ ldrh r0, [r2, 0x3A]
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ strh r0, [r2, 0x3A]
+ b _0812932E
+_08129322:
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0812932E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81292E8
+
+ thumb_func_start gpu_pal_decompress_alloc_tag_and_upload
+gpu_pal_decompress_alloc_tag_and_upload: @ 8129334
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ bl sub_8129048
+ lsls r4, 5
+ ldr r0, =gDecorations
+ adds r4, r0
+ str r4, [r5]
+ ldrb r0, [r4, 0x11]
+ cmp r0, 0x4
+ beq _081293B4
+ ldr r0, =0x00000be5
+ bl FreeSpritePaletteByTag
+ adds r0, r5, 0
+ bl sub_81291E8
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x12]
+ bl sub_812925C
+ adds r0, r5, 0
+ bl sub_81291A4
+ ldr r1, =0x00000884
+ adds r0, r5, r1
+ ldr r1, =gTilesetPointer_SecretBaseRedCave
+ ldr r2, [r1]
+ ldr r1, [r5]
+ ldr r1, [r1, 0x1C]
+ ldrh r1, [r1]
+ ldr r2, [r2, 0xC]
+ lsls r1, 4
+ adds r1, r2
+ ldrh r1, [r1, 0xE]
+ lsrs r1, 12
+ bl sub_8129068
+ ldr r0, =gUnknown_085A72BC
+ bl LoadSpritePalette
+ ldr r0, =gUnknown_085A728C
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ b _081293C6
+ .pool
+_081293B4:
+ ldr r0, [r4, 0x1C]
+ ldrh r0, [r0]
+ ldr r1, =SpriteCallbackDummy
+ movs r2, 0x1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl AddPseudoFieldObject
+_081293C6:
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end gpu_pal_decompress_alloc_tag_and_upload
+
+ thumb_func_start AddDecorationIconObjectFromIconTable
+@ u8 AddDecorationIconObjectFromIconTable(u16 tilesTag, u16 paletteTag, u8 decorationId)
+AddDecorationIconObjectFromIconTable: @ 81293D8
+ push {r4-r7,lr}
+ sub sp, 0x10
+ lsls r0, 16
+ lsrs r7, r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 24
+ lsrs r5, r2, 24
+ bl AllocItemIconTemporaryBuffers
+ lsls r0, 24
+ cmp r0, 0
+ beq _08129490
+ adds r0, r5, 0
+ movs r1, 0
+ bl GetDecorationIconPicOrPalette
+ ldr r4, =gUnknown_0203CEBC
+ ldr r1, [r4]
+ bl LZDecompressWram
+ ldr r0, [r4]
+ ldr r4, =gUnknown_0203CEC0
+ ldr r1, [r4]
+ bl CopyItemIconPicTo4x4Buffer
+ ldr r0, [r4]
+ str r0, [sp]
+ ldr r4, =0xffff0000
+ ldr r0, [sp, 0x4]
+ ands r0, r4
+ movs r1, 0x80
+ lsls r1, 2
+ orrs r0, r1
+ lsls r2, r7, 16
+ ldr r1, =0x0000ffff
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl GetDecorationIconPicOrPalette
+ str r0, [sp, 0x8]
+ add r0, sp, 0x8
+ ldr r1, [r0, 0x4]
+ ands r1, r4
+ orrs r1, r6
+ str r1, [r0, 0x4]
+ bl LoadCompressedObjectPalette
+ movs r0, 0x18
+ bl Alloc
+ adds r5, r0, 0
+ adds r1, r5, 0
+ ldr r0, =gUnknown_08614FF4
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ strh r7, [r5]
+ strh r6, [r5, 0x2]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl FreeItemIconTemporaryBuffers
+ adds r0, r5, 0
+ bl Free
+ adds r0, r4, 0
+ b _08129492
+ .pool
+_08129490:
+ movs r0, 0x40
+_08129492:
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end AddDecorationIconObjectFromIconTable
+
+ thumb_func_start GetDecorationIconPicOrPalette
+@ u32 GetDecorationIconPicOrPalette(u16 decorationId, u8 which)
+GetDecorationIconPicOrPalette: @ 812949C
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 24
+ lsrs r0, r1, 24
+ cmp r3, 0x78
+ bls _081294AC
+ movs r3, 0
+_081294AC:
+ ldr r2, =gUnknown_085A6BE8
+ lsls r0, 2
+ lsls r1, r3, 3
+ adds r0, r1
+ adds r0, r2
+ ldr r0, [r0]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end GetDecorationIconPicOrPalette
+
+ thumb_func_start AddDecorationIconObjectFromFieldObject
+@ u8 AddDecorationIconObjectFromFieldObject(u16 tilesTag, u16 paletteTag, u8 decorationId)
+AddDecorationIconObjectFromFieldObject: @ 81294C0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ adds r4, r2, 0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r6, =gUnknown_0203A190
+ adds r0, r6, 0
+ bl sub_8129048
+ lsls r4, 5
+ ldr r0, =gDecorations
+ adds r4, r0
+ str r4, [r6]
+ ldrb r0, [r4, 0x11]
+ cmp r0, 0x4
+ beq _081295A4
+ adds r0, r6, 0
+ bl sub_81291E8
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x12]
+ bl sub_812925C
+ adds r0, r6, 0
+ bl sub_81291A4
+ ldr r0, =0x00000884
+ adds r5, r6, r0
+ ldr r0, =gTilesetPointer_SecretBaseRedCave
+ ldr r1, [r0]
+ ldr r0, [r6]
+ ldr r0, [r0, 0x1C]
+ ldrh r0, [r0]
+ ldr r1, [r1, 0xC]
+ lsls r0, 4
+ adds r0, r1
+ ldrh r1, [r0, 0xE]
+ lsrs r1, 12
+ adds r0, r5, 0
+ bl sub_8129068
+ adds r0, r6, 0
+ adds r0, 0x84
+ str r0, [sp, 0x4]
+ ldr r1, =gUnknown_085A72F4
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x12]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 21
+ ldr r4, =0xffff0000
+ mov r2, r8
+ lsls r1, r2, 16
+ lsrs r0, 16
+ orrs r0, r1
+ str r0, [sp, 0x8]
+ add r0, sp, 0x4
+ bl LoadSpriteSheet
+ str r5, [sp, 0xC]
+ add r0, sp, 0xC
+ ldr r1, [r0, 0x4]
+ ands r1, r4
+ orrs r1, r7
+ str r1, [r0, 0x4]
+ bl LoadSpritePalette
+ movs r0, 0x18
+ bl Alloc
+ adds r4, r0, 0
+ adds r1, r4, 0
+ ldr r0, =gUnknown_085A72A4
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ mov r3, r8
+ strh r3, [r4]
+ strh r7, [r4, 0x2]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ bl Free
+ b _081295BA
+ .pool
+_081295A4:
+ ldr r0, [r4, 0x1C]
+ ldrh r0, [r0]
+ ldr r1, =SpriteCallbackDummy
+ movs r2, 0x1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r5, r0, 24
+_081295BA:
+ adds r0, r5, 0
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end AddDecorationIconObjectFromFieldObject
+
+ thumb_func_start AddDecorationIconObject
+@ u8 AddDecorationIconObject(u8 decorationId, u16 x, u16 y, u8 priority, u16 tilesTag, u16 paletteTag)
+AddDecorationIconObject: @ 81295CC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r4, [sp, 0x24]
+ ldr r5, [sp, 0x28]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r12, r6
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ mov r9, r8
+ lsls r2, 16
+ lsrs r7, r2, 16
+ mov r10, r7
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp]
+ lsls r4, 16
+ lsrs r4, 16
+ adds r3, r4, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r2, r5, 0
+ cmp r6, 0x78
+ bls _08129634
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl AddDecorationIconObjectFromIconTable
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x40
+ beq _08129696
+ ldr r2, =gSprites
+ lsls r3, r4, 4
+ adds r1, r3, r4
+ lsls r1, 2
+ adds r1, r2
+ mov r5, r8
+ lsls r0, r5, 16
+ asrs r0, 16
+ adds r0, 0x4
+ strh r0, [r1, 0x24]
+ lsls r0, r7, 16
+ b _081296B2
+ .pool
+_08129634:
+ ldr r0, =gUnknown_085A6BE8
+ lsls r1, r6, 3
+ adds r1, r0
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _08129684
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl AddDecorationIconObjectFromFieldObject
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x40
+ beq _08129696
+ ldr r1, =gSprites
+ lsls r2, r4, 4
+ adds r0, r2, r4
+ lsls r0, 2
+ adds r5, r0, r1
+ mov r0, r8
+ strh r0, [r5, 0x24]
+ adds r0, r6, 0
+ subs r0, 0x2A
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08129680
+ lsls r0, r7, 16
+ asrs r0, 16
+ subs r0, 0x4
+ strh r0, [r5, 0x26]
+ b _081296BC
+ .pool
+_08129680:
+ strh r7, [r5, 0x26]
+ b _081296BC
+_08129684:
+ adds r0, r3, 0
+ adds r1, r2, 0
+ mov r2, r12
+ bl AddDecorationIconObjectFromIconTable
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x40
+ bne _0812969A
+_08129696:
+ movs r0, 0x40
+ b _081296D8
+_0812969A:
+ ldr r2, =gSprites
+ lsls r3, r4, 4
+ adds r1, r3, r4
+ lsls r1, 2
+ adds r1, r2
+ mov r5, r9
+ lsls r0, r5, 16
+ asrs r0, 16
+ adds r0, 0x4
+ strh r0, [r1, 0x24]
+ mov r5, r10
+ lsls r0, r5, 16
+_081296B2:
+ asrs r0, 16
+ adds r0, 0x4
+ strh r0, [r1, 0x26]
+ adds r1, r2, 0
+ adds r2, r3, 0
+_081296BC:
+ adds r2, r4
+ lsls r2, 2
+ adds r2, r1
+ movs r0, 0x3
+ ldr r1, [sp]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ adds r0, r4, 0
+_081296D8:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end AddDecorationIconObject
+
+ thumb_func_start sub_81296EC
+sub_81296EC: @ 81296EC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, =gUnknown_0203A17C
+ ldr r1, [r3]
+ adds r1, r0
+ movs r2, 0
+ strb r2, [r1]
+ ldr r1, [r3, 0x4]
+ adds r1, r0
+ strb r2, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81296EC
+
+ thumb_func_start sub_8129708
+sub_8129708: @ 8129708
+ push {r4-r6,lr}
+ ldr r6, =gSpecialVar_0x8005
+ movs r0, 0
+ strh r0, [r6]
+ ldr r2, =gScriptResult
+ strh r0, [r2]
+ ldr r4, =gSpecialVar_0x8004
+ ldr r1, =gUnknown_0203AAC4
+ ldrh r0, [r4]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08129744
+ movs r0, 0x1
+ strh r0, [r2]
+ b _08129796
+ .pool
+_08129738:
+ ldr r1, =gSpecialVar_0x8006
+ ldrb r0, [r2]
+ strh r0, [r1]
+ b _08129796
+ .pool
+_08129744:
+ ldr r3, =gDecorations
+ ldr r2, =gUnknown_0203A17C
+ ldr r1, =gUnknown_0203AA44
+ ldrh r0, [r4]
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrb r1, [r4]
+ ldr r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 5
+ adds r0, r3
+ ldrb r0, [r0, 0x11]
+ cmp r0, 0x4
+ bne _08129796
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6]
+ ldrb r0, [r4]
+ bl sub_81296EC
+ movs r1, 0
+ ldr r0, =gMapHeader
+ ldr r0, [r0, 0x4]
+ ldrb r2, [r0]
+ cmp r1, r2
+ bcs _08129796
+ ldr r5, [r0, 0x4]
+ ldrh r4, [r6]
+ adds r3, r2, 0
+_0812977E:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r2, r0, r5
+ ldrh r0, [r2, 0x14]
+ cmp r0, r4
+ beq _08129738
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r3
+ bcc _0812977E
+_08129796:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8129708
+
+ thumb_func_start sub_81297AC
+sub_81297AC: @ 81297AC
+ push {r4-r6,lr}
+ movs r2, 0
+ ldr r0, =gMapHeader
+ ldr r0, [r0, 0x4]
+ ldrb r1, [r0]
+ cmp r2, r1
+ bcs _081297F0
+ adds r3, r0, 0
+ ldr r5, [r3, 0x4]
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r4, [r0]
+ ldr r6, =gSpecialVar_0x8005
+_081297C4:
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r5
+ ldrh r0, [r1, 0x14]
+ cmp r0, r4
+ bne _081297E4
+ ldrb r0, [r1]
+ strh r0, [r6]
+ b _081297F0
+ .pool
+_081297E4:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrb r0, [r3]
+ cmp r2, r0
+ bcc _081297C4
+_081297F0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81297AC
+
+ thumb_func_start sub_81297F8
+sub_81297F8: @ 81297F8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ movs r6, 0
+ b _081298BE
+_08129808:
+ ldr r3, =gUnknown_0203AA44
+ lsls r5, r6, 3
+ adds r4, r5, r3
+ ldrb r1, [r4]
+ ldr r2, =gUnknown_0203A17C
+ ldr r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 5
+ ldr r7, =gDecorations
+ adds r0, r7
+ ldrb r2, [r0, 0x11]
+ ldr r7, =gUnknown_0203A17C
+ ldr r0, [r7, 0x4]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsrs r1, r0, 4
+ mov r8, r1
+ movs r7, 0xF
+ adds r1, r7, 0
+ ands r1, r0
+ str r1, [sp]
+ adds r7, r5, 0
+ adds r6, 0x1
+ str r6, [sp, 0x4]
+ cmp r2, 0x4
+ beq _081298B8
+ movs r6, 0
+ ldrb r4, [r4, 0x2]
+ cmp r6, r4
+ bcs _081298AE
+_08129846:
+ movs r4, 0
+ adds r0, r5, r3
+ adds r2, r6, 0x1
+ mov r10, r2
+ ldrb r0, [r0, 0x1]
+ cmp r4, r0
+ bcs _0812989C
+ ldr r3, =gUnknown_0203AA44
+ adds r3, r7
+ mov r9, r3
+ subs r5, r6, 0x7
+ str r5, [sp, 0x8]
+_0812985E:
+ adds r0, r4, 0x7
+ add r0, r8
+ ldr r1, =gMapHeader
+ ldr r3, [r1]
+ ldr r1, [sp]
+ subs r2, r1, r6
+ ldr r1, [r3]
+ muls r2, r1
+ mov r5, r8
+ adds r1, r5, r4
+ adds r1, r2
+ ldr r2, [r3, 0xC]
+ lsls r1, 1
+ adds r1, r2
+ ldrh r1, [r1]
+ movs r3, 0xC0
+ lsls r3, 6
+ adds r2, r3, 0
+ orrs r2, r1
+ ldr r5, [sp]
+ ldr r3, [sp, 0x8]
+ subs r1, r5, r3
+ bl MapGridSetMetatileEntryAt
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r5, r9
+ ldrb r5, [r5, 0x1]
+ cmp r4, r5
+ bcc _0812985E
+_0812989C:
+ mov r1, r10
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ ldr r3, =gUnknown_0203AA44
+ adds r5, r7, 0
+ adds r0, r7, r3
+ ldrb r0, [r0, 0x2]
+ cmp r6, r0
+ bcc _08129846
+_081298AE:
+ ldr r2, =gUnknown_0203AA44
+ adds r0, r7, r2
+ ldrb r0, [r0]
+ bl sub_81296EC
+_081298B8:
+ ldr r3, [sp, 0x4]
+ lsls r0, r3, 24
+ lsrs r6, r0, 24
+_081298BE:
+ ldr r0, =gUnknown_0203AAC4
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _08129808
+ 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_81297F8
+
+ thumb_func_start sub_81298EC
+sub_81298EC: @ 81298EC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08129928
+ cmp r0, 0x1
+ bgt _08129914
+ cmp r0, 0
+ beq _0812991E
+ b _08129994
+ .pool
+_08129914:
+ cmp r0, 0x2
+ beq _08129954
+ cmp r0, 0x3
+ beq _08129968
+ b _08129994
+_0812991E:
+ bl sub_81297F8
+ movs r0, 0x1
+ strh r0, [r4, 0xC]
+ b _08129994
+_08129928:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08129994
+ bl DrawWholeMapView
+ ldr r0, =gUnknown_08275D2E
+ bl ScriptContext1_SetupScript
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8197434
+ movs r0, 0x2
+ strh r0, [r4, 0xC]
+ b _08129994
+ .pool
+_08129954:
+ bl ScriptContext2_Enable
+ adds r0, r5, 0
+ bl sub_8127814
+ bl pal_fill_black
+ movs r0, 0x3
+ strh r0, [r4, 0xC]
+ b _08129994
+_08129968:
+ bl sub_80ABDFC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08129994
+ ldr r4, =gStringVar4
+ ldr r1, =gText_DecorationReturnedToPC
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, =sub_8129D64
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl DisplayItemMessageOnField
+ ldr r0, =gMapHeader
+ ldrb r0, [r0, 0x14]
+ cmp r0, 0x56
+ bne _08129994
+ bl sub_80EE104
+_08129994:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81298EC
+
+ thumb_func_start sub_81299AC
+sub_81299AC: @ 81299AC
+ push {lr}
+ movs r1, 0
+ ldr r0, =gUnknown_0203A17C
+ ldrb r2, [r0, 0x8]
+ cmp r1, r2
+ bcs _081299D6
+ ldr r3, [r0]
+_081299BA:
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081299CC
+ movs r0, 0x1
+ b _081299D8
+ .pool
+_081299CC:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bcc _081299BA
+_081299D6:
+ movs r0, 0
+_081299D8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81299AC
+
+ thumb_func_start SetUpPuttingAwayDecorationPlayerAvatar
+SetUpPuttingAwayDecorationPlayerAvatar: @ 81299DC
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ bl player_get_direction_lower_nybble
+ ldr r3, =gUnknown_0203AA38
+ ldr r2, =gSprites
+ ldr r4, =gUnknown_03005DD0
+ ldr r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ strb r0, [r3]
+ bl sub_812A39C
+ ldr r0, =gUnknown_085A7404
+ movs r1, 0x78
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r4, 0x4]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _08129A3C
+ ldr r1, =SpriteCallbackDummy
+ str r0, [sp]
+ movs r0, 0xC1
+ b _08129A44
+ .pool
+_08129A3C:
+ ldr r1, =SpriteCallbackDummy
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xC2
+_08129A44:
+ movs r2, 0x88
+ movs r3, 0x48
+ bl AddPseudoFieldObject
+ ldr r1, =gUnknown_0203AA39
+ strb r0, [r1]
+ ldr r6, =gSprites
+ ldr r0, =gUnknown_0203AA39
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x5]
+ movs r4, 0xD
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ movs r2, 0x4
+ mov r8, r2
+ mov r2, r8
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ ldr r5, =gUnknown_0203AA38
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+ ldr r0, =gUnknown_03005DD0
+ ldr r0, [r0, 0x4]
+ strb r0, [r5]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0, 0x5]
+ ands r4, r1
+ mov r1, r8
+ orrs r4, r1
+ strb r4, [r0, 0x5]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end SetUpPuttingAwayDecorationPlayerAvatar
+
+ thumb_func_start sub_8129ABC
+sub_8129ABC: @ 8129ABC
+ 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, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08129B0C
+ cmp r0, 0x1
+ bgt _08129AE4
+ cmp r0, 0
+ beq _08129AEA
+ b _08129B2E
+ .pool
+_08129AE4:
+ cmp r0, 0x2
+ beq _08129B1A
+ b _08129B2E
+_08129AEA:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08129B2E
+ adds r0, r5, 0
+ bl sub_8127ACC
+ movs r0, 0x1
+ strh r0, [r4, 0x4]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xA]
+ b _08129B2E
+ .pool
+_08129B0C:
+ bl SetUpPuttingAwayDecorationPlayerAvatar
+ bl pal_fill_black
+ movs r0, 0x2
+ strh r0, [r4, 0x4]
+ b _08129B2E
+_08129B1A:
+ bl sub_80ABDFC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08129B2E
+ strh r0, [r4, 0x18]
+ adds r0, r5, 0
+ bl sub_8129B34
+_08129B2E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129ABC
+
+ thumb_func_start sub_8129B34
+sub_8129B34: @ 8129B34
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8197434
+ ldr r4, =gSprites
+ ldr r3, =gUnknown_0203AA38
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r6, 0
+ strh r6, [r0, 0x3C]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, =sub_812A36C
+ str r1, [r0]
+ ldr r2, =gUnknown_0203AA39
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x88
+ strh r1, [r0, 0x20]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x48
+ strh r1, [r0, 0x22]
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r6, [r0, 0x1C]
+ ldr r1, =sub_8128E18
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8129B34
+
+ thumb_func_start sub_8129BCC
+sub_8129BCC: @ 8129BCC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ bl sub_8128DE0
+ adds r0, r4, 0
+ bl sub_8129C74
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8129BCC
+
+ thumb_func_start sub_8129BF8
+sub_8129BF8: @ 8129BF8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ bl sub_8128DE0
+ ldr r3, =gSprites
+ ldr r5, =gUnknown_0203AA38
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, 0x1C
+ adds r0, r3
+ ldr r1, =SpriteCallbackDummy
+ str r1, [r0]
+ ldr r5, =gStringVar4
+ ldr r1, =gText_StopPuttingAwayDecorations
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ ldr r2, =sub_812A1F0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl DisplayItemMessageOnField
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8129BF8
+
+ thumb_func_start sub_8129C74
+sub_8129C74: @ 8129C74
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_812A0E8
+ ldr r0, =gUnknown_0203AAC4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08129CA8
+ ldr r4, =gStringVar4
+ ldr r1, =gText_ReturnDecorationToPC
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, =sub_812A1A0
+ b _08129D14
+ .pool
+_08129CA8:
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl MetatileBehavior_IsSecretBasePC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08129CDE
+ adds r0, r4, 0
+ bl MetatileBehavior_IsMB_C5
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08129D3C
+_08129CDE:
+ ldr r3, =gSprites
+ ldr r4, =gUnknown_0203AA38
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, 0x1C
+ adds r0, r3
+ ldr r1, =SpriteCallbackDummy
+ str r1, [r0]
+ ldr r4, =gStringVar4
+ ldr r1, =gText_StopPuttingAwayDecorations
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, =sub_812A1F0
+_08129D14:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl DisplayItemMessageOnField
+ b _08129D50
+ .pool
+_08129D3C:
+ ldr r4, =gStringVar4
+ ldr r1, =gText_NoDecorationHere
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, =sub_8129D64
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl DisplayItemMessageOnField
+_08129D50:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8129C74
+
+ thumb_func_start sub_8129D64
+sub_8129D64: @ 8129D64
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08129D7E
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08129D84
+_08129D7E:
+ adds r0, r2, 0
+ bl sub_8129B34
+_08129D84:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8129D64
+
+ thumb_func_start sub_8129D8C
+sub_8129D8C: @ 8129D8C
+ push {lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ ldr r1, =gDecorations
+ lsrs r0, 19
+ adds r0, r1
+ ldrb r1, [r0, 0x12]
+ cmp r1, 0
+ bne _08129DA8
+ movs r0, 0x1
+ strb r0, [r2, 0x1]
+ b _08129E06
+ .pool
+_08129DA8:
+ cmp r1, 0x1
+ bne _08129DB4
+ movs r0, 0x2
+ strb r0, [r2, 0x1]
+ strb r1, [r2, 0x2]
+ b _08129E08
+_08129DB4:
+ cmp r1, 0x2
+ bne _08129DC0
+ movs r0, 0x3
+ strb r0, [r2, 0x1]
+ movs r0, 0x1
+ b _08129E06
+_08129DC0:
+ cmp r1, 0x3
+ bne _08129DC8
+ movs r0, 0x4
+ b _08129E02
+_08129DC8:
+ cmp r1, 0x4
+ bne _08129DD2
+ movs r0, 0x2
+ strb r0, [r2, 0x1]
+ b _08129E06
+_08129DD2:
+ cmp r1, 0x5
+ bne _08129DDA
+ movs r0, 0x1
+ b _08129E02
+_08129DDA:
+ cmp r1, 0x6
+ bne _08129DE6
+ movs r0, 0x1
+ strb r0, [r2, 0x1]
+ movs r0, 0x3
+ b _08129E06
+_08129DE6:
+ cmp r1, 0x7
+ bne _08129DF2
+ movs r0, 0x2
+ strb r0, [r2, 0x1]
+ movs r0, 0x4
+ b _08129E06
+_08129DF2:
+ cmp r1, 0x8
+ bne _08129DFC
+ movs r0, 0x3
+ strb r0, [r2, 0x1]
+ b _08129E06
+_08129DFC:
+ cmp r1, 0x9
+ bne _08129E08
+ movs r0, 0x3
+_08129E02:
+ strb r0, [r2, 0x1]
+ movs r0, 0x2
+_08129E06:
+ strb r0, [r2, 0x2]
+_08129E08:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129D8C
+
+ thumb_func_start sub_8129E0C
+sub_8129E0C: @ 8129E0C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsls r1, 24
+ ldr r5, =gSprites
+ ldr r6, =gUnknown_0203AA38
+ ldrb r3, [r6]
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ adds r2, r5
+ adds r2, 0x3E
+ ldrb r3, [r2]
+ movs r4, 0x4
+ orrs r3, r4
+ strb r3, [r2]
+ ldrb r3, [r6]
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ adds r3, r5, 0
+ adds r3, 0x1C
+ adds r2, r3
+ ldr r3, =SpriteCallbackDummy
+ str r3, [r2]
+ ldr r4, =gUnknown_0203AA39
+ ldrb r3, [r4]
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ adds r2, r5
+ lsrs r0, 20
+ adds r0, 0x88
+ strh r0, [r2, 0x20]
+ ldrb r2, [r4]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r5
+ lsrs r1, 20
+ adds r1, 0x48
+ strh r1, [r0, 0x22]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8129E0C
+
+ thumb_func_start sub_8129E74
+sub_8129E74: @ 8129E74
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ ldrb r0, [r2, 0x8]
+ subs r0, 0x7
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r2, 0xA]
+ subs r0, 0x7
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r2, =gUnknown_0203A17C
+ ldr r0, [r2, 0x4]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsrs r5, r0, 4
+ movs r6, 0xF
+ ands r6, r0
+ mov r0, r9
+ ldrb r4, [r0, 0x2]
+ ldr r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x29
+ bne _08129ED4
+ adds r0, r5, 0x7
+ adds r1, r6, 0x7
+ bl MapGridGetMetatileIdAt
+ movs r1, 0xA3
+ lsls r1, 2
+ cmp r0, r1
+ bne _08129ED4
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08129ED4:
+ cmp r7, r5
+ bcc _08129F10
+ mov r0, r9
+ ldrb r2, [r0, 0x1]
+ adds r0, r5, r2
+ cmp r7, r0
+ bge _08129F10
+ subs r0, r6, r4
+ cmp r8, r0
+ ble _08129F10
+ cmp r8, r6
+ bhi _08129F10
+ subs r0, r7, r5
+ adds r0, 0x1
+ subs r0, r2, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r8
+ subs r1, r6, r2
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8129E0C
+ movs r0, 0x1
+ b _08129F12
+ .pool
+_08129F10:
+ movs r0, 0
+_08129F12:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8129E74
+
+ thumb_func_start sub_8129F20
+sub_8129F20: @ 8129F20
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r2, =gUnknown_0203A17C
+ ldr r3, =gUnknown_0203AA44
+ ldr r0, =gUnknown_0203AAC4
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r3
+ ldrb r1, [r0]
+ ldr r0, [r2, 0x4]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsrs r1, r0, 4
+ mov r8, r1
+ movs r6, 0xF
+ ands r6, r0
+ movs r4, 0
+ ldr r7, =gSaveBlock1Ptr
+ mov r9, r3
+_08129F4A:
+ ldr r1, [r7]
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r5, r0, 3
+ adds r1, r5
+ ldr r2, =0x00000c74
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, r8
+ bne _08129FB0
+ ldr r2, =0x00000c76
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, r6
+ bne _08129FB0
+ ldr r2, =0x00000c84
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _08129FB0
+ ldr r0, =gUnknown_0203AAC4
+ ldrb r1, [r0]
+ lsls r1, 3
+ add r1, r9
+ ldr r0, [r7]
+ adds r0, r5
+ ldr r2, =0x00000c84
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1, 0x4]
+ b _08129FBA
+ .pool
+_08129FB0:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3F
+ bls _08129F4A
+_08129FBA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129F20
+
+ thumb_func_start sub_8129FC8
+sub_8129FC8: @ 8129FC8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ b _0812A02A
+_08129FD2:
+ ldr r0, [r0]
+ adds r1, r0, r6
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0812A024
+ ldr r0, =gDecorations
+ ldrb r2, [r1]
+ lsls r1, r2, 5
+ adds r1, r0
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0x4
+ bne _0812A024
+ ldr r5, =gUnknown_0203AA44
+ adds r0, r2, 0
+ adds r1, r5, 0
+ bl sub_8129D8C
+ lsls r1, r6, 24
+ lsrs r1, 24
+ adds r0, r7, 0
+ adds r2, r5, 0
+ bl sub_8129E74
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bne _0812A024
+ strb r6, [r5]
+ bl sub_8129F20
+ ldr r0, =gUnknown_0203AAC4
+ strb r4, [r0]
+ movs r0, 0x1
+ b _0812A034
+ .pool
+_0812A024:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_0812A02A:
+ ldr r0, =gUnknown_0203A17C
+ ldrb r1, [r0, 0x8]
+ cmp r6, r1
+ bcc _08129FD2
+ movs r0, 0
+_0812A034:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8129FC8
+
+ thumb_func_start sub_812A040
+sub_812A040: @ 812A040
+ 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
+ str r0, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ movs r4, 0
+ ldr r7, =gUnknown_0203A17C
+ ldrb r0, [r7, 0x8]
+ cmp r4, r0
+ bcs _0812A0C6
+ adds r6, r7, 0
+ ldr r5, =gUnknown_0203AAC4
+_0812A072:
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ ldr r0, [r6, 0x4]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsrs r3, r0, 4
+ movs r2, 0xF
+ ands r2, r0
+ cmp r1, 0
+ beq _0812A0BA
+ ldr r0, =gDecorations
+ lsls r1, 5
+ adds r1, r0
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0x4
+ bne _0812A0BA
+ ldr r0, [sp]
+ cmp r0, r3
+ bhi _0812A0BA
+ cmp r10, r2
+ bhi _0812A0BA
+ cmp r9, r3
+ bcc _0812A0BA
+ cmp r8, r2
+ bcc _0812A0BA
+ ldr r0, =gUnknown_0203AA44
+ ldrb r1, [r5]
+ lsls r1, 3
+ adds r1, r0
+ strb r4, [r1]
+ bl sub_8129F20
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+_0812A0BA:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r7, 0x8]
+ cmp r4, r0
+ bcc _0812A072
+_0812A0C6:
+ 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_812A040
+
+ thumb_func_start sub_812A0E8
+sub_812A0E8: @ 812A0E8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r4, =gUnknown_0203AAC4
+ movs r0, 0
+ strb r0, [r4]
+ adds r0, r6, 0
+ bl sub_8129FC8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0812A18C
+ movs r5, 0
+ ldr r0, =gUnknown_0203A17C
+ ldrb r1, [r0, 0x8]
+ cmp r5, r1
+ bcs _0812A15A
+ adds r7, r4, 0
+_0812A10E:
+ ldr r0, [r0]
+ adds r0, r5
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _0812A14C
+ ldr r4, =gUnknown_0203AA44
+ adds r0, r1, 0
+ adds r1, r4, 0
+ bl sub_8129D8C
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_8129E74
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812A14C
+ strb r5, [r4]
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ b _0812A15A
+ .pool
+_0812A14C:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gUnknown_0203A17C
+ ldrb r1, [r0, 0x8]
+ cmp r5, r1
+ bcc _0812A10E
+_0812A15A:
+ ldr r0, =gUnknown_0203AAC4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0812A18C
+ ldr r0, =gUnknown_0203A17C
+ ldr r2, =gUnknown_0203AA44
+ ldrb r1, [r2]
+ ldr r0, [r0, 0x4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsrs r0, r1, 4
+ movs r3, 0xF
+ ands r3, r1
+ ldrb r1, [r2, 0x2]
+ subs r1, r3, r1
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r2, 0x1]
+ adds r2, r0
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ bl sub_812A040
+_0812A18C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_812A0E8
+
+ thumb_func_start sub_812A1A0
+sub_812A1A0: @ 812A1A0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8197930
+ ldr r1, =gUnknown_085A7348
+ adds r0, r4, 0
+ bl sub_8121F68
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_812A1A0
+
+ thumb_func_start sub_812A1C0
+sub_812A1C0: @ 812A1C0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r1, =sub_81298EC
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_812A1C0
+
+ thumb_func_start sub_812A1F0
+sub_812A1F0: @ 812A1F0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8197930
+ ldr r1, =gUnknown_085A7350
+ adds r0, r4, 0
+ bl sub_8121F68
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_812A1F0
+
+ thumb_func_start sub_812A210
+sub_812A210: @ 812A210
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ bl sub_8197434
+ adds r0, r4, 0
+ bl sub_812A22C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A210
+
+ thumb_func_start sub_812A22C
+sub_812A22C: @ 812A22C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r1, =sub_812A25C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_812A22C
+
+ thumb_func_start sub_812A25C
+sub_812A25C: @ 812A25C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _0812A280
+ cmp r0, 0x1
+ beq _0812A29C
+ b _0812A2B2
+ .pool
+_0812A280:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0812A2B2
+ adds r0, r4, 0
+ bl sub_8127B04
+ movs r0, 0x1
+ strh r0, [r5, 0xC]
+ b _0812A2B2
+ .pool
+_0812A29C:
+ bl sub_812A3C8
+ ldr r0, =gFieldCallback
+ ldr r1, =sub_812A334
+ str r1, [r0]
+ ldr r0, =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_0812A2B2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_812A25C
+
+ thumb_func_start sub_812A2C4
+sub_812A2C4: @ 812A2C4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r5, r1, 3
+ ldr r6, =gTasks + 0x8
+ adds r4, r5, r6
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0812A2FC
+ cmp r0, 0x1
+ bgt _0812A2EC
+ cmp r0, 0
+ beq _0812A2F6
+ b _0812A32A
+ .pool
+_0812A2EC:
+ cmp r0, 0x2
+ beq _0812A308
+ cmp r0, 0x3
+ beq _0812A314
+ b _0812A32A
+_0812A2F6:
+ bl sub_80E9578
+ b _0812A30C
+_0812A2FC:
+ ldr r0, =gUnknown_08275D0C
+ bl ScriptContext1_SetupScript
+ b _0812A30C
+ .pool
+_0812A308:
+ bl ScriptContext2_Enable
+_0812A30C:
+ ldrh r0, [r4, 0x4]
+ adds r0, 0x1
+ strh r0, [r4, 0x4]
+ b _0812A32A
+_0812A314:
+ bl sub_80ABDFC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812A32A
+ adds r0, r6, 0
+ subs r0, 0x8
+ adds r0, r5, r0
+ ldr r1, =sub_8126B80
+ str r1, [r0]
+_0812A32A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_812A2C4
+
+ thumb_func_start sub_812A334
+sub_812A334: @ 812A334
+ push {lr}
+ bl pal_fill_black
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_81973C4
+ bl sub_8126ABC
+ ldr r0, =sub_812A2C4
+ movs r1, 0x8
+ 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, 0xC]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_812A334
+
+ thumb_func_start sub_812A36C
+sub_812A36C: @ 812A36C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ strh r0, [r2, 0x2E]
+ cmp r0, 0xF
+ ble _0812A38C
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0812A398
+_0812A38C:
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0812A398:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A36C
+
+ thumb_func_start sub_812A39C
+sub_812A39C: @ 812A39C
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _0812A3B8
+ ldr r0, =gUnknown_085A73D8
+ bl LoadSpritePalette
+ b _0812A3BE
+ .pool
+_0812A3B8:
+ ldr r0, =gUnknown_085A73E0
+ bl LoadSpritePalette
+_0812A3BE:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_812A39C
+
+ thumb_func_start sub_812A3C8
+sub_812A3C8: @ 812A3C8
+ push {lr}
+ movs r0, 0x8
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A3C8
+
+ thumb_func_start sub_812A3D4
+sub_812A3D4: @ 812A3D4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_81279C4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812A430
+ ldr r0, =gStringVar1
+ ldr r1, =gUnknown_0203A172
+ ldrb r2, [r1]
+ ldr r1, =gUnknown_0203A14C
+ ldr r1, [r1]
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 5
+ ldr r2, =gDecorations + 1
+ adds r1, r2
+ bl StringCopy
+ ldr r4, =gStringVar4
+ ldr r1, =gText_DecorationWillBeDiscarded
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, =sub_812A458
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl DisplayItemMessageOnField
+ b _0812A444
+ .pool
+_0812A430:
+ ldr r4, =gStringVar4
+ ldr r1, =gText_CantThrowAwayInUse
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, =sub_8127A5C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl DisplayItemMessageOnField
+_0812A444:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_812A3D4
+
+ thumb_func_start sub_812A458
+sub_812A458: @ 812A458
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8197930
+ ldr r1, =gUnknown_085A741C
+ adds r0, r4, 0
+ bl sub_8121F68
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_812A458
+
+ thumb_func_start sub_812A478
+sub_812A478: @ 812A478
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_0203A172
+ ldrb r1, [r0]
+ ldr r0, =gUnknown_0203A14C
+ ldr r0, [r0]
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r5, =gUnknown_0203A173
+ ldrb r0, [r5]
+ bl sub_8161AD0
+ ldr r1, =gUnknown_0203A151
+ strb r0, [r1]
+ ldrb r0, [r5]
+ bl sub_8161A38
+ adds r0, r4, 0
+ bl sub_8127814
+ ldr r5, =gStringVar4
+ ldr r1, =gText_DecorationThrownAway
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ ldr r2, =sub_8127A5C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl DisplayItemMessageOnField
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_812A478
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/decoration_inventory.s b/asm/decoration_inventory.s
new file mode 100644
index 000000000..7a909f585
--- /dev/null
+++ b/asm/decoration_inventory.s
@@ -0,0 +1,459 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+
+ thumb_func_start SetDecorationInventoriesPointers
+SetDecorationInventoriesPointers: @ 81617F4
+ push {r4,lr}
+ ldr r0, =gDecorationInventories
+ mov r12, r0
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r2, =0x00002734
+ adds r0, r1, r2
+ mov r4, r12
+ str r0, [r4]
+ movs r3, 0xA
+ strb r3, [r4, 0x4]
+ adds r2, 0xA
+ adds r0, r1, r2
+ str r0, [r4, 0x8]
+ strb r3, [r4, 0xC]
+ ldr r4, =0x00002748
+ adds r0, r1, r4
+ mov r2, r12
+ str r0, [r2, 0x10]
+ strb r3, [r2, 0x14]
+ adds r4, 0xA
+ adds r0, r1, r4
+ str r0, [r2, 0x18]
+ movs r2, 0x1E
+ mov r0, r12
+ strb r2, [r0, 0x1C]
+ adds r4, 0x1E
+ adds r0, r1, r4
+ mov r4, r12
+ str r0, [r4, 0x20]
+ mov r0, r12
+ adds r0, 0x24
+ strb r2, [r0]
+ ldr r2, =0x0000278e
+ adds r0, r1, r2
+ str r0, [r4, 0x28]
+ mov r0, r12
+ adds r0, 0x2C
+ strb r3, [r0]
+ ldr r4, =0x00002798
+ adds r0, r1, r4
+ mov r2, r12
+ str r0, [r2, 0x30]
+ adds r2, 0x34
+ movs r0, 0x28
+ strb r0, [r2]
+ adds r4, 0x28
+ adds r1, r4
+ mov r0, r12
+ str r1, [r0, 0x38]
+ adds r0, 0x3C
+ strb r3, [r0]
+ bl sub_8126968
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end SetDecorationInventoriesPointers
+
+ thumb_func_start ClearDecorationInventory
+ClearDecorationInventory: @ 8161880
+ push {r4,r5,lr}
+ lsls r0, 24
+ movs r3, 0
+ ldr r1, =gDecorationInventories
+ lsrs r2, r0, 21
+ adds r0, r2, r1
+ ldrb r0, [r0, 0x4]
+ cmp r3, r0
+ bcs _081618AA
+ adds r5, r1, 0
+ movs r4, 0
+_08161896:
+ adds r0, r2, r5
+ ldr r1, [r0]
+ adds r1, r3
+ strb r4, [r1]
+ adds r1, r3, 0x1
+ lsls r1, 24
+ lsrs r3, r1, 24
+ ldrb r0, [r0, 0x4]
+ cmp r3, r0
+ bcc _08161896
+_081618AA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ClearDecorationInventory
+
+ thumb_func_start ClearDecorationInventories
+ClearDecorationInventories: @ 81618B4
+ push {r4,lr}
+ movs r4, 0
+_081618B8:
+ adds r0, r4, 0
+ bl ClearDecorationInventory
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _081618B8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end ClearDecorationInventories
+
+ thumb_func_start sub_81618D0
+sub_81618D0: @ 81618D0
+ push {r4,lr}
+ lsls r0, 24
+ movs r2, 0
+ ldr r1, =gDecorationInventories
+ lsrs r0, 21
+ adds r0, r1
+ movs r1, 0x4
+ ldrsb r1, [r0, r1]
+ cmp r2, r1
+ bge _0816190C
+ adds r4, r0, 0
+ adds r3, r1, 0
+_081618E8:
+ lsls r0, r2, 24
+ asrs r1, r0, 24
+ ldr r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08161900
+ adds r0, r1, 0
+ b _08161910
+ .pool
+_08161900:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, r3
+ blt _081618E8
+_0816190C:
+ movs r0, 0x1
+ negs r0, r0
+_08161910:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81618D0
+
+ thumb_func_start CheckHasDecoration
+CheckHasDecoration: @ 8161918
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, =gDecorations
+ lsls r0, r3, 5
+ adds r0, r1
+ ldrb r0, [r0, 0x13]
+ movs r2, 0
+ ldr r1, =gDecorationInventories
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x4]
+ cmp r2, r1
+ bcs _08161956
+ ldr r4, [r0]
+_08161936:
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, r3
+ bne _0816194C
+ movs r0, 0x1
+ b _08161958
+ .pool
+_0816194C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r1
+ bcc _08161936
+_08161956:
+ movs r0, 0
+_08161958:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckHasDecoration
+
+ thumb_func_start DecorationAdd
+DecorationAdd: @ 8161960
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081619A0
+ ldr r1, =gDecorations
+ lsls r0, r4, 5
+ adds r0, r1
+ ldrb r5, [r0, 0x13]
+ adds r0, r5, 0
+ bl sub_81618D0
+ lsls r0, 24
+ asrs r2, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ beq _081619A0
+ ldr r0, =gDecorationInventories
+ lsls r1, r5, 3
+ adds r1, r0
+ ldr r0, [r1]
+ adds r0, r2
+ strb r4, [r0]
+ movs r0, 0x1
+ b _081619A2
+ .pool
+_081619A0:
+ movs r0, 0
+_081619A2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end DecorationAdd
+
+ thumb_func_start DecorationCheckSpace
+DecorationCheckSpace: @ 81619A8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _081619D4
+ ldr r1, =gDecorations
+ lsls r0, 5
+ adds r0, r1
+ ldrb r0, [r0, 0x13]
+ bl sub_81618D0
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _081619D4
+ movs r0, 0x1
+ b _081619D6
+ .pool
+_081619D4:
+ movs r0, 0
+_081619D6:
+ pop {r1}
+ bx r1
+ thumb_func_end DecorationCheckSpace
+
+ thumb_func_start DecorationRemove
+DecorationRemove: @ 81619DC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ cmp r5, 0
+ bne _081619F8
+ b _08161A26
+_081619EA:
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r6, 0
+ bl sub_8161A38
+ movs r0, 0x1
+ b _08161A28
+_081619F8:
+ ldr r2, =gDecorationInventories
+ ldr r1, =gDecorations
+ lsls r0, r5, 5
+ adds r0, r1
+ ldrb r4, [r0, 0x13]
+ lsls r0, r4, 3
+ adds r0, r2
+ ldrb r1, [r0, 0x4]
+ cmp r3, r1
+ bcs _08161A26
+ adds r6, r4, 0
+ adds r4, r0, 0
+ adds r2, r1, 0
+_08161A12:
+ ldr r0, [r4]
+ adds r1, r0, r3
+ ldrb r0, [r1]
+ cmp r0, r5
+ beq _081619EA
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r2
+ bcc _08161A12
+_08161A26:
+ movs r0, 0
+_08161A28:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end DecorationRemove
+
+ thumb_func_start sub_8161A38
+sub_8161A38: @ 8161A38
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ movs r6, 0
+ ldr r2, =gDecorationInventories
+ lsrs r0, 21
+ adds r1, r0, r2
+ ldrb r3, [r1, 0x4]
+ cmp r6, r3
+ bcs _08161ABC
+ adds r7, r0, 0
+ mov r10, r1
+ mov r0, r10
+ str r0, [sp]
+_08161A5C:
+ adds r1, r6, 0x1
+ lsls r0, r1, 24
+ lsrs r3, r0, 24
+ adds r2, r7, 0
+ mov r12, r1
+ mov r1, r10
+ ldrb r1, [r1, 0x4]
+ cmp r3, r1
+ bcs _08161AAE
+ ldr r0, =gDecorationInventories
+ mov r9, r0
+ adds r1, r0, 0
+ mov r8, r1
+_08161A76:
+ mov r0, r9
+ adds r5, r2, r0
+ ldr r1, [r5]
+ adds r0, r1, r3
+ ldrb r4, [r0]
+ adds r2, r4, 0
+ cmp r2, 0
+ beq _08161A9C
+ adds r0, r1, r6
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _08161A92
+ cmp r1, r2
+ bls _08161A9C
+_08161A92:
+ ldrb r1, [r0]
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, r3
+ strb r1, [r0]
+_08161A9C:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r2, r7, 0
+ mov r1, r8
+ adds r0, r2, r1
+ ldrb r0, [r0, 0x4]
+ cmp r3, r0
+ bcc _08161A76
+_08161AAE:
+ mov r3, r12
+ lsls r0, r3, 24
+ lsrs r6, r0, 24
+ ldr r0, [sp]
+ ldrb r0, [r0, 0x4]
+ cmp r6, r0
+ bcc _08161A5C
+_08161ABC:
+ 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_8161A38
+
+ thumb_func_start sub_8161AD0
+sub_8161AD0: @ 8161AD0
+ push {r4,r5,lr}
+ lsls r0, 24
+ movs r4, 0
+ movs r3, 0
+ ldr r2, =gDecorationInventories
+ lsrs r1, r0, 21
+ adds r0, r1, r2
+ ldrb r0, [r0, 0x4]
+ cmp r4, r0
+ bcs _08161B04
+ adds r5, r2, 0
+_08161AE6:
+ adds r2, r1, r5
+ ldr r0, [r2]
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08161AF8
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08161AF8:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r2, [r2, 0x4]
+ cmp r3, r2
+ bcc _08161AE6
+_08161B04:
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8161AD0
+
+ thumb_func_start sub_8161B10
+sub_8161B10: @ 8161B10
+ push {r4,r5,lr}
+ movs r5, 0
+ movs r4, 0
+_08161B16:
+ adds r0, r4, 0
+ bl sub_8161AD0
+ adds r0, r5, r0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _08161B16
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8161B10
+
+ .align 2, 0 @ Don't pad with nop.
+ \ No newline at end of file
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index 03f6b11d1..50018de9c 100755
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -5,6 +5,7832 @@
.text
+ thumb_func_start sub_81BF8EC
+sub_81BF8EC: @ 81BF8EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r1
+ adds r5, r2, 0
+ adds r6, r3, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r4, =gUnknown_0203CF1C
+ ldr r0, =0x000040f8
+ bl AllocZeroed
+ str r0, [r4]
+ ldr r1, =0x000040bc
+ adds r0, r1
+ strb r7, [r0]
+ ldr r0, [r4]
+ mov r2, r8
+ str r2, [r0]
+ adds r1, 0x2
+ adds r0, r1
+ strb r5, [r0]
+ ldr r0, [r4]
+ ldr r2, =0x000040bf
+ adds r0, r2
+ strb r6, [r0]
+ ldr r1, [r4]
+ ldr r0, [sp, 0x18]
+ str r0, [r1, 0x4]
+ cmp r7, 0x2
+ bne _081BF94C
+ subs r2, 0x2
+ adds r1, r2
+ movs r0, 0x1
+ b _081BF952
+ .pool
+_081BF94C:
+ ldr r0, =0x000040bd
+ adds r1, r0
+ movs r0, 0
+_081BF952:
+ strb r0, [r1]
+ cmp r7, 0x1
+ beq _081BF9A0
+ cmp r7, 0x1
+ bgt _081BF96C
+ cmp r7, 0
+ beq _081BF97C
+ ldr r2, =gUnknown_0203CF1C
+ b _081BF9EE
+ .pool
+_081BF96C:
+ cmp r7, 0x2
+ beq _081BF97C
+ cmp r7, 0x3
+ beq _081BF9D0
+ ldr r2, =gUnknown_0203CF1C
+ b _081BF9EE
+ .pool
+_081BF97C:
+ ldr r2, =gUnknown_0203CF1C
+ ldr r0, [r2]
+ ldr r1, =0x000040c1
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r1, =0x000040c2
+ adds r0, r1
+ movs r1, 0x3
+ b _081BF9EC
+ .pool
+_081BF9A0:
+ ldr r2, =gUnknown_0203CF1C
+ ldr r0, [r2]
+ ldr r1, =0x000040c1
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r1, =0x000040c2
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r1, =0x000040c8
+ adds r0, r1
+ strb r7, [r0]
+ b _081BF9EE
+ .pool
+_081BF9D0:
+ ldr r2, =gUnknown_0203CF1C
+ ldr r0, [r2]
+ ldr r1, =0x000040c1
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r1, =0x000040c2
+ adds r0, r1
+ strb r7, [r0]
+ ldr r0, [r2]
+ adds r1, 0x1
+ adds r0, r1
+ movs r1, 0x1
+_081BF9EC:
+ strb r1, [r0]
+_081BF9EE:
+ ldr r0, [r2]
+ ldr r2, =0x000040c1
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ subs r2, 0x1
+ adds r0, r2
+ strb r1, [r0]
+ movs r0, 0xFF
+ bl sub_81C488C
+ ldr r0, =gMonSpritesGfxPtr
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _081BFA12
+ movs r0, 0
+ movs r1, 0
+ bl sub_806F2AC
+_081BFA12:
+ ldr r0, =sub_81BFAE4
+ bl SetMainCallback2
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81BF8EC
+
+ thumb_func_start sub_81BFA38
+sub_81BFA38: @ 81BFA38
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ mov r8, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ ldr r6, [sp, 0x18]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 16
+ lsrs r6, 16
+ str r3, [sp]
+ movs r0, 0x3
+ mov r1, r8
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_81BF8EC
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040c4
+ adds r0, r1
+ strh r6, [r0]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81BFA38
+
+ thumb_func_start sub_81BFA80
+sub_81BFA80: @ 81BFA80
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, [sp, 0xC]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r4, [sp]
+ bl sub_81BF8EC
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040ef
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81BFA80
+
+ thumb_func_start sub_81BFAB4
+sub_81BFAB4: @ 81BFAB4
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl do_scheduled_bg_tilemap_copies_to_vram
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81BFAB4
+
+ thumb_func_start sub_81BFAD0
+sub_81BFAD0: @ 81BFAD0
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81BFAD0
+
+ thumb_func_start sub_81BFAE4
+sub_81BFAE4: @ 81BFAE4
+ push {lr}
+_081BFAE6:
+ bl sub_81221EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081BFB0A
+ bl sub_81BFB10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081BFB0A
+ bl sub_81221AC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081BFAE6
+_081BFB0A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81BFAE4
+
+ thumb_func_start sub_81BFB10
+sub_81BFB10: @ 81BFB10
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, =gMain
+ movs r1, 0x87
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x18
+ bls _081BFB24
+ b _081BFE00
+_081BFB24:
+ lsls r0, 2
+ ldr r1, =_081BFB38
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081BFB38:
+ .4byte _081BFB9C
+ .4byte _081BFBAA
+ .4byte _081BFBBC
+ .4byte _081BFBD0
+ .4byte _081BFBE4
+ .4byte _081BFBEA
+ .4byte _081BFC04
+ .4byte _081BFC20
+ .4byte _081BFC26
+ .4byte _081BFC38
+ .4byte _081BFC58
+ .4byte _081BFC7C
+ .4byte _081BFC82
+ .4byte _081BFC94
+ .4byte _081BFCAC
+ .4byte _081BFCC0
+ .4byte _081BFCD8
+ .4byte _081BFCF8
+ .4byte _081BFD34
+ .4byte _081BFD50
+ .4byte _081BFD60
+ .4byte _081BFD74
+ .4byte _081BFD7A
+ .4byte _081BFDB0
+ .4byte _081BFDCC
+_081BFB9C:
+ bl SetVBlankHBlankCallbacksToNull
+ bl sub_8121DA0
+ bl clear_scheduled_bg_copies_to_vram
+ b _081BFDE6
+_081BFBAA:
+ bl remove_some_task
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _081BFDEE
+ .pool
+_081BFBBC:
+ bl ResetPaletteFade
+ ldr r2, =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ b _081BFDE4
+ .pool
+_081BFBD0:
+ bl ResetSpriteData
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _081BFDEE
+ .pool
+_081BFBE4:
+ bl FreeAllSpritePalettes
+ b _081BFDE6
+_081BFBEA:
+ bl sub_81BFE24
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040f0
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ b _081BFDE6
+ .pool
+_081BFC04:
+ bl sub_81BFEB0
+ lsls r0, 24
+ cmp r0, 0
+ bne _081BFC10
+ b _081BFE18
+_081BFC10:
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _081BFDEE
+ .pool
+_081BFC20:
+ bl sub_81C2554
+ b _081BFDE6
+_081BFC26:
+ bl sub_81C1BA0
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _081BFDEE
+ .pool
+_081BFC38:
+ ldr r4, =gUnknown_0203CF1C
+ ldr r0, [r4]
+ adds r0, 0xC
+ bl sub_81C0098
+ ldr r0, [r4]
+ ldr r1, =0x000040f0
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ b _081BFDE6
+ .pool
+_081BFC58:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r0, 0xC
+ bl sub_81C00F0
+ lsls r0, 24
+ cmp r0, 0
+ bne _081BFC6A
+ b _081BFE18
+_081BFC6A:
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _081BFDEE
+ .pool
+_081BFC7C:
+ bl sub_81C25E8
+ b _081BFDE6
+_081BFC82:
+ bl sub_81C286C
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _081BFDEE
+ .pool
+_081BFC94:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040c0
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_81C2D9C
+ b _081BFDE6
+ .pool
+_081BFCAC:
+ bl sub_81C0348
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _081BFDEE
+ .pool
+_081BFCC0:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040c0
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_81C2AFC
+ b _081BFDE6
+ .pool
+_081BFCD8:
+ bl sub_81C4190
+ bl sub_81C42C8
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040f0
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ b _081BFDE6
+ .pool
+_081BFCF8:
+ ldr r4, =gUnknown_0203CF1C
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0xC
+ ldr r2, =0x000040f0
+ adds r1, r2
+ bl sub_81C45F4
+ ldr r1, [r4]
+ ldr r2, =0x000040d3
+ adds r1, r2
+ strb r0, [r1]
+ ldr r1, [r4]
+ adds r2, r1, r2
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ bne _081BFD1C
+ b _081BFE18
+_081BFD1C:
+ ldr r0, =0x000040f0
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1]
+ b _081BFDE6
+ .pool
+_081BFD34:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r0, 0xC
+ bl sub_81C4984
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _081BFDEE
+ .pool
+_081BFD50:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r0, 0xC
+ bl sub_81C4A08
+ b _081BFDE6
+ .pool
+_081BFD60:
+ bl sub_81C4A88
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _081BFDEE
+ .pool
+_081BFD74:
+ bl sub_81C4280
+ b _081BFDE6
+_081BFD7A:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040bc
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _081BFDA0
+ ldr r0, =sub_81C0510
+ movs r1, 0
+ bl CreateTask
+ b _081BFDE6
+ .pool
+_081BFDA0:
+ ldr r0, =sub_81C171C
+ movs r1, 0
+ bl CreateTask
+ b _081BFDE6
+ .pool
+_081BFDB0:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _081BFDEE
+ .pool
+_081BFDCC:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, =gPaletteFade
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+_081BFDE4:
+ strb r0, [r2, 0x8]
+_081BFDE6:
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+_081BFDEE:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081BFE18
+ .pool
+_081BFE00:
+ ldr r0, =sub_81BFAD0
+ bl SetVBlankCallback
+ ldr r0, =sub_81BFAB4
+ bl SetMainCallback2
+ movs r0, 0x1
+ b _081BFE1A
+ .pool
+_081BFE18:
+ movs r0, 0
+_081BFE1A:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81BFB10
+
+ thumb_func_start sub_81BFE24
+sub_81BFE24: @ 81BFE24
+ push {r4,lr}
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_0861CBB4
+ movs r0, 0
+ movs r2, 0x4
+ bl InitBgsFromTemplates
+ ldr r4, =gUnknown_0203CF1C
+ ldr r1, [r4]
+ ldr r0, =0x000020bc
+ adds r1, r0
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ ldr r1, [r4]
+ ldr r0, =0x000010bc
+ adds r1, r0
+ movs r0, 0x2
+ bl SetBgTilemapBuffer
+ ldr r1, [r4]
+ adds r1, 0xBC
+ movs r0, 0x3
+ bl SetBgTilemapBuffer
+ bl sub_8121E10
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0x3
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r1, 0x82
+ lsls r1, 5
+ movs r0, 0
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ movs r0, 0x3
+ bl ShowBg
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81BFE24
+
+ thumb_func_start sub_81BFEB0
+sub_81BFEB0: @ 81BFEB0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, =gUnknown_0203CF1C
+ ldr r0, [r1]
+ ldr r2, =0x000040f0
+ adds r0, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0xC
+ bls _081BFEC8
+ b _081C008C
+_081BFEC8:
+ lsls r0, 2
+ ldr r1, =_081BFEE0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081BFEE0:
+ .4byte _081BFF14
+ .4byte _081BFF30
+ .4byte _081BFF60
+ .4byte _081BFF78
+ .4byte _081BFF90
+ .4byte _081BFFA8
+ .4byte _081BFFC0
+ .4byte _081BFFF0
+ .4byte _081BFFFC
+ .4byte _081C0018
+ .4byte _081C0024
+ .4byte _081C0040
+ .4byte _081C0064
+_081BFF14:
+ bl reset_temp_tile_data_buffers
+ ldr r1, =gUnknown_08D97D0C
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ b _081C0046
+ .pool
+_081BFF30:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081BFF3E
+ b _081C008C
+_081BFF3E:
+ ldr r0, =gUnknown_08D9862C
+ ldr r4, =gUnknown_0203CF1C
+ ldr r1, [r4]
+ adds r1, 0xBC
+ bl LZDecompressWram
+ ldr r1, [r4]
+ ldr r2, =0x000040f0
+ adds r1, r2
+ b _081C004E
+ .pool
+_081BFF60:
+ ldr r0, =gUnknown_08D98CC8
+ ldr r1, [r4]
+ ldr r2, =0x000008bc
+ adds r1, r2
+ bl LZDecompressWram
+ ldr r1, [r4]
+ b _081C004A
+ .pool
+_081BFF78:
+ ldr r0, =gUnknown_08D987FC
+ ldr r1, [r4]
+ ldr r2, =0x000018bc
+ adds r1, r2
+ bl LZDecompressWram
+ ldr r1, [r4]
+ b _081C004A
+ .pool
+_081BFF90:
+ ldr r0, =gUnknown_08D9898C
+ ldr r1, [r4]
+ ldr r2, =0x000028bc
+ adds r1, r2
+ bl LZDecompressWram
+ ldr r1, [r4]
+ b _081C004A
+ .pool
+_081BFFA8:
+ ldr r0, =gUnknown_08D98B28
+ ldr r1, [r4]
+ ldr r2, =0x000038bc
+ adds r1, r2
+ bl LZDecompressWram
+ ldr r1, [r4]
+ b _081C004A
+ .pool
+_081BFFC0:
+ ldr r0, =gUnknown_08D9853C
+ movs r2, 0x80
+ lsls r2, 1
+ movs r1, 0
+ bl LoadCompressedPalette
+ ldr r0, =gUnknown_08D85620
+ movs r1, 0x81
+ movs r2, 0x1E
+ bl LoadPalette
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ ldr r2, =0x000040f0
+ adds r1, r2
+ b _081C004E
+ .pool
+_081BFFF0:
+ ldr r0, =gUnknown_0861CFBC
+ bl LoadCompressedObjectPic
+ b _081C0046
+ .pool
+_081BFFFC:
+ ldr r0, =gUnknown_0861D074
+ bl LoadCompressedObjectPic
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ ldr r2, =0x000040f0
+ adds r1, r2
+ b _081C004E
+ .pool
+_081C0018:
+ ldr r0, =gUnknown_0861D0F8
+ bl LoadCompressedObjectPic
+ b _081C0046
+ .pool
+_081C0024:
+ ldr r0, =gUnknown_0861D100
+ bl LoadCompressedObjectPalette
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ ldr r2, =0x000040f0
+ adds r1, r2
+ b _081C004E
+ .pool
+_081C0040:
+ ldr r0, =gUnknown_0861D07C
+ bl LoadCompressedObjectPalette
+_081C0046:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+_081C004A:
+ ldr r0, =0x000040f0
+ adds r1, r0
+_081C004E:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _081C008C
+ .pool
+_081C0064:
+ ldr r0, =gUnknown_08D97B84
+ movs r1, 0xE8
+ lsls r1, 1
+ movs r2, 0x60
+ bl LoadCompressedPalette
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040f0
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ movs r0, 0x1
+ b _081C008E
+ .pool
+_081C008C:
+ movs r0, 0
+_081C008E:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81BFEB0
+
+ thumb_func_start sub_81C0098
+sub_81C0098: @ 81C0098
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ ldr r2, =0x000040bd
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081C00D0
+ ldr r2, [r1]
+ ldr r4, =0x000040be
+ adds r0, r1, r4
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ adds r1, r2
+ adds r0, r3, 0
+ movs r2, 0x64
+ bl memcpy
+ b _081C00E6
+ .pool
+_081C00D0:
+ ldr r0, [r1]
+ ldr r2, =0x000040be
+ adds r1, r2
+ ldrb r2, [r1]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ adds r0, r1
+ adds r1, r3, 0
+ bl sub_8069004
+_081C00E6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C0098
+
+ thumb_func_start sub_81C00F0
+sub_81C00F0: @ 81C00F0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ ldr r0, =gUnknown_0203CF1C
+ ldr r7, [r0]
+ adds r6, r7, 0
+ adds r6, 0x70
+ ldr r1, =0x000040f0
+ adds r0, r7, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0x1
+ beq _081C0198
+ cmp r0, 0x1
+ bgt _081C0120
+ cmp r0, 0
+ beq _081C012C
+ b _081C0314
+ .pool
+_081C0120:
+ cmp r0, 0x2
+ beq _081C01DC
+ cmp r0, 0x3
+ bne _081C012A
+ b _081C02A8
+_081C012A:
+ b _081C0314
+_081C012C:
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ strh r0, [r6]
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ strh r0, [r6, 0x2]
+ adds r0, r5, 0
+ movs r1, 0x19
+ bl GetMonData
+ str r0, [r6, 0x10]
+ adds r0, r5, 0
+ movs r1, 0x38
+ bl GetMonData
+ strb r0, [r6, 0x5]
+ adds r0, r5, 0
+ movs r1, 0x2E
+ bl GetMonData
+ strb r0, [r6, 0x8]
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl GetMonData
+ strh r0, [r6, 0x2E]
+ adds r0, r5, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [r6, 0xC]
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl GetMonData
+ adds r1, r7, 0
+ adds r1, 0xA5
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ beq _081C018C
+ movs r0, 0x1
+ strb r0, [r6, 0x4]
+ b _081C0322
+_081C018C:
+ adds r0, r5, 0
+ movs r1, 0x2D
+ bl GetMonData
+ strb r0, [r6, 0x4]
+ b _081C0322
+_081C0198:
+ movs r4, 0
+ movs r0, 0x8C
+ adds r0, r7
+ mov r8, r0
+ movs r1, 0xA4
+ adds r1, r7
+ mov r9, r1
+ adds r6, r7, 0
+ adds r6, 0x84
+_081C01AA:
+ adds r1, r4, 0
+ adds r1, 0xD
+ adds r0, r5, 0
+ bl GetMonData
+ strh r0, [r6]
+ adds r1, r4, 0
+ adds r1, 0x11
+ adds r0, r5, 0
+ bl GetMonData
+ mov r2, r8
+ adds r1, r2, r4
+ strb r0, [r1]
+ adds r6, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ bls _081C01AA
+ adds r0, r5, 0
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r9
+ strb r0, [r1]
+ b _081C0322
+_081C01DC:
+ ldr r1, [r7]
+ ldr r0, =gPlayerParty
+ cmp r1, r0
+ beq _081C01F8
+ ldr r2, =0x000040bc
+ adds r0, r7, r2
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _081C01F8
+ ldr r1, =0x000040ef
+ adds r0, r7, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _081C0254
+_081C01F8:
+ adds r0, r5, 0
+ bl GetNature
+ adds r1, r6, 0
+ adds r1, 0x33
+ strb r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r6, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ strh r0, [r6, 0x22]
+ adds r0, r5, 0
+ movs r1, 0x3B
+ bl GetMonData
+ strh r0, [r6, 0x24]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl GetMonData
+ strh r0, [r6, 0x26]
+ adds r0, r5, 0
+ movs r1, 0x3E
+ bl GetMonData
+ strh r0, [r6, 0x28]
+ adds r0, r5, 0
+ movs r1, 0x3F
+ bl GetMonData
+ strh r0, [r6, 0x2A]
+ adds r0, r5, 0
+ movs r1, 0x3D
+ b _081C02A0
+ .pool
+_081C0254:
+ adds r0, r5, 0
+ bl GetNature
+ adds r1, r7, 0
+ adds r1, 0xA3
+ strb r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r6, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ strh r0, [r6, 0x22]
+ adds r0, r5, 0
+ movs r1, 0x54
+ bl GetMonData
+ strh r0, [r6, 0x24]
+ adds r0, r5, 0
+ movs r1, 0x55
+ bl GetMonData
+ strh r0, [r6, 0x26]
+ adds r0, r5, 0
+ movs r1, 0x57
+ bl GetMonData
+ strh r0, [r6, 0x28]
+ adds r0, r5, 0
+ movs r1, 0x58
+ bl GetMonData
+ strh r0, [r6, 0x2A]
+ adds r0, r5, 0
+ movs r1, 0x56
+_081C02A0:
+ bl GetMonData
+ strh r0, [r6, 0x2C]
+ b _081C0322
+_081C02A8:
+ adds r4, r7, 0
+ adds r4, 0xA6
+ adds r0, r5, 0
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl GetMonData
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl ConvertInternationalString
+ adds r0, r5, 0
+ bl sub_81B205C
+ strb r0, [r6, 0x7]
+ adds r0, r5, 0
+ movs r1, 0x31
+ bl GetMonData
+ adds r1, r7, 0
+ adds r1, 0xA2
+ strb r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl GetMonData
+ str r0, [r6, 0x48]
+ adds r0, r5, 0
+ movs r1, 0x23
+ bl GetMonData
+ strb r0, [r6, 0x9]
+ adds r0, r5, 0
+ movs r1, 0x24
+ bl GetMonData
+ strb r0, [r6, 0xA]
+ adds r0, r5, 0
+ movs r1, 0x25
+ bl GetMonData
+ strb r0, [r6, 0xB]
+ adds r0, r5, 0
+ movs r1, 0x20
+ bl GetMonData
+ strh r0, [r6, 0x30]
+ b _081C0322
+_081C0314:
+ adds r0, r5, 0
+ movs r1, 0x52
+ bl GetMonData
+ strb r0, [r6, 0x6]
+ movs r0, 0x1
+ b _081C0332
+_081C0322:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ ldr r2, =0x000040f0
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+_081C0332:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81C00F0
+
+ thumb_func_start sub_81C0348
+sub_81C0348: @ 81C0348
+ push {r4-r6,lr}
+ ldr r6, =gUnknown_0203CF1C
+ ldr r2, [r6]
+ ldr r1, =0x000040c0
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _081C037C
+ movs r0, 0
+ movs r1, 0xFF
+ bl sub_81C1DA4
+ movs r0, 0
+ movs r1, 0xFF
+ movs r2, 0
+ bl sub_81C1EFC
+ b _081C03D8
+ .pool
+_081C037C:
+ ldr r1, =0x000040c6
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ lsls r1, 1
+ adds r0, r2, 0
+ adds r0, 0x84
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_81C240C
+ ldr r0, [r6]
+ ldr r5, =0x000020bc
+ adds r0, r5
+ movs r1, 0x3
+ movs r2, 0
+ bl sub_81C2194
+ ldr r0, [r6]
+ ldr r4, =0x000030bc
+ adds r0, r4
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_81C2194
+ ldr r1, [r6]
+ adds r1, r4
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ ldr r1, [r6]
+ adds r1, r5
+ movs r0, 0x2
+ bl SetBgTilemapBuffer
+ movs r1, 0x80
+ lsls r1, 9
+ movs r0, 0x2
+ movs r2, 0x1
+ bl ChangeBgX
+ movs r0, 0x13
+ bl ClearWindowTilemap
+ movs r0, 0xD
+ bl ClearWindowTilemap
+_081C03D8:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x77
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081C0400
+ movs r0, 0
+ movs r1, 0xFF
+ bl sub_81C2074
+ b _081C0416
+ .pool
+_081C0400:
+ ldr r2, =0x000040c0
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _081C0416
+ movs r0, 0xD
+ bl PutWindowTilemap
+_081C0416:
+ bl sub_81C2524
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r0, 0xC
+ bl sub_81C2228
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C0348
+
+ thumb_func_start sub_81C0434
+sub_81C0434: @ 81C0434
+ push {lr}
+ bl FreeAllWindowBuffers
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ bl Free
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C0434
+
+ thumb_func_start sub_81C044C
+sub_81C044C: @ 81C044C
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81C0484
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C044C
+
+ thumb_func_start sub_81C0484
+sub_81C0484: @ 81C0484
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_81221EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081C04EC
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081C04EC
+ ldr r4, =gUnknown_0203CF1C
+ ldr r0, [r4]
+ ldr r0, [r0, 0x4]
+ bl SetMainCallback2
+ ldr r1, =gUnknown_0203CF20
+ ldr r0, [r4]
+ ldr r2, =0x000040be
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ bl sub_81C4898
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl StopCryAndClearCrySongs
+ ldr r0, =gMPlay_BGM
+ ldr r1, =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+ ldr r0, =gMonSpritesGfxPtr
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _081C04E2
+ movs r0, 0
+ bl sub_806F47C
+_081C04E2:
+ bl sub_81C0434
+ adds r0, r5, 0
+ bl DestroyTask
+_081C04EC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C0484
+
+ thumb_func_start sub_81C0510
+sub_81C0510: @ 81C0510
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81221EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081C05FE
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _081C05FE
+ ldr r5, =gMain
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081C0550
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r4, 0
+ bl sub_81C0604
+ b _081C05FE
+ .pool
+_081C0550:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _081C0562
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81C0604
+ b _081C05FE
+_081C0562:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _081C0576
+ bl GetLRKeysState
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081C0582
+_081C0576:
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r4, 0
+ bl sub_81C0A8C
+ b _081C05FE
+_081C0582:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _081C0598
+ bl GetLRKeysState
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _081C05A2
+_081C0598:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81C0A8C
+ b _081C05FE
+_081C05A2:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081C05E6
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040c0
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _081C05FE
+ cmp r0, 0
+ bne _081C05D8
+ bl sub_81C48F0
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_81C044C
+ b _081C05FE
+ .pool
+_081C05D8:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_81C0E48
+ b _081C05FE
+_081C05E6:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081C05FE
+ bl sub_81C48F0
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_81C044C
+_081C05FE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C0510
+
+ thumb_func_start sub_81C0604
+sub_81C0604: @ 81C0604
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ adds r4, r5, 0
+ ldr r1, =gUnknown_0203CF1C
+ ldr r3, [r1]
+ ldr r2, =0x000040c3
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ adds r6, r1, 0
+ cmp r0, 0
+ bne _081C06EE
+ ldr r1, =0x000040bd
+ adds r0, r3, r1
+ ldrb r2, [r0]
+ cmp r2, 0x1
+ bne _081C0678
+ adds r1, 0x3
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081C0654
+ lsls r1, r5, 24
+ asrs r1, 24
+ movs r4, 0x2
+ eors r1, r2
+ negs r0, r1
+ orrs r0, r1
+ asrs r0, 31
+ ands r4, r0
+ b _081C065C
+ .pool
+_081C0654:
+ movs r4, 0x3
+ cmp r5, 0x1
+ bne _081C065C
+ movs r4, 0x1
+_081C065C:
+ ldr r2, [r6]
+ ldr r0, [r2]
+ ldr r3, =0x000040be
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ adds r3, 0x1
+ adds r2, r3
+ ldrb r2, [r2]
+ adds r3, r4, 0
+ bl sub_80D214C
+ b _081C0696
+ .pool
+_081C0678:
+ bl sub_81B1250
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081C068E
+ lsls r0, r5, 24
+ asrs r0, 24
+ bl sub_81C09B4
+ b _081C0696
+_081C068E:
+ lsls r0, r4, 24
+ asrs r0, 24
+ bl sub_81C08F8
+_081C0696:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _081C06EE
+ movs r0, 0x5
+ bl PlaySE
+ ldr r5, =gUnknown_0203CF1C
+ ldr r0, [r5]
+ adds r0, 0x77
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081C06D4
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_81C4204
+ movs r0, 0xD
+ bl ClearWindowTilemap
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_81C2074
+_081C06D4:
+ ldr r0, [r5]
+ ldr r1, =0x000040be
+ adds r0, r1
+ movs r2, 0
+ strb r4, [r0]
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x8]
+ ldr r1, =sub_81C0704
+ str r1, [r0]
+_081C06EE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C0604
+
+ thumb_func_start sub_81C0704
+sub_81C0704: @ 81C0704
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r4, r1, 3
+ ldr r6, =gTasks + 0x8
+ adds r5, r4, r6
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xC
+ bls _081C071E
+ b _081C08BC
+_081C071E:
+ lsls r0, 2
+ ldr r1, =_081C0730
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081C0730:
+ .4byte _081C0764
+ .4byte _081C076A
+ .4byte _081C0780
+ .4byte _081C07A8
+ .4byte _081C07C8
+ .4byte _081C07E0
+ .4byte _081C07F0
+ .4byte _081C0800
+ .4byte _081C0828
+ .4byte _081C086C
+ .4byte _081C0872
+ .4byte _081C0878
+ .4byte _081C0894
+_081C0764:
+ bl StopCryAndClearCrySongs
+ b _081C08EC
+_081C076A:
+ bl sub_81C4898
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040d3
+ b _081C0786
+ .pool
+_081C0780:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040d4
+_081C0786:
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl DestroySpriteAndFreeResources
+ b _081C08EC
+ .pool
+_081C07A8:
+ ldr r4, =gUnknown_0203CF1C
+ ldr r0, [r4]
+ adds r0, 0xC
+ bl sub_81C0098
+ ldr r0, [r4]
+ ldr r1, =0x000040f0
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ b _081C08EC
+ .pool
+_081C07C8:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r0, 0xC
+ bl sub_81C00F0
+ lsls r0, 24
+ cmp r0, 0
+ bne _081C07DA
+ b _081C08F2
+_081C07DA:
+ b _081C08EC
+ .pool
+_081C07E0:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r0, 0xC
+ bl sub_81C49E0
+ b _081C08EC
+ .pool
+_081C07F0:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r0, 0xC
+ bl sub_81C4A08
+ b _081C08EC
+ .pool
+_081C0800:
+ ldr r4, =gUnknown_0203CF1C
+ ldr r0, [r4]
+ adds r0, 0x77
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081C0816
+ movs r1, 0x2
+ negs r1, r1
+ movs r0, 0xA
+ bl sub_81C2074
+_081C0816:
+ ldr r0, [r4]
+ adds r0, 0xC
+ bl sub_81C2228
+ movs r0, 0
+ strh r0, [r5, 0x2]
+ b _081C08EC
+ .pool
+_081C0828:
+ ldr r4, =gUnknown_0203CF1C
+ ldr r0, [r4]
+ adds r0, 0xC
+ adds r1, r5, 0x2
+ bl sub_81C45F4
+ ldr r1, [r4]
+ ldr r2, =0x000040d3
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _081C08F2
+ ldr r2, =gSprites
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x1
+ strh r1, [r0, 0x32]
+ bl sub_81C0E24
+ movs r0, 0
+ strh r0, [r5, 0x2]
+ b _081C08EC
+ .pool
+_081C086C:
+ bl sub_81C4280
+ b _081C08EC
+_081C0872:
+ bl sub_81C25E8
+ b _081C08EC
+_081C0878:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040c0
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_81C2D9C
+ bl sub_81C2524
+ b _081C08EC
+ .pool
+_081C0894:
+ ldr r2, =gSprites
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040d3
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x32]
+ b _081C08EC
+ .pool
+_081C08BC:
+ bl sub_81221EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _081C08F2
+ ldr r0, =sub_81C20F0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _081C08F2
+ strh r0, [r5]
+ adds r0, r6, 0
+ subs r0, 0x8
+ adds r0, r4, r0
+ ldr r1, =sub_81C0510
+ str r1, [r0]
+ b _081C08F2
+ .pool
+_081C08EC:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_081C08F2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C0704
+
+ thumb_func_start sub_81C08F8
+sub_81C08F8: @ 81C08F8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gUnknown_0203CF1C
+ ldr r2, [r1]
+ ldr r7, [r2]
+ ldr r3, =0x000040c0
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0
+ bne _081C0960
+ lsls r0, r4, 24
+ asrs r3, r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ adds r6, r0, 0
+ cmp r3, r1
+ bne _081C0928
+ ldr r1, =0x000040be
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081C0988
+_081C0928:
+ asrs r0, r6, 24
+ cmp r0, 0x1
+ bne _081C0940
+ ldr r0, [r5]
+ ldr r2, =0x000040be
+ adds r1, r0, r2
+ ldr r3, =0x000040bf
+ adds r0, r3
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _081C0988
+_081C0940:
+ ldr r0, [r5]
+ ldr r1, =0x000040be
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, r4
+ lsls r0, 24
+ asrs r0, 24
+ b _081C09AE
+ .pool
+_081C0960:
+ ldr r3, =0x000040be
+ adds r0, r2, r3
+ ldrb r5, [r0]
+ lsls r6, r4, 24
+_081C0968:
+ lsls r0, r5, 24
+ asrs r0, 24
+ asrs r1, r6, 24
+ adds r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ asrs r4, r0, 24
+ cmp r4, 0
+ blt _081C0988
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040bf
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r4, r0
+ ble _081C099C
+_081C0988:
+ movs r0, 0x1
+ negs r0, r0
+ b _081C09AE
+ .pool
+_081C099C:
+ movs r0, 0x64
+ muls r0, r4
+ adds r0, r7, r0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _081C0968
+ adds r0, r4, 0
+_081C09AE:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C08F8
+
+ thumb_func_start sub_81C09B4
+sub_81C09B4: @ 81C09B4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ ldr r6, =gUnknown_0203CF1C
+ ldr r0, [r6]
+ ldr r1, [r0]
+ mov r8, r1
+ movs r5, 0
+ movs r2, 0
+ ldr r3, =gUnknown_0861CC1C
+ movs r1, 0
+ ldrsb r1, [r3, r1]
+ ldr r4, =0x000040be
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _081C09FC
+ adds r7, r3, 0
+ adds r3, r4, 0
+_081C09E0:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x5
+ bhi _081C09FC
+ adds r0, r2, r7
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ ldr r0, [r6]
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _081C09E0
+ adds r5, r2, 0
+_081C09FC:
+ mov r0, r12
+ lsls r6, r0, 24
+ ldr r7, =gUnknown_0861CC1C
+_081C0A02:
+ lsls r0, r5, 24
+ asrs r0, 24
+ asrs r1, r6, 24
+ adds r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, r5, 24
+ lsrs r0, r1, 24
+ cmp r0, 0x5
+ bhi _081C0A40
+ asrs r0, r1, 24
+ adds r0, r7
+ movs r4, 0
+ ldrsb r4, [r0, r4]
+ movs r0, 0x64
+ muls r0, r4
+ add r0, r8
+ bl sub_81C0A50
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081C0A02
+ adds r0, r4, 0
+ b _081C0A44
+ .pool
+_081C0A40:
+ movs r0, 0x1
+ negs r0, r0
+_081C0A44:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C09B4
+
+ thumb_func_start sub_81C0A50
+sub_81C0A50: @ 81C0A50
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081C0A84
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040be
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081C0A78
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _081C0A84
+_081C0A78:
+ movs r0, 0x1
+ b _081C0A86
+ .pool
+_081C0A84:
+ movs r0, 0
+_081C0A86:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C0A50
+
+ thumb_func_start sub_81C0A8C
+sub_81C0A8C: @ 81C0A8C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ str r6, [sp]
+ lsls r1, 24
+ lsrs r3, r1, 24
+ str r3, [sp, 0x4]
+ ldr r0, =gUnknown_0203CF1C
+ mov r8, r0
+ ldr r2, [r0]
+ adds r1, r2, 0
+ adds r1, 0x70
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r7, r0, 3
+ ldr r0, =gTasks + 0x8
+ mov r9, r0
+ adds r0, r7, r0
+ str r0, [sp, 0x8]
+ ldrb r1, [r1, 0x4]
+ mov r10, r1
+ cmp r1, 0
+ bne _081C0B6E
+ lsls r0, r3, 24
+ asrs r5, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ bne _081C0AE0
+ ldr r1, =0x000040c0
+ adds r0, r2, r1
+ ldr r3, =0x000040c1
+ adds r1, r2, r3
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _081C0B6E
+_081C0AE0:
+ cmp r5, 0x1
+ bne _081C0AF4
+ ldr r1, =0x000040c0
+ adds r0, r2, r1
+ ldr r3, =0x000040c2
+ adds r1, r2, r3
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _081C0B6E
+_081C0AF4:
+ movs r0, 0x5
+ bl PlaySE
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r4, =0x000040c0
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_81C2C38
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, r4
+ ldrb r0, [r1]
+ ldr r3, [sp, 0x4]
+ adds r0, r3
+ strb r0, [r1]
+ mov r1, r10
+ ldr r0, [sp, 0x8]
+ strh r1, [r0]
+ cmp r5, 0x1
+ bne _081C0B4C
+ ldr r1, =sub_81C0B8C
+ mov r0, r9
+ subs r0, 0x8
+ adds r0, r7, r0
+ ldr r2, [r0]
+ adds r0, r6, 0
+ bl SetTaskFuncWithFollowupFunc
+ b _081C0B5C
+ .pool
+_081C0B4C:
+ ldr r1, =sub_81C0CC4
+ mov r0, r9
+ subs r0, 0x8
+ adds r0, r7, r0
+ ldr r2, [r0]
+ ldr r0, [sp]
+ bl SetTaskFuncWithFollowupFunc
+_081C0B5C:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r2, =0x000040c0
+ adds r0, r2
+ ldrb r0, [r0]
+ bl sub_81C2DE4
+ bl sub_81C424C
+_081C0B6E:
+ 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_81C0A8C
+
+ thumb_func_start sub_81C0B8C
+sub_81C0B8C: @ 81C0B8C
+ 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, 0
+ bne _081C0C2A
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r3, =0x000040c9
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081C0BE0
+ movs r0, 0x1
+ strh r0, [r4, 0x2]
+ movs r0, 0x1
+ movs r1, 0x7
+ movs r2, 0x1
+ bl SetBgAttribute
+ movs r0, 0x2
+ movs r1, 0x7
+ movs r2, 0x2
+ bl SetBgAttribute
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ b _081C0BFE
+ .pool
+_081C0BE0:
+ movs r0, 0x2
+ strh r0, [r4, 0x2]
+ movs r0, 0x2
+ movs r1, 0x7
+ movs r2, 0x1
+ bl SetBgAttribute
+ movs r0, 0x1
+ movs r1, 0x7
+ movs r2, 0x2
+ bl SetBgAttribute
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+_081C0BFE:
+ ldrb r0, [r4, 0x2]
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ ldrb r0, [r4, 0x2]
+ ldr r1, =gUnknown_0203CF1C
+ ldr r1, [r1]
+ ldr r3, =0x000040c0
+ adds r2, r1, r3
+ ldrb r2, [r2]
+ lsls r2, 12
+ adds r2, 0xBC
+ adds r1, r2
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+_081C0C2A:
+ ldrb r0, [r4, 0x2]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r2, 0x1
+ bl ChangeBgX
+ ldrh r0, [r4]
+ adds r0, 0x20
+ strh r0, [r4]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _081C0C52
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81C0C68
+ str r0, [r1]
+_081C0C52:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C0B8C
+
+ thumb_func_start sub_81C0C68
+sub_81C0C68: @ 81C0C68
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 3
+ ldr r0, =gTasks + 0x8
+ adds r2, r0
+ ldr r5, =gUnknown_0203CF1C
+ ldr r3, [r5]
+ ldr r0, =0x000040c9
+ adds r3, r0
+ ldrb r0, [r3]
+ movs r1, 0x1
+ eors r0, r1
+ movs r1, 0
+ strb r0, [r3]
+ strh r1, [r2, 0x2]
+ strh r1, [r2]
+ bl sub_81C1BA0
+ ldr r0, [r5]
+ ldr r1, =0x000040c0
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_81C2AFC
+ bl sub_81C4280
+ bl sub_81C0E24
+ adds r0, r4, 0
+ bl SwitchTaskToFollowupFunc
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C0C68
+
+ thumb_func_start sub_81C0CC4
+sub_81C0CC4: @ 81C0CC4
+ 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, 0
+ bne _081C0D0C
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040c9
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081C0CFC
+ movs r0, 0x2
+ b _081C0CFE
+ .pool
+_081C0CFC:
+ movs r0, 0x1
+_081C0CFE:
+ strh r0, [r4, 0x2]
+ ldrb r0, [r4, 0x2]
+ movs r1, 0x80
+ lsls r1, 9
+ movs r2, 0
+ bl ChangeBgX
+_081C0D0C:
+ ldrb r0, [r4, 0x2]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r2, 0x2
+ bl ChangeBgX
+ ldrh r0, [r4]
+ adds r0, 0x20
+ strh r0, [r4]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _081C0D34
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81C0D44
+ str r0, [r1]
+_081C0D34:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C0CC4
+
+ thumb_func_start sub_81C0D44
+sub_81C0D44: @ 81C0D44
+ push {r4-r7,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
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040c9
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081C0D8C
+ movs r0, 0x1
+ movs r1, 0x7
+ movs r2, 0x1
+ bl SetBgAttribute
+ movs r0, 0x2
+ movs r1, 0x7
+ movs r2, 0x2
+ bl SetBgAttribute
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ b _081C0DA6
+ .pool
+_081C0D8C:
+ movs r0, 0x2
+ movs r1, 0x7
+ movs r2, 0x1
+ bl SetBgAttribute
+ movs r0, 0x1
+ movs r1, 0x7
+ movs r2, 0x2
+ bl SetBgAttribute
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+_081C0DA6:
+ ldr r6, =gUnknown_0203CF1C
+ ldr r2, [r6]
+ ldr r7, =0x000040c0
+ adds r1, r2, r7
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bls _081C0DD0
+ ldrb r0, [r4, 0x2]
+ ldrb r1, [r1]
+ lsls r1, 12
+ ldr r3, =0xfffff0bc
+ adds r1, r3
+ adds r1, r2, r1
+ bl SetBgTilemapBuffer
+ ldrb r0, [r4, 0x2]
+ movs r1, 0x80
+ lsls r1, 9
+ movs r2, 0
+ bl ChangeBgX
+_081C0DD0:
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ ldr r2, [r6]
+ ldr r0, =0x000040c9
+ adds r2, r0
+ ldrb r0, [r2]
+ movs r1, 0x1
+ eors r0, r1
+ movs r1, 0
+ strb r0, [r2]
+ strh r1, [r4, 0x2]
+ strh r1, [r4]
+ bl sub_81C1BA0
+ ldr r0, [r6]
+ adds r0, r7
+ ldrb r0, [r0]
+ bl sub_81C2AFC
+ bl sub_81C4280
+ bl sub_81C0E24
+ adds r0, r5, 0
+ bl SwitchTaskToFollowupFunc
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C0D44
+
+ thumb_func_start sub_81C0E24
+sub_81C0E24: @ 81C0E24
+ push {lr}
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ ldr r2, =0x000040c0
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _081C0E3C
+ adds r0, r1, 0
+ adds r0, 0xC
+ bl sub_81C22CC
+_081C0E3C:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C0E24
+
+ thumb_func_start sub_81C0E48
+sub_81C0E48: @ 81C0E48
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r5, =gUnknown_0203CF1C
+ ldr r0, [r5]
+ ldr r2, =0x000040c6
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, [r5]
+ adds r2, r1, r2
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r1, 0x84
+ adds r1, r0
+ ldrh r6, [r1]
+ mov r8, r6
+ movs r0, 0x13
+ bl ClearWindowTilemap
+ ldr r2, =gSprites
+ ldr r0, [r5]
+ ldr r1, =0x000040d5
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _081C0E96
+ movs r0, 0xD
+ bl ClearWindowTilemap
+_081C0E96:
+ movs r4, 0x3
+ negs r4, r4
+ movs r0, 0x9
+ adds r1, r4, 0
+ bl sub_81C1DA4
+ movs r0, 0x9
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_81C1EFC
+ ldr r0, [r5]
+ ldr r1, =0x000040c8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081C0EC4
+ movs r0, 0x5
+ bl ClearWindowTilemap
+ movs r0, 0x6
+ bl PutWindowTilemap
+_081C0EC4:
+ ldr r0, [r5]
+ ldr r1, =0x000020bc
+ adds r0, r1
+ movs r1, 0x3
+ movs r2, 0
+ bl sub_81C2194
+ ldr r0, [r5]
+ ldr r1, =0x000030bc
+ adds r0, r1
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_81C2194
+ mov r0, r8
+ bl sub_81C3E9C
+ bl sub_81C3F44
+ bl sub_81C44F0
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0x8
+ bl sub_81C4AF8
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81C0F44
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C0E48
+
+ thumb_func_start sub_81C0F44
+sub_81C0F44: @ 81C0F44
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ bl sub_81221EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081C103A
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081C0F98
+ movs r0, 0x4
+ strh r0, [r4]
+ movs r1, 0x1
+ negs r1, r1
+ ldr r0, =gUnknown_0203CF1C
+ ldr r2, [r0]
+ ldr r0, =0x000040c6
+ adds r2, r0
+ adds r0, r4, 0
+ bl sub_81C1070
+ b _081C103A
+ .pool
+_081C0F98:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081C0FC0
+ movs r0, 0x4
+ strh r0, [r4]
+ ldr r0, =gUnknown_0203CF1C
+ ldr r2, [r0]
+ ldr r0, =0x000040c6
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81C1070
+ b _081C103A
+ .pool
+_081C0FC0:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081C1026
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ ldr r2, =0x000040c8
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _081C0FE8
+ subs r2, 0x4
+ adds r0, r1, r2
+ ldr r0, [r0]
+ ldr r1, =0x00ffffff
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 11
+ cmp r0, r1
+ bne _081C1004
+_081C0FE8:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_81C11F4
+ b _081C103A
+ .pool
+_081C1004:
+ bl sub_81C1040
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081C101E
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_81C129C
+ b _081C103A
+_081C101E:
+ movs r0, 0x20
+ bl PlaySE
+ b _081C103A
+_081C1026:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081C103A
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r6, 0
+ bl sub_81C11F4
+_081C103A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C0F44
+
+ thumb_func_start sub_81C1040
+sub_81C1040: @ 81C1040
+ push {lr}
+ movs r1, 0x1
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r2, r0, 0
+ adds r2, 0x84
+_081C104C:
+ lsls r0, r1, 1
+ adds r0, r2, r0
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081C1060
+ movs r0, 0x1
+ b _081C106C
+ .pool
+_081C1060:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _081C104C
+ movs r0, 0
+_081C106C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C1040
+
+ thumb_func_start sub_81C1070
+sub_81C1070: @ 81C1070
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ adds r4, r1, 0
+ mov r8, r2
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ mov r0, r8
+ ldrb r6, [r0]
+ movs r2, 0
+ lsls r4, 24
+ asrs r4, 24
+ mov r12, r4
+ movs r1, 0
+ ldrsh r4, [r7, r1]
+ ldrb r0, [r7]
+ lsls r3, r0, 24
+_081C109C:
+ lsls r0, r6, 24
+ asrs r0, 24
+ add r0, r12
+ lsls r0, 24
+ lsrs r6, r0, 24
+ asrs r0, 24
+ cmp r0, r4
+ ble _081C10B0
+ movs r6, 0
+ b _081C10B6
+_081C10B0:
+ cmp r0, 0
+ bge _081C10B6
+ lsrs r6, r3, 24
+_081C10B6:
+ lsls r0, r6, 24
+ asrs r1, r0, 24
+ mov r9, r0
+ cmp r1, 0x4
+ bne _081C10C2
+ b _081C11CC
+_081C10C2:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ lsls r1, 1
+ adds r0, 0x84
+ adds r0, r1
+ ldrh r5, [r0]
+ cmp r5, 0
+ bne _081C10E2
+ lsls r0, r2, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _081C109C
+_081C10E2:
+ adds r0, r5, 0
+ bl sub_81C240C
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ adds r0, r5, 0
+ bl sub_81C3E9C
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bne _081C1110
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040c4
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081C1118
+_081C1110:
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x1
+ bne _081C115E
+_081C1118:
+ movs r0, 0x13
+ bl ClearWindowTilemap
+ ldr r2, =gSprites
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040d5
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _081C1142
+ movs r0, 0xD
+ bl ClearWindowTilemap
+_081C1142:
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r4, 0x3
+ negs r4, r4
+ movs r0, 0x9
+ adds r1, r4, 0
+ bl sub_81C1DA4
+ movs r0, 0x9
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_81C1EFC
+_081C115E:
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ beq _081C11A0
+ mov r1, r9
+ asrs r0, r1, 24
+ cmp r0, 0x4
+ bne _081C11A0
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040c4
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _081C11A0
+ movs r0, 0xE
+ bl ClearWindowTilemap
+ movs r0, 0xF
+ bl ClearWindowTilemap
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0
+ movs r1, 0x3
+ bl sub_81C1DA4
+ movs r0, 0
+ movs r1, 0x3
+ movs r2, 0
+ bl sub_81C1EFC
+_081C11A0:
+ mov r0, r8
+ strb r6, [r0]
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040c6
+ adds r0, r1
+ cmp r8, r0
+ bne _081C11E0
+ movs r0, 0x8
+ bl sub_81C4D18
+ b _081C11E6
+ .pool
+_081C11CC:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040c4
+ adds r0, r1
+ ldrh r5, [r0]
+ b _081C10E2
+ .pool
+_081C11E0:
+ movs r0, 0x12
+ bl sub_81C4D18
+_081C11E6:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C1070
+
+ thumb_func_start sub_81C11F4
+sub_81C11F4: @ 81C11F4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x8
+ bl sub_81C4C60
+ movs r0, 0x6
+ bl ClearWindowTilemap
+ movs r0, 0x5
+ bl PutWindowTilemap
+ movs r0, 0
+ bl sub_81C3E9C
+ ldr r4, =gUnknown_0203CF1C
+ ldr r0, [r4]
+ ldr r1, =0x000020bc
+ adds r0, r1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl sub_81C2194
+ ldr r0, [r4]
+ ldr r1, =0x000030bc
+ adds r0, r1
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_81C2194
+ bl sub_81C4064
+ ldr r0, [r4]
+ ldr r1, =0x000040c6
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ beq _081C125E
+ movs r0, 0xE
+ bl ClearWindowTilemap
+ movs r0, 0xF
+ bl ClearWindowTilemap
+ movs r0, 0
+ movs r1, 0x3
+ bl sub_81C1DA4
+ movs r0, 0
+ movs r1, 0x3
+ movs r2, 0
+ bl sub_81C1EFC
+_081C125E:
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81C0510
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C11F4
+
+ thumb_func_start sub_81C129C
+sub_81C129C: @ 81C129C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r2, =0x000040c6
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ adds r2, 0x1
+ adds r0, r2
+ strb r1, [r0]
+ movs r0, 0x1
+ bl sub_81C4C84
+ movs r0, 0x12
+ bl sub_81C4AF8
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81C12E4
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C129C
+
+ thumb_func_start sub_81C12E4
+sub_81C12E4: @ 81C12E4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ bl sub_81221EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081C13AA
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081C1338
+ movs r0, 0x3
+ strh r0, [r4]
+ movs r1, 0x1
+ negs r1, r1
+ ldr r0, =gUnknown_0203CF1C
+ ldr r2, [r0]
+ ldr r0, =0x000040c7
+ adds r2, r0
+ adds r0, r4, 0
+ bl sub_81C1070
+ b _081C13AA
+ .pool
+_081C1338:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081C1360
+ movs r0, 0x3
+ strh r0, [r4]
+ ldr r0, =gUnknown_0203CF1C
+ ldr r2, [r0]
+ ldr r0, =0x000040c7
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81C1070
+ b _081C13AA
+ .pool
+_081C1360:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081C139A
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r2, =0x000040c6
+ adds r1, r0, r2
+ adds r2, 0x1
+ adds r0, r2
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _081C1390
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_81C13B0
+ b _081C13AA
+ .pool
+_081C1390:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_81C13B0
+ b _081C13AA
+_081C139A:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081C13AA
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_81C13B0
+_081C13AA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C12E4
+
+ thumb_func_start sub_81C13B0
+sub_81C13B0: @ 81C13B0
+ push {r4-r7,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_81C4C84
+ movs r0, 0x12
+ bl sub_81C4C60
+ cmp r4, 0x1
+ bne _081C1464
+ ldr r0, =gUnknown_0203CF1C
+ ldr r3, [r0]
+ ldr r1, =0x000040bd
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081C1410
+ ldr r0, [r3]
+ ldr r2, =0x000040be
+ adds r1, r3, r2
+ ldrb r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ adds r0, r1
+ ldr r4, =0x000040c6
+ adds r1, r3, r4
+ ldrb r1, [r1]
+ adds r4, 0x1
+ adds r2, r3, r4
+ ldrb r2, [r2]
+ bl sub_81C14BC
+ b _081C1430
+ .pool
+_081C1410:
+ ldr r0, [r3]
+ ldr r2, =0x000040be
+ adds r1, r3, r2
+ ldrb r2, [r1]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ adds r0, r1
+ ldr r4, =0x000040c6
+ adds r1, r3, r4
+ ldrb r1, [r1]
+ adds r4, 0x1
+ adds r2, r3, r4
+ ldrb r2, [r2]
+ bl sub_81C15EC
+_081C1430:
+ ldr r5, =gUnknown_0203CF1C
+ ldr r0, [r5]
+ adds r0, 0xC
+ bl sub_81C0098
+ ldr r1, [r5]
+ ldr r6, =0x000040c6
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ ldr r4, =0x000040c7
+ adds r1, r4
+ ldrb r1, [r1]
+ bl sub_81C40A0
+ ldr r1, [r5]
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ adds r1, r4
+ ldrb r1, [r1]
+ bl sub_81C4568
+ ldr r0, [r5]
+ adds r4, r0, r4
+ ldrb r1, [r4]
+ adds r0, r6
+ strb r1, [r0]
+_081C1464:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ ldr r2, =0x000040c6
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r1, 0x84
+ adds r1, r0
+ ldrh r4, [r1]
+ adds r0, r4, 0
+ bl sub_81C3E9C
+ adds r0, r4, 0
+ bl sub_81C240C
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81C0F44
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C13B0
+
+ thumb_func_start sub_81C14BC
+sub_81C14BC: @ 81C14BC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ adds r7, r0, 0
+ adds r4, r1, 0
+ adds r6, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, =gUnknown_0203CF1C
+ ldr r2, [r0]
+ lsls r0, r4, 1
+ mov r10, r0
+ adds r1, r2, 0
+ adds r1, 0x84
+ adds r0, r1, r0
+ str r0, [sp, 0x8]
+ ldrh r0, [r0]
+ mov r3, sp
+ adds r3, 0x2
+ str r3, [sp, 0x1C]
+ strh r0, [r3]
+ lsls r0, r6, 1
+ mov r9, r0
+ add r1, r9
+ str r1, [sp, 0xC]
+ ldrh r1, [r1]
+ mov r0, sp
+ strh r1, [r0]
+ adds r1, r2, 0
+ adds r1, 0x8C
+ adds r3, r1, r4
+ str r3, [sp, 0x10]
+ ldrb r0, [r3]
+ mov r3, sp
+ adds r3, 0x5
+ str r3, [sp, 0x24]
+ strb r0, [r3]
+ adds r1, r6
+ str r1, [sp, 0x14]
+ ldrb r0, [r1]
+ mov r1, sp
+ adds r1, 0x4
+ str r1, [sp, 0x20]
+ strb r0, [r1]
+ adds r2, 0xA4
+ str r2, [sp, 0x18]
+ ldrb r0, [r2]
+ mov r5, sp
+ adds r5, 0x6
+ strb r0, [r5]
+ ldr r1, =gUnknown_08329D22
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ mov r8, r0
+ ldrb r0, [r5]
+ adds r2, r0, 0
+ mov r3, r8
+ ands r2, r3
+ mov r3, r10
+ asrs r2, r3
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r6, r1
+ ldrb r1, [r1]
+ mov r12, r1
+ adds r1, r0, 0
+ mov r3, r12
+ ands r1, r3
+ mov r3, r9
+ asrs r1, r3
+ lsls r1, 24
+ lsrs r1, 24
+ mov r3, r8
+ bics r0, r3
+ strb r0, [r5]
+ ldrb r0, [r5]
+ mov r3, r12
+ bics r0, r3
+ strb r0, [r5]
+ mov r0, r9
+ lsls r2, r0
+ mov r3, r10
+ lsls r1, r3
+ adds r2, r1
+ ldrb r0, [r5]
+ orrs r0, r2
+ strb r0, [r5]
+ adds r1, r4, 0
+ adds r1, 0xD
+ adds r0, r7, 0
+ mov r2, sp
+ bl SetMonData
+ adds r1, r6, 0
+ adds r1, 0xD
+ adds r0, r7, 0
+ ldr r2, [sp, 0x1C]
+ bl SetMonData
+ adds r4, 0x11
+ adds r0, r7, 0
+ adds r1, r4, 0
+ ldr r2, [sp, 0x20]
+ bl SetMonData
+ adds r6, 0x11
+ adds r0, r7, 0
+ adds r1, r6, 0
+ ldr r2, [sp, 0x24]
+ bl SetMonData
+ adds r0, r7, 0
+ movs r1, 0x15
+ adds r2, r5, 0
+ bl SetMonData
+ mov r0, sp
+ ldrh r0, [r0]
+ ldr r1, [sp, 0x8]
+ strh r0, [r1]
+ ldr r3, [sp, 0x1C]
+ ldrh r0, [r3]
+ ldr r1, [sp, 0xC]
+ strh r0, [r1]
+ ldr r3, [sp, 0x20]
+ ldrb r0, [r3]
+ ldr r1, [sp, 0x10]
+ strb r0, [r1]
+ ldr r3, [sp, 0x24]
+ ldrb r0, [r3]
+ ldr r1, [sp, 0x14]
+ strb r0, [r1]
+ ldrb r0, [r5]
+ ldr r3, [sp, 0x18]
+ strb r0, [r3]
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C14BC
+
+ thumb_func_start sub_81C15EC
+sub_81C15EC: @ 81C15EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ adds r7, r0, 0
+ adds r4, r1, 0
+ adds r6, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, =gUnknown_0203CF1C
+ ldr r2, [r0]
+ lsls r0, r4, 1
+ mov r10, r0
+ adds r1, r2, 0
+ adds r1, 0x84
+ adds r0, r1, r0
+ str r0, [sp, 0x8]
+ ldrh r0, [r0]
+ mov r3, sp
+ adds r3, 0x2
+ str r3, [sp, 0x1C]
+ strh r0, [r3]
+ lsls r0, r6, 1
+ mov r9, r0
+ add r1, r9
+ str r1, [sp, 0xC]
+ ldrh r1, [r1]
+ mov r0, sp
+ strh r1, [r0]
+ adds r1, r2, 0
+ adds r1, 0x8C
+ adds r3, r1, r4
+ str r3, [sp, 0x10]
+ ldrb r0, [r3]
+ mov r3, sp
+ adds r3, 0x5
+ str r3, [sp, 0x24]
+ strb r0, [r3]
+ adds r1, r6
+ str r1, [sp, 0x14]
+ ldrb r0, [r1]
+ mov r1, sp
+ adds r1, 0x4
+ str r1, [sp, 0x20]
+ strb r0, [r1]
+ adds r2, 0xA4
+ str r2, [sp, 0x18]
+ ldrb r0, [r2]
+ mov r5, sp
+ adds r5, 0x6
+ strb r0, [r5]
+ ldr r1, =gUnknown_08329D22
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ mov r8, r0
+ ldrb r0, [r5]
+ adds r2, r0, 0
+ mov r3, r8
+ ands r2, r3
+ mov r3, r10
+ asrs r2, r3
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r6, r1
+ ldrb r1, [r1]
+ mov r12, r1
+ adds r1, r0, 0
+ mov r3, r12
+ ands r1, r3
+ mov r3, r9
+ asrs r1, r3
+ lsls r1, 24
+ lsrs r1, 24
+ mov r3, r8
+ bics r0, r3
+ strb r0, [r5]
+ ldrb r0, [r5]
+ mov r3, r12
+ bics r0, r3
+ strb r0, [r5]
+ mov r0, r9
+ lsls r2, r0
+ mov r3, r10
+ lsls r1, r3
+ adds r2, r1
+ ldrb r0, [r5]
+ orrs r0, r2
+ strb r0, [r5]
+ adds r1, r4, 0
+ adds r1, 0xD
+ adds r0, r7, 0
+ mov r2, sp
+ bl SetBoxMonData
+ adds r1, r6, 0
+ adds r1, 0xD
+ adds r0, r7, 0
+ ldr r2, [sp, 0x1C]
+ bl SetBoxMonData
+ adds r4, 0x11
+ adds r0, r7, 0
+ adds r1, r4, 0
+ ldr r2, [sp, 0x20]
+ bl SetBoxMonData
+ adds r6, 0x11
+ adds r0, r7, 0
+ adds r1, r6, 0
+ ldr r2, [sp, 0x24]
+ bl SetBoxMonData
+ adds r0, r7, 0
+ movs r1, 0x15
+ adds r2, r5, 0
+ bl SetBoxMonData
+ mov r0, sp
+ ldrh r0, [r0]
+ ldr r1, [sp, 0x8]
+ strh r0, [r1]
+ ldr r3, [sp, 0x1C]
+ ldrh r0, [r3]
+ ldr r1, [sp, 0xC]
+ strh r0, [r1]
+ ldr r3, [sp, 0x20]
+ ldrb r0, [r3]
+ ldr r1, [sp, 0x10]
+ strb r0, [r1]
+ ldr r3, [sp, 0x24]
+ ldrb r0, [r3]
+ ldr r1, [sp, 0x14]
+ strb r0, [r1]
+ ldrb r0, [r5]
+ ldr r3, [sp, 0x18]
+ strb r0, [r3]
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C15EC
+
+ thumb_func_start sub_81C171C
+sub_81C171C: @ 81C171C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_81C44F0
+ movs r0, 0x8
+ bl sub_81C4AF8
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81C174C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C171C
+
+ thumb_func_start sub_81C174C
+sub_81C174C: @ 81C174C
+ 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
+ bl sub_81221EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081C176A
+ b _081C189A
+_081C176A:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _081C177A
+ b _081C189A
+_081C177A:
+ ldr r6, =gMain
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081C17B4
+ movs r0, 0x4
+ strh r0, [r4]
+ movs r1, 0x1
+ negs r1, r1
+ ldr r0, =gUnknown_0203CF1C
+ ldr r2, [r0]
+ ldr r0, =0x000040c6
+ adds r2, r0
+ adds r0, r4, 0
+ bl sub_81C1070
+ b _081C189A
+ .pool
+_081C17B4:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _081C17DC
+ movs r0, 0x4
+ strh r0, [r4]
+ ldr r0, =gUnknown_0203CF1C
+ ldr r2, [r0]
+ ldr r1, =0x000040c6
+ adds r2, r1
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81C1070
+ b _081C189A
+ .pool
+_081C17DC:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _081C17F0
+ bl GetLRKeysState
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081C17FC
+_081C17F0:
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r5, 0
+ bl sub_81C0A8C
+ b _081C189A
+_081C17FC:
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _081C1812
+ bl GetLRKeysState
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _081C181C
+_081C1812:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_81C0A8C
+ b _081C189A
+_081C181C:
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081C1876
+ bl sub_81C18A8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081C1868
+ bl sub_81C48F0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, =gUnknown_0203CF21
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040c6
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r1, =gSpecialVar_0x8005
+ ldrb r0, [r2]
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl sub_81C044C
+ b _081C189A
+ .pool
+_081C1868:
+ movs r0, 0x20
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_81C18F4
+ b _081C189A
+_081C1876:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081C189A
+ bl sub_81C48F0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, =gUnknown_0203CF21
+ movs r0, 0x4
+ strb r0, [r1]
+ ldr r1, =gSpecialVar_0x8005
+ movs r0, 0x4
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl sub_81C044C
+_081C189A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C174C
+
+ thumb_func_start sub_81C18A8
+sub_81C18A8: @ 81C18A8
+ push {lr}
+ ldr r0, =gUnknown_0203CF1C
+ ldr r2, [r0]
+ ldr r0, =0x000040c6
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ beq _081C18DA
+ ldr r3, =0x000040c4
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081C18DA
+ ldrb r1, [r1]
+ lsls r1, 1
+ adds r0, r2, 0
+ adds r0, 0x84
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_81B6D14
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081C18EC
+_081C18DA:
+ movs r0, 0x1
+ b _081C18EE
+ .pool
+_081C18EC:
+ movs r0, 0
+_081C18EE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C18A8
+
+ thumb_func_start sub_81C18F4
+sub_81C18F4: @ 81C18F4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0xE
+ bl ClearWindowTilemap
+ movs r0, 0xF
+ bl ClearWindowTilemap
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0
+ movs r1, 0x3
+ bl sub_81C1DA4
+ movs r0, 0
+ movs r1, 0x3
+ movs r2, 0
+ bl sub_81C1EFC
+ bl sub_81C4154
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81C1940
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C18F4
+
+ thumb_func_start sub_81C1940
+sub_81C1940: @ 81C1940
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ mov r8, r0
+ ldr r0, =gTasks + 0x8
+ mov r9, r0
+ mov r4, r8
+ add r4, r9
+ ldr r0, =sub_81C1E20
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081C196C
+ b _081C1B74
+_081C196C:
+ ldr r6, =gMain
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _081C19B0
+ movs r0, 0x1
+ strh r0, [r4, 0x2]
+ movs r0, 0x4
+ strh r0, [r4]
+ movs r1, 0x1
+ negs r1, r1
+ ldr r0, =gUnknown_0203CF1C
+ ldr r2, [r0]
+ ldr r0, =0x000040c6
+ adds r2, r0
+ adds r0, r4, 0
+ bl sub_81C1070
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ b _081C1B6A
+ .pool
+_081C19B0:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081C19DC
+ movs r0, 0x1
+ strh r0, [r4, 0x2]
+ movs r0, 0x4
+ strh r0, [r4]
+ ldr r0, =gUnknown_0203CF1C
+ ldr r2, [r0]
+ ldr r1, =0x000040c6
+ adds r2, r1
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81C1070
+ strh r5, [r4, 0x2]
+ b _081C1B6A
+ .pool
+_081C19DC:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _081C19F0
+ bl GetLRKeysState
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081C1A64
+_081C19F0:
+ ldr r4, =gUnknown_0203CF1C
+ ldr r0, [r4]
+ ldr r2, =0x000040c0
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _081C1A00
+ b _081C1B74
+_081C1A00:
+ movs r0, 0x13
+ bl ClearWindowTilemap
+ ldr r2, =gSprites
+ ldr r0, [r4]
+ ldr r1, =0x000040d5
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _081C1A28
+ movs r0, 0xD
+ bl ClearWindowTilemap
+_081C1A28:
+ ldr r1, [r4]
+ ldr r2, =0x000040c6
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r1, 0x84
+ adds r1, r0
+ ldrh r5, [r1]
+ mov r0, r9
+ subs r0, 0x8
+ add r0, r8
+ ldr r1, =sub_81C174C
+ str r1, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r7, 0
+ b _081C1ACE
+ .pool
+_081C1A64:
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _081C1A7A
+ bl GetLRKeysState
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _081C1B04
+_081C1A7A:
+ ldr r4, =gUnknown_0203CF1C
+ ldr r0, [r4]
+ ldr r1, =0x000040c0
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _081C1B74
+ movs r0, 0x13
+ bl ClearWindowTilemap
+ ldr r2, =gSprites
+ ldr r0, [r4]
+ ldr r1, =0x000040d5
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _081C1AB0
+ movs r0, 0xD
+ bl ClearWindowTilemap
+_081C1AB0:
+ ldr r1, [r4]
+ ldr r2, =0x000040c6
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r1, 0x84
+ adds r1, r0
+ ldrh r5, [r1]
+ mov r0, r9
+ subs r0, 0x8
+ add r0, r8
+ ldr r1, =sub_81C174C
+ str r1, [r0]
+ adds r0, r7, 0
+ movs r1, 0x1
+_081C1ACE:
+ bl sub_81C0A8C
+ movs r4, 0x2
+ negs r4, r4
+ movs r0, 0x9
+ adds r1, r4, 0
+ bl sub_81C1DA4
+ movs r0, 0x9
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_81C1EFC
+ b _081C1B74
+ .pool
+_081C1B04:
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _081C1B74
+ movs r0, 0x13
+ bl ClearWindowTilemap
+ ldr r2, =gSprites
+ ldr r4, =gUnknown_0203CF1C
+ ldr r0, [r4]
+ ldr r1, =0x000040d5
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _081C1B38
+ movs r0, 0xD
+ bl ClearWindowTilemap
+_081C1B38:
+ ldr r1, [r4]
+ ldr r2, =0x000040c6
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r1, 0x84
+ adds r1, r0
+ ldrh r5, [r1]
+ adds r0, r5, 0
+ bl sub_81C3E9C
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r4, 0x3
+ negs r4, r4
+ movs r0, 0x9
+ adds r1, r4, 0
+ bl sub_81C1DA4
+ movs r0, 0x9
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_81C1EFC
+_081C1B6A:
+ mov r0, r9
+ subs r0, 0x8
+ add r0, r8
+ ldr r1, =sub_81C174C
+ str r1, [r0]
+_081C1B74:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C1940
+
+ thumb_func_start sub_81C1B94
+sub_81C1B94: @ 81C1B94
+ ldr r0, =gUnknown_0203CF21
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_81C1B94
+
+ thumb_func_start sub_81C1BA0
+sub_81C1BA0: @ 81C1BA0
+ push {r4-r7,lr}
+ sub sp, 0xC
+ movs r0, 0x20
+ bl Alloc
+ adds r4, r0, 0
+ movs r5, 0
+_081C1BAE:
+ lsls r0, r5, 25
+ lsrs r1, r0, 24
+ adds r6, r1, 0
+ ldr r0, =gUnknown_0203CF1C
+ ldr r3, [r0]
+ ldr r2, =0x000040c1
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _081C1BD8
+ lsls r0, r1, 1
+ adds r0, r4
+ movs r1, 0x40
+ strh r1, [r0]
+ strh r1, [r0, 0x2]
+ movs r1, 0x50
+ b _081C1BEE
+ .pool
+_081C1BD8:
+ ldr r7, =0x000040c2
+ adds r0, r3, r7
+ ldrb r2, [r0]
+ cmp r5, r2
+ bls _081C1BF8
+ lsls r0, r1, 1
+ adds r0, r4
+ movs r1, 0x4A
+ strh r1, [r0]
+ strh r1, [r0, 0x2]
+ movs r1, 0x5A
+_081C1BEE:
+ strh r1, [r0, 0x10]
+ strh r1, [r0, 0x12]
+ b _081C1C78
+ .pool
+_081C1BF8:
+ ldr r7, =0x000040c0
+ adds r0, r3, r7
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _081C1C1C
+ lsls r1, 1
+ adds r1, r4
+ movs r0, 0x46
+ strh r0, [r1]
+ movs r0, 0x47
+ strh r0, [r1, 0x2]
+ movs r0, 0x56
+ strh r0, [r1, 0x10]
+ movs r0, 0x57
+ b _081C1C76
+ .pool
+_081C1C1C:
+ cmp r5, r0
+ bne _081C1C4C
+ cmp r5, r2
+ beq _081C1C38
+ lsls r1, 1
+ adds r1, r4
+ movs r0, 0x41
+ strh r0, [r1]
+ movs r0, 0x42
+ strh r0, [r1, 0x2]
+ movs r0, 0x51
+ strh r0, [r1, 0x10]
+ movs r0, 0x52
+ b _081C1C76
+_081C1C38:
+ lsls r1, 1
+ adds r1, r4
+ movs r0, 0x4B
+ strh r0, [r1]
+ movs r0, 0x4C
+ strh r0, [r1, 0x2]
+ movs r0, 0x5B
+ strh r0, [r1, 0x10]
+ movs r0, 0x5C
+ b _081C1C76
+_081C1C4C:
+ cmp r5, r2
+ beq _081C1C64
+ lsls r1, 1
+ adds r1, r4
+ movs r0, 0x43
+ strh r0, [r1]
+ movs r0, 0x44
+ strh r0, [r1, 0x2]
+ movs r0, 0x53
+ strh r0, [r1, 0x10]
+ movs r0, 0x54
+ b _081C1C76
+_081C1C64:
+ lsls r1, r6, 1
+ adds r1, r4
+ movs r0, 0x48
+ strh r0, [r1]
+ movs r0, 0x49
+ strh r0, [r1, 0x2]
+ movs r0, 0x58
+ strh r0, [r1, 0x10]
+ movs r0, 0x59
+_081C1C76:
+ strh r0, [r1, 0x12]
+_081C1C78:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _081C1BAE
+ movs r0, 0x8
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ movs r0, 0x10
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ adds r1, r4, 0
+ movs r2, 0xB
+ movs r3, 0
+ bl CopyToBgTilemapBufferRect_ChangePalette
+ movs r0, 0x3
+ bl schedule_bg_copy_tilemap_to_vram
+ adds r0, r4, 0
+ bl Free
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C1BA0
+
+ thumb_func_start sub_81C1CB0
+sub_81C1CB0: @ 81C1CB0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ mov r8, r1
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 24
+ lsrs r5, r3, 24
+ ldrb r1, [r4, 0x6]
+ ldrb r0, [r4, 0x7]
+ lsls r0, 1
+ muls r0, r1
+ bl Alloc
+ adds r7, r0, 0
+ mov r1, sp
+ ldrh r0, [r4, 0x4]
+ strh r0, [r1]
+ ldrb r1, [r4, 0x7]
+ ldrb r0, [r4, 0x6]
+ adds r2, r1, 0
+ muls r2, r0
+ movs r0, 0x80
+ lsls r0, 17
+ orrs r2, r0
+ mov r0, sp
+ adds r1, r7, 0
+ bl CpuSet
+ ldrb r0, [r4, 0x6]
+ cmp r0, r6
+ beq _081C1D60
+ cmp r5, 0
+ bne _081C1D30
+ movs r5, 0
+ ldrb r0, [r4, 0x7]
+ cmp r5, r0
+ bcs _081C1D60
+_081C1D00:
+ ldrb r2, [r4, 0x6]
+ adds r1, r2, 0
+ muls r1, r5
+ adds r3, r6, r1
+ lsls r3, 1
+ ldr r0, [r4]
+ adds r0, r3
+ lsls r1, 1
+ adds r1, r7, r1
+ subs r2, r6
+ ldr r3, =0x001fffff
+ ands r2, r3
+ bl CpuSet
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrb r3, [r4, 0x7]
+ cmp r5, r3
+ bcc _081C1D00
+ b _081C1D60
+ .pool
+_081C1D30:
+ movs r5, 0
+ ldrb r0, [r4, 0x7]
+ cmp r5, r0
+ bcs _081C1D60
+_081C1D38:
+ ldrb r2, [r4, 0x6]
+ adds r1, r2, 0
+ muls r1, r5
+ lsls r3, r1, 1
+ ldr r0, [r4]
+ adds r0, r3
+ adds r1, r6, r1
+ lsls r1, 1
+ adds r1, r7, r1
+ subs r2, r6
+ ldr r3, =0x001fffff
+ ands r2, r3
+ bl CpuSet
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrb r3, [r4, 0x7]
+ cmp r5, r3
+ bcc _081C1D38
+_081C1D60:
+ movs r5, 0
+ b _081C1D8A
+ .pool
+_081C1D68:
+ ldrb r2, [r4, 0x6]
+ adds r0, r2, 0
+ muls r0, r5
+ lsls r0, 1
+ adds r0, r7, r0
+ ldrb r1, [r4, 0x9]
+ adds r1, r5
+ lsls r1, 5
+ ldrb r3, [r4, 0x8]
+ adds r1, r3
+ lsls r1, 1
+ add r1, r8
+ bl CpuSet
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_081C1D8A:
+ ldrb r0, [r4, 0x7]
+ cmp r5, r0
+ bcc _081C1D68
+ adds r0, r7, 0
+ bl Free
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C1CB0
+
+ thumb_func_start sub_81C1DA4
+sub_81C1DA4: @ 81C1DA4
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ asrs r1, 16
+ ldr r3, =gUnknown_0861CC04
+ ldrb r2, [r3, 0x6]
+ cmp r1, r2
+ ble _081C1DBA
+ adds r4, r2, 0
+_081C1DBA:
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r0, 0
+ beq _081C1DC6
+ cmp r0, r2
+ bne _081C1DE8
+_081C1DC6:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ ldr r0, =0x000020bc
+ adds r1, r0
+ lsls r2, r4, 24
+ lsrs r2, 24
+ adds r0, r3, 0
+ movs r3, 0x1
+ bl sub_81C1CB0
+ b _081C1E12
+ .pool
+_081C1DE8:
+ ldr r5, =sub_81C1E20
+ adds r0, r5, 0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ bne _081C1E04
+ adds r0, r5, 0
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+_081C1E04:
+ ldr r1, =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0x8]
+ strh r6, [r0, 0xA]
+_081C1E12:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C1DA4
+
+ thumb_func_start sub_81C1E20
+sub_81C1E20: @ 81C1E20
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bge _081C1E50
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ ldr r7, =gUnknown_0861CC04
+ b _081C1E60
+ .pool
+_081C1E50:
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ ldr r0, =gUnknown_0861CC04
+ ldrb r2, [r0, 0x6]
+ adds r7, r0, 0
+ cmp r1, r2
+ ble _081C1E60
+ strh r2, [r4, 0x2]
+_081C1E60:
+ ldr r5, =gUnknown_0203CF1C
+ ldr r1, [r5]
+ ldr r0, =0x000020bc
+ adds r1, r0
+ ldrb r2, [r4, 0x2]
+ adds r0, r7, 0
+ movs r3, 0x1
+ bl sub_81C1CB0
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ ble _081C1E80
+ ldrb r7, [r7, 0x6]
+ cmp r0, r7
+ blt _081C1EE0
+_081C1E80:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _081C1EAC
+ ldr r0, [r5]
+ ldr r1, =0x000040c0
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _081C1ED4
+ movs r0, 0xE
+ bl PutWindowTilemap
+ b _081C1ED4
+ .pool
+_081C1EAC:
+ ldr r2, =gSprites
+ ldr r0, [r5]
+ ldr r1, =0x000040d5
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _081C1ECE
+ movs r0, 0xD
+ bl PutWindowTilemap
+_081C1ECE:
+ movs r0, 0x13
+ bl PutWindowTilemap
+_081C1ED4:
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ adds r0, r6, 0
+ bl DestroyTask
+_081C1EE0:
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C1E20
+
+ thumb_func_start sub_81C1EFC
+sub_81C1EFC: @ 81C1EFC
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r7, r0, 16
+ lsls r1, 16
+ lsls r2, 16
+ lsrs r6, r2, 16
+ lsrs r4, r1, 16
+ asrs r1, 16
+ ldr r3, =gUnknown_0861CC10
+ ldrb r2, [r3, 0x6]
+ cmp r1, r2
+ ble _081C1F16
+ adds r4, r2, 0
+_081C1F16:
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r0, 0
+ beq _081C1F22
+ cmp r0, r2
+ bne _081C1F44
+_081C1F22:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ ldr r0, =0x000030bc
+ adds r1, r0
+ lsls r2, r4, 24
+ lsrs r2, 24
+ adds r0, r3, 0
+ movs r3, 0x1
+ bl sub_81C1CB0
+ b _081C1F70
+ .pool
+_081C1F44:
+ ldr r5, =sub_81C1F80
+ adds r0, r5, 0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ bne _081C1F60
+ adds r0, r5, 0
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+_081C1F60:
+ ldr r1, =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0x8]
+ strh r7, [r0, 0xA]
+ strh r6, [r0, 0xC]
+_081C1F70:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C1EFC
+
+ thumb_func_start sub_81C1F80
+sub_81C1F80: @ 81C1F80
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bge _081C1FB0
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ ldr r7, =gUnknown_0861CC10
+ b _081C1FC0
+ .pool
+_081C1FB0:
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ ldr r0, =gUnknown_0861CC10
+ ldrb r2, [r0, 0x6]
+ adds r7, r0, 0
+ cmp r1, r2
+ ble _081C1FC0
+ strh r2, [r4, 0x2]
+_081C1FC0:
+ ldr r5, =gUnknown_0203CF1C
+ ldr r1, [r5]
+ ldr r0, =0x000030bc
+ adds r1, r0
+ ldrb r2, [r4, 0x2]
+ adds r0, r7, 0
+ movs r3, 0x1
+ bl sub_81C1CB0
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ ble _081C1FE0
+ ldrb r7, [r7, 0x6]
+ cmp r0, r7
+ blt _081C2058
+_081C1FE0:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _081C2024
+ ldr r0, [r5]
+ ldr r1, =0x000040c0
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _081C2006
+ ldr r0, =sub_81C0B8C
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ bne _081C2006
+ movs r0, 0xF
+ bl PutWindowTilemap
+_081C2006:
+ ldrh r0, [r4, 0x4]
+ bl sub_81C240C
+ b _081C204C
+ .pool
+_081C2024:
+ ldr r2, =gSprites
+ ldr r0, [r5]
+ ldr r1, =0x000040d5
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _081C2046
+ movs r0, 0xD
+ bl PutWindowTilemap
+_081C2046:
+ movs r0, 0x13
+ bl PutWindowTilemap
+_081C204C:
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ adds r0, r6, 0
+ bl DestroyTask
+_081C2058:
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C1F80
+
+ thumb_func_start sub_81C2074
+sub_81C2074: @ 81C2074
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ asrs r1, 16
+ ldr r3, =gUnknown_0861CBEC
+ ldrb r2, [r3, 0x6]
+ cmp r1, r2
+ ble _081C208A
+ adds r4, r2, 0
+_081C208A:
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r0, 0
+ beq _081C2096
+ cmp r0, r2
+ bne _081C20C8
+_081C2096:
+ ldr r5, =gUnknown_0203CF1C
+ ldr r1, [r5]
+ adds r1, 0xBC
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r3, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl sub_81C1CB0
+ ldr r0, =gUnknown_0861CBF8
+ ldr r1, [r5]
+ adds r1, 0xBC
+ adds r2, r4, 0
+ movs r3, 0
+ bl sub_81C1CB0
+ b _081C20E2
+ .pool
+_081C20C8:
+ ldr r0, =sub_81C20F0
+ movs r1, 0x8
+ 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, 0x8]
+ strh r5, [r1, 0xA]
+_081C20E2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C2074
+
+ thumb_func_start sub_81C20F0
+sub_81C20F0: @ 81C20F0
+ push {r4-r7,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
+ ldrh r0, [r5]
+ ldrh r1, [r5, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bge _081C2120
+ movs r0, 0
+ strh r0, [r5, 0x2]
+ ldr r7, =gUnknown_0861CBEC
+ b _081C2130
+ .pool
+_081C2120:
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ ldr r0, =gUnknown_0861CBEC
+ ldrb r2, [r0, 0x6]
+ adds r7, r0, 0
+ cmp r1, r2
+ ble _081C2130
+ strh r2, [r5, 0x2]
+_081C2130:
+ ldr r4, =gUnknown_0203CF1C
+ ldr r1, [r4]
+ adds r1, 0xBC
+ ldrb r2, [r5, 0x2]
+ adds r0, r7, 0
+ movs r3, 0
+ bl sub_81C1CB0
+ ldr r0, =gUnknown_0861CBF8
+ ldr r1, [r4]
+ adds r1, 0xBC
+ ldrb r2, [r5, 0x2]
+ movs r3, 0
+ bl sub_81C1CB0
+ movs r0, 0x3
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ ble _081C2162
+ ldrb r7, [r7, 0x6]
+ cmp r0, r7
+ blt _081C2180
+_081C2162:
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bge _081C217A
+ bl sub_81C4A88
+ movs r0, 0xD
+ bl PutWindowTilemap
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+_081C217A:
+ adds r0, r6, 0
+ bl DestroyTask
+_081C2180:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C20F0
+
+ thumb_func_start sub_81C2194
+sub_81C2194: @ 81C2194
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ lsls r2, 24
+ lsls r1, 28
+ lsrs r4, r1, 16
+ ldr r7, =0x0000056a
+ cmp r2, 0
+ bne _081C21E4
+ movs r3, 0
+ ldr r5, =gUnknown_08DC3CD4
+_081C21A8:
+ adds r2, r7, r3
+ lsls r2, 1
+ adds r2, r6
+ lsls r0, r3, 1
+ adds r0, r5
+ ldrh r1, [r0]
+ adds r1, r4, r1
+ strh r1, [r2]
+ adds r0, r2, 0
+ adds r0, 0x40
+ strh r1, [r0]
+ adds r2, 0x80
+ adds r0, r3, 0
+ adds r0, 0x14
+ lsls r0, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ adds r0, r4, r0
+ strh r0, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x13
+ bls _081C21A8
+ b _081C221C
+ .pool
+_081C21E4:
+ movs r3, 0
+ ldr r5, =gUnknown_08DC3CD4
+_081C21E8:
+ adds r1, r7, r3
+ lsls r1, 1
+ adds r1, r6
+ adds r0, r3, 0
+ adds r0, 0x14
+ lsls r0, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ adds r0, r4, r0
+ strh r0, [r1]
+ adds r2, r1, 0
+ adds r2, 0x40
+ adds r0, r3, 0
+ adds r0, 0x28
+ lsls r0, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ adds r0, r4, r0
+ strh r0, [r2]
+ adds r1, 0x80
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x13
+ bls _081C21E8
+_081C221C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C2194
+
+ thumb_func_start sub_81C2228
+sub_81C2228: @ 81C2228
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl CheckPartyPokerus
+ lsls r0, 24
+ cmp r0, 0
+ bne _081C225C
+ adds r0, r4, 0
+ movs r1, 0
+ bl CheckPartyHasHadPokerus
+ lsls r0, 24
+ cmp r0, 0
+ beq _081C225C
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r2, =0x00000502
+ adds r1, r0, r2
+ movs r2, 0x2C
+ b _081C2266
+ .pool
+_081C225C:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r2, =0x00000502
+ adds r1, r0, r2
+ ldr r2, =0x0000081a
+_081C2266:
+ strh r2, [r1]
+ ldr r1, =0x00000d02
+ adds r0, r1
+ strh r2, [r0]
+ movs r0, 0x3
+ bl schedule_bg_copy_tilemap_to_vram
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C2228
+
+ thumb_func_start sub_81C228C
+sub_81C228C: @ 81C228C
+ push {lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _081C22AC
+ movs r0, 0x8
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0x4
+ movs r3, 0x8
+ bl sub_8199C30
+ b _081C22C0
+_081C22AC:
+ movs r0, 0x8
+ str r0, [sp]
+ movs r0, 0x5
+ str r0, [sp, 0x4]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0x4
+ movs r3, 0x8
+ bl sub_8199C30
+_081C22C0:
+ movs r0, 0x3
+ bl schedule_bg_copy_tilemap_to_vram
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C228C
+
+ thumb_func_start sub_81C22CC
+sub_81C22CC: @ 81C22CC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ adds r6, r1, 0
+ adds r6, 0x70
+ ldrb r1, [r6, 0x5]
+ mov r8, r0
+ cmp r1, 0x63
+ bhi _081C2340
+ ldr r5, =gExperienceTables
+ adds r2, r1, 0
+ adds r1, r2, 0x1
+ lsls r1, 2
+ ldr r4, =gBaseStats
+ ldrh r3, [r6]
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r4
+ ldrb r3, [r0, 0x13]
+ movs r0, 0xCA
+ lsls r0, 1
+ muls r0, r3
+ adds r1, r0
+ adds r1, r5
+ lsls r2, 2
+ adds r2, r0
+ adds r2, r5
+ ldr r1, [r1]
+ ldr r2, [r2]
+ subs r1, r2
+ ldr r0, [r6, 0x10]
+ subs r4, r0, r2
+ lsls r0, r4, 6
+ bl __udivsi3
+ adds r6, r0, 0
+ movs r7, 0
+ adds r0, r7, 0
+ orrs r0, r6
+ cmp r0, 0
+ bne _081C2344
+ cmp r4, 0
+ beq _081C2344
+ movs r6, 0x1
+ movs r7, 0
+ b _081C2344
+ .pool
+_081C2340:
+ movs r6, 0
+ movs r7, 0
+_081C2344:
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r2, =0x00001d66
+ adds r2, r0
+ mov r9, r2
+ movs r0, 0
+ mov r12, r0
+ ldr r1, =0x00002062
+ mov r10, r1
+_081C2356:
+ cmp r7, 0
+ bgt _081C2362
+ cmp r7, 0
+ bne _081C237C
+ cmp r6, 0x7
+ bls _081C237C
+_081C2362:
+ mov r2, r12
+ lsls r0, r2, 1
+ add r0, r9
+ ldr r2, =0x0000206a
+ adds r1, r2, 0
+ strh r1, [r0]
+ b _081C23B6
+ .pool
+_081C237C:
+ mov r1, r12
+ lsls r0, r1, 1
+ add r0, r9
+ mov r8, r0
+ adds r5, r7, 0
+ adds r4, r6, 0
+ cmp r7, 0
+ bge _081C2394
+ movs r4, 0x7
+ movs r5, 0
+ adds r4, r6
+ adcs r5, r7
+_081C2394:
+ lsls r3, r5, 29
+ lsrs r2, r4, 3
+ adds r0, r3, 0
+ orrs r0, r2
+ asrs r1, r5, 3
+ lsrs r5, r0, 29
+ lsls r4, r1, 3
+ adds r3, r5, 0
+ orrs r3, r4
+ lsls r2, r0, 3
+ adds r1, r7, 0
+ adds r0, r6, 0
+ subs r0, r2
+ sbcs r1, r3
+ add r0, r10
+ mov r2, r8
+ strh r0, [r2]
+_081C23B6:
+ movs r0, 0x8
+ negs r0, r0
+ asrs r1, r0, 31
+ adds r6, r0
+ adcs r7, r1
+ cmp r7, 0
+ bge _081C23C8
+ movs r6, 0
+ movs r7, 0
+_081C23C8:
+ mov r0, r12
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ cmp r0, 0x7
+ bls _081C2356
+ movs r0, 0x1
+ bl GetBgTilemapBuffer
+ ldr r1, =gUnknown_0203CF1C
+ ldr r1, [r1]
+ ldr r2, =0x000010bc
+ adds r1, r2
+ cmp r0, r1
+ bne _081C23F8
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ b _081C23FE
+ .pool
+_081C23F8:
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+_081C23FE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C22CC
+
+ thumb_func_start sub_81C240C
+sub_81C240C: @ 81C240C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000038bc
+ adds r5, r0, r1
+ cmp r3, 0
+ beq _081C2510
+ ldr r1, =gContestEffects
+ ldr r2, =gContestMoves
+ lsls r3, 3
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x1]
+ mov r9, r1
+ mov r8, r2
+ mov r10, r3
+ cmp r4, 0xFF
+ beq _081C244C
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+_081C244C:
+ movs r2, 0
+ movs r6, 0x3
+ movs r3, 0xF3
+ lsls r3, 2
+_081C2454:
+ cmp r4, 0xFF
+ beq _081C2484
+ cmp r2, r4
+ bcs _081C2484
+ lsrs r0, r2, 2
+ adds r1, r2, 0
+ ands r1, r6
+ lsls r0, 5
+ adds r0, r1
+ lsls r0, 1
+ adds r0, r5
+ adds r0, r3
+ ldr r7, =0x0000103a
+ b _081C2496
+ .pool
+_081C2484:
+ lsrs r0, r2, 2
+ adds r1, r2, 0
+ ands r1, r6
+ lsls r0, 5
+ adds r0, r1
+ lsls r0, 1
+ adds r0, r5
+ adds r0, r3
+ ldr r7, =0x00001039
+_081C2496:
+ adds r1, r7, 0
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _081C2454
+ mov r0, r10
+ add r0, r8
+ ldrb r0, [r0]
+ lsls r0, 2
+ add r0, r9
+ ldrb r4, [r0, 0x2]
+ cmp r4, 0xFF
+ beq _081C24C0
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+_081C24C0:
+ movs r2, 0
+ movs r6, 0x3
+ ldr r3, =0x0000044c
+_081C24C6:
+ cmp r4, 0xFF
+ beq _081C24F0
+ cmp r2, r4
+ bcs _081C24F0
+ lsrs r0, r2, 2
+ adds r1, r2, 0
+ ands r1, r6
+ lsls r0, 5
+ adds r0, r1
+ lsls r0, 1
+ adds r0, r5
+ adds r0, r3
+ ldr r7, =0x0000103c
+ b _081C2502
+ .pool
+_081C24F0:
+ lsrs r0, r2, 2
+ adds r1, r2, 0
+ ands r1, r6
+ lsls r0, 5
+ adds r0, r1
+ lsls r0, 1
+ adds r0, r5
+ adds r0, r3
+ ldr r7, =0x0000103d
+_081C2502:
+ adds r1, r7, 0
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _081C24C6
+_081C2510:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C240C
+
+ thumb_func_start sub_81C2524
+sub_81C2524: @ 81C2524
+ push {lr}
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r0, 0x74
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081C2544
+ movs r1, 0x80
+ lsls r1, 9
+ movs r0, 0x3
+ movs r2, 0
+ bl ChangeBgX
+ b _081C254E
+ .pool
+_081C2544:
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+_081C254E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C2524
+
+ thumb_func_start sub_81C2554
+sub_81C2554: @ 81C2554
+ push {r4,r5,lr}
+ ldr r0, =gUnknown_0861CC24
+ bl InitWindows
+ bl DeactivateAllTextPrinters
+ movs r4, 0
+_081C2562:
+ adds r0, r4, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x13
+ bls _081C2562
+ movs r4, 0
+ ldr r5, =gUnknown_0203CF1C
+ ldr r3, =0x000040cb
+ movs r2, 0xFF
+_081C257C:
+ ldr r0, [r5]
+ adds r0, r3
+ adds r0, r4
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _081C257C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C2554
+
+ thumb_func_start sub_81C25A4
+sub_81C25A4: @ 81C25A4
+ push {r4-r6,lr}
+ sub sp, 0x14
+ ldr r4, [sp, 0x24]
+ ldr r5, [sp, 0x28]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ movs r6, 0
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ lsls r4, r5, 1
+ adds r4, r5
+ ldr r5, =gUnknown_0861CD2C
+ adds r4, r5
+ str r4, [sp, 0x8]
+ str r6, [sp, 0xC]
+ str r1, [sp, 0x10]
+ movs r1, 0x1
+ bl AddTextPrinterParametrized2
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C25A4
+
+ thumb_func_start sub_81C25E8
+sub_81C25E8: @ 81C25E8
+ push {lr}
+ movs r0, 0x11
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x12
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x13
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r0, 0x74
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081C2618
+ bl sub_81C2628
+ b _081C261C
+ .pool
+_081C2618:
+ bl sub_81C2794
+_081C261C:
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C25E8
+
+ thumb_func_start sub_81C2628
+sub_81C2628: @ 81C2628
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x18
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ movs r1, 0xC
+ adds r1, r0
+ mov r8, r1
+ adds r7, r0, 0
+ adds r7, 0x70
+ ldrh r0, [r7]
+ bl SpeciesToPokedexNum
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, =0x0000ffff
+ cmp r5, r0
+ beq _081C26CE
+ ldr r6, =gStringVar1
+ ldr r1, =gText_UnkCtrlF908Clear01
+ adds r0, r6, 0
+ bl StringCopy
+ ldr r4, =gStringVar2
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x2
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl StringAppend
+ mov r0, r8
+ bl IsMonShiny
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _081C26AC
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ movs r0, 0
+ bl sub_81C228C
+ b _081C26C6
+ .pool
+_081C26AC:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x7
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ movs r0, 0x1
+ bl sub_81C228C
+_081C26C6:
+ movs r0, 0x11
+ bl PutWindowTilemap
+ b _081C26EE
+_081C26CE:
+ movs r0, 0x11
+ bl ClearWindowTilemap
+ mov r0, r8
+ bl IsMonShiny
+ lsls r0, 24
+ cmp r0, 0
+ bne _081C26E8
+ movs r0, 0
+ bl sub_81C228C
+ b _081C26EE
+_081C26E8:
+ movs r0, 0x1
+ bl sub_81C228C
+_081C26EE:
+ ldr r4, =gStringVar1
+ ldr r1, =gText_LevelSymbol
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r5, =gStringVar2
+ ldrb r1, [r7, 0x5]
+ adds r0, r5, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl StringAppend
+ movs r6, 0
+ str r6, [sp]
+ movs r5, 0x1
+ str r5, [sp, 0x4]
+ movs r0, 0x13
+ adds r1, r4, 0
+ movs r2, 0x18
+ movs r3, 0x11
+ bl sub_81C25A4
+ mov r0, r8
+ adds r1, r4, 0
+ bl GetMonNickname
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0x12
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ add r1, sp, 0x8
+ movs r0, 0xBA
+ strb r0, [r1]
+ mov r0, sp
+ adds r0, 0x9
+ ldrh r2, [r7, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0x13
+ add r1, sp, 0x8
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ ldrh r1, [r7, 0x2]
+ mov r0, r8
+ bl sub_81C27DC
+ movs r0, 0x12
+ bl PutWindowTilemap
+ movs r0, 0x13
+ bl PutWindowTilemap
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C2628
+
+ thumb_func_start sub_81C2794
+sub_81C2794: @ 81C2794
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r0, 0xC
+ ldr r4, =gStringVar1
+ adds r1, r4, 0
+ bl GetMonNickname
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r0, 0x12
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ movs r0, 0x12
+ bl PutWindowTilemap
+ movs r0, 0x11
+ bl ClearWindowTilemap
+ movs r0, 0x13
+ bl ClearWindowTilemap
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C2794
+
+ thumb_func_start sub_81C27DC
+sub_81C27DC: @ 81C27DC
+ push {lr}
+ sub sp, 0x8
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0x20
+ beq _081C282C
+ cmp r1, 0x1D
+ beq _081C282C
+ bl GetMonGender
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _081C27FE
+ cmp r0, 0xFE
+ beq _081C2818
+ b _081C282C
+_081C27FE:
+ ldr r1, =gText_MaleSymbol
+ str r0, [sp]
+ movs r0, 0x3
+ str r0, [sp, 0x4]
+ movs r0, 0x13
+ movs r2, 0x39
+ movs r3, 0x11
+ bl sub_81C25A4
+ b _081C282C
+ .pool
+_081C2818:
+ ldr r1, =gText_FemaleSymbol
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x4
+ str r0, [sp, 0x4]
+ movs r0, 0x13
+ movs r2, 0x39
+ movs r3, 0x11
+ bl sub_81C25A4
+_081C282C:
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C27DC
+
+ thumb_func_start sub_81C2838
+sub_81C2838: @ 81C2838
+ push {r4,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ ldr r3, =gUnknown_0861CDD3
+ cmp r1, 0
+ bne _081C284A
+ subs r3, 0x80
+_081C284A:
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0x10
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ adds r1, r3, 0
+ movs r3, 0
+ bl BlitBitmapToWindow
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C2838
+
+ thumb_func_start sub_81C286C
+sub_81C286C: @ 81C286C
+ push {r4-r7,lr}
+ sub sp, 0x8
+ ldr r1, =gText_PkmnInfo
+ movs r5, 0
+ str r5, [sp]
+ movs r6, 0x1
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r2, 0x2
+ movs r3, 0x1
+ bl sub_81C25A4
+ ldr r1, =gText_PkmnSkills
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0x1
+ movs r2, 0x2
+ movs r3, 0x1
+ bl sub_81C25A4
+ ldr r1, =gText_BattleMoves
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0x2
+ movs r2, 0x2
+ movs r3, 0x1
+ bl sub_81C25A4
+ ldr r1, =gText_ContestMoves
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0x3
+ movs r2, 0x2
+ movs r3, 0x1
+ bl sub_81C25A4
+ ldr r7, =gText_Cancel2
+ movs r0, 0x1
+ adds r1, r7, 0
+ movs r2, 0x3E
+ bl GetStringRightAlignXOffset
+ adds r4, r0, 0
+ adds r2, r4, 0
+ subs r2, 0x10
+ cmp r2, 0
+ bge _081C28CC
+ movs r2, 0
+_081C28CC:
+ movs r0, 0x4
+ movs r1, 0
+ bl sub_81C2838
+ lsls r2, r4, 24
+ lsrs r2, 24
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0x4
+ adds r1, r7, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ ldr r7, =gText_Info
+ movs r0, 0x1
+ adds r1, r7, 0
+ movs r2, 0x3E
+ bl GetStringRightAlignXOffset
+ adds r4, r0, 0
+ adds r2, r4, 0
+ subs r2, 0x10
+ cmp r2, 0
+ bge _081C28FE
+ movs r2, 0
+_081C28FE:
+ movs r0, 0x5
+ movs r1, 0
+ bl sub_81C2838
+ lsls r2, r4, 24
+ lsrs r2, 24
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0x5
+ adds r1, r7, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ ldr r7, =gText_Switch
+ movs r0, 0x1
+ adds r1, r7, 0
+ movs r2, 0x3E
+ bl GetStringRightAlignXOffset
+ adds r4, r0, 0
+ adds r2, r4, 0
+ subs r2, 0x10
+ cmp r2, 0
+ bge _081C2930
+ movs r2, 0
+_081C2930:
+ movs r0, 0x6
+ movs r1, 0
+ bl sub_81C2838
+ lsls r2, r4, 24
+ lsrs r2, 24
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0x6
+ adds r1, r7, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ ldr r1, =gText_RentalPkmn
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0x8
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ ldr r1, =gText_TypeSlash
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0x9
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ ldr r4, =gText_HP4
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x2A
+ bl GetStringCenterAlignXOffset
+ adds r0, 0x6
+ lsls r2, r0, 24
+ lsrs r2, 24
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0xA
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ ldr r4, =gText_Attack3
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x2A
+ bl GetStringCenterAlignXOffset
+ adds r0, 0x6
+ lsls r2, r0, 24
+ lsrs r2, 24
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0xA
+ adds r1, r4, 0
+ movs r3, 0x11
+ bl sub_81C25A4
+ ldr r4, =gText_Defense3
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x2A
+ bl GetStringCenterAlignXOffset
+ adds r0, 0x6
+ lsls r2, r0, 24
+ lsrs r2, 24
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0xA
+ adds r1, r4, 0
+ movs r3, 0x21
+ bl sub_81C25A4
+ ldr r4, =gText_SpAtk4
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x24
+ bl GetStringCenterAlignXOffset
+ adds r0, 0x2
+ lsls r2, r0, 24
+ lsrs r2, 24
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0xB
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ ldr r4, =gText_SpDef4
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x24
+ bl GetStringCenterAlignXOffset
+ adds r0, 0x2
+ lsls r2, r0, 24
+ lsrs r2, 24
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0xB
+ adds r1, r4, 0
+ movs r3, 0x11
+ bl sub_81C25A4
+ ldr r4, =gText_Speed2
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x24
+ bl GetStringCenterAlignXOffset
+ adds r0, 0x2
+ lsls r2, r0, 24
+ lsrs r2, 24
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0xB
+ adds r1, r4, 0
+ movs r3, 0x21
+ bl sub_81C25A4
+ ldr r1, =gText_ExpPoints
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0xC
+ movs r2, 0x6
+ movs r3, 0x1
+ bl sub_81C25A4
+ ldr r1, =gText_NextLv
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0xC
+ movs r2, 0x6
+ movs r3, 0x11
+ bl sub_81C25A4
+ ldr r1, =gText_Status
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0xD
+ movs r2, 0x2
+ movs r3, 0x1
+ bl sub_81C25A4
+ ldr r1, =gText_Power
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0xE
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ ldr r1, =gText_Accuracy2
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0xE
+ movs r2, 0
+ movs r3, 0x11
+ bl sub_81C25A4
+ ldr r1, =gText_Appeal
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0xF
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ ldr r1, =gText_Jam
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0xF
+ movs r2, 0
+ movs r3, 0x11
+ bl sub_81C25A4
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C286C
+
+ thumb_func_start sub_81C2AFC
+sub_81C2AFC: @ 81C2AFC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ movs r0, 0
+ bl ClearWindowTilemap
+ movs r0, 0x1
+ bl ClearWindowTilemap
+ movs r0, 0x2
+ bl ClearWindowTilemap
+ movs r0, 0x3
+ bl ClearWindowTilemap
+ cmp r4, 0x1
+ beq _081C2B66
+ cmp r4, 0x1
+ bgt _081C2B2A
+ cmp r4, 0
+ beq _081C2B34
+ b _081C2C06
+_081C2B2A:
+ cmp r5, 0x2
+ beq _081C2B80
+ cmp r5, 0x3
+ beq _081C2BC4
+ b _081C2C06
+_081C2B34:
+ movs r0, 0
+ bl PutWindowTilemap
+ movs r0, 0x4
+ bl PutWindowTilemap
+ bl sub_81A6BF4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081C2B58
+ bl sub_81B9E94
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081C2B5E
+_081C2B58:
+ movs r0, 0x8
+ bl PutWindowTilemap
+_081C2B5E:
+ movs r0, 0x9
+ bl PutWindowTilemap
+ b _081C2C06
+_081C2B66:
+ movs r0, 0x1
+ bl PutWindowTilemap
+ movs r0, 0xA
+ bl PutWindowTilemap
+ movs r0, 0xB
+ bl PutWindowTilemap
+ movs r0, 0xC
+ bl PutWindowTilemap
+ b _081C2C06
+_081C2B80:
+ movs r0, 0x2
+ bl PutWindowTilemap
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ ldr r2, =0x000040bc
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _081C2BBC
+ adds r2, 0x8
+ adds r0, r1, r2
+ ldr r0, [r0]
+ ldr r1, =0x00ffffff
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 11
+ cmp r0, r1
+ beq _081C2C06
+ movs r0, 0xE
+ bl PutWindowTilemap
+ b _081C2C06
+ .pool
+_081C2BBC:
+ movs r0, 0x5
+ bl PutWindowTilemap
+ b _081C2C06
+_081C2BC4:
+ movs r0, 0x3
+ bl PutWindowTilemap
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ ldr r2, =0x000040bc
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _081C2C00
+ adds r2, 0x8
+ adds r0, r1, r2
+ ldr r0, [r0]
+ ldr r1, =0x00ffffff
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 11
+ cmp r0, r1
+ beq _081C2C06
+ movs r0, 0xF
+ bl PutWindowTilemap
+ b _081C2C06
+ .pool
+_081C2C00:
+ movs r0, 0x5
+ bl PutWindowTilemap
+_081C2C06:
+ movs r4, 0
+ ldr r5, =gUnknown_0203CF1C
+_081C2C0A:
+ ldr r0, [r5]
+ ldr r1, =0x000040cb
+ adds r0, r1
+ adds r0, r4
+ ldrb r0, [r0]
+ bl PutWindowTilemap
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _081C2C0A
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C2AFC
+
+ thumb_func_start sub_81C2C38
+sub_81C2C38: @ 81C2C38
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x1
+ beq _081C2C84
+ cmp r0, 0x1
+ bgt _081C2C4E
+ cmp r0, 0
+ beq _081C2C58
+ b _081C2D0E
+_081C2C4E:
+ cmp r1, 0x2
+ beq _081C2C98
+ cmp r1, 0x3
+ beq _081C2CD4
+ b _081C2D0E
+_081C2C58:
+ movs r0, 0x4
+ bl ClearWindowTilemap
+ bl sub_81A6BF4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081C2C76
+ bl sub_81B9E94
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081C2C7C
+_081C2C76:
+ movs r0, 0x8
+ bl ClearWindowTilemap
+_081C2C7C:
+ movs r0, 0x9
+ bl ClearWindowTilemap
+ b _081C2D0E
+_081C2C84:
+ movs r0, 0xA
+ bl ClearWindowTilemap
+ movs r0, 0xB
+ bl ClearWindowTilemap
+ movs r0, 0xC
+ bl ClearWindowTilemap
+ b _081C2D0E
+_081C2C98:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ ldr r2, =0x000040bc
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _081C2CCC
+ adds r2, 0x8
+ adds r0, r1, r2
+ ldr r0, [r0]
+ ldr r1, =0x00ffffff
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 11
+ cmp r0, r1
+ beq _081C2D0E
+ movs r0, 0xE
+ bl ClearWindowTilemap
+ b _081C2D0E
+ .pool
+_081C2CCC:
+ movs r0, 0x5
+ bl ClearWindowTilemap
+ b _081C2D0E
+_081C2CD4:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ ldr r2, =0x000040bc
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _081C2D08
+ adds r2, 0x8
+ adds r0, r1, r2
+ ldr r0, [r0]
+ ldr r1, =0x00ffffff
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 11
+ cmp r0, r1
+ beq _081C2D0E
+ movs r0, 0xF
+ bl ClearWindowTilemap
+ b _081C2D0E
+ .pool
+_081C2D08:
+ movs r0, 0x5
+ bl ClearWindowTilemap
+_081C2D0E:
+ movs r4, 0
+_081C2D10:
+ adds r0, r4, 0
+ bl sub_81C2D68
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _081C2D10
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C2C38
+
+ thumb_func_start sub_81C2D2C
+sub_81C2D2C: @ 81C2D2C
+ push {r4,lr}
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r2, r1, 24
+ ldr r0, =gUnknown_0203CF1C
+ ldr r4, =0x000040cb
+ adds r1, r2, r4
+ ldr r0, [r0]
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _081C2D56
+ lsls r0, r2, 3
+ adds r0, r3, r0
+ bl AddWindow
+ strb r0, [r4]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl FillWindowPixelBuffer
+_081C2D56:
+ ldrb r0, [r4]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81C2D2C
+
+ thumb_func_start sub_81C2D68
+sub_81C2D68: @ 81C2D68
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_0203CF1C
+ ldr r2, =0x000040cb
+ adds r0, r2
+ ldr r1, [r1]
+ adds r4, r1, r0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _081C2D8C
+ bl ClearWindowTilemap
+ ldrb r0, [r4]
+ bl RemoveWindow
+ movs r0, 0xFF
+ strb r0, [r4]
+_081C2D8C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C2D68
+
+ thumb_func_start sub_81C2D9C
+sub_81C2D9C: @ 81C2D9C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+_081C2DA4:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040cb
+ adds r0, r1
+ adds r1, r0, r4
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _081C2DBA
+ movs r1, 0
+ bl FillWindowPixelBuffer
+_081C2DBA:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x7
+ bls _081C2DA4
+ ldr r0, =gUnknown_0861CE54
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C2D9C
+
+ thumb_func_start sub_81C2DE4
+sub_81C2DE4: @ 81C2DE4
+ push {lr}
+ lsls r0, 24
+ ldr r1, =gUnknown_0861CE64
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x10
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C2DE4
+
+ thumb_func_start sub_81C2E00
+sub_81C2E00: @ 81C2E00
+ push {lr}
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r0, 0x74
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081C2E24
+ bl sub_81C335C
+ bl sub_81C33CC
+ bl sub_81C3428
+ bl sub_81C349C
+ b _081C2E3C
+ .pool
+_081C2E24:
+ bl sub_81C2EC4
+ bl sub_81C2F5C
+ bl sub_81C2FD8
+ bl sub_81C302C
+ bl sub_81C307C
+ bl sub_81C3194
+_081C2E3C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C2E00
+
+ thumb_func_start sub_81C2E40
+sub_81C2E40: @ 81C2E40
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bhi _081C2EB8
+ lsls r0, 2
+ ldr r1, =_081C2E70
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081C2E70:
+ .4byte _081C2E8C
+ .4byte _081C2E92
+ .4byte _081C2E98
+ .4byte _081C2E9E
+ .4byte _081C2EA4
+ .4byte _081C2EAA
+ .4byte _081C2EB0
+_081C2E8C:
+ bl sub_81C2EC4
+ b _081C2EB8
+_081C2E92:
+ bl sub_81C2F5C
+ b _081C2EB8
+_081C2E98:
+ bl sub_81C2FD8
+ b _081C2EB8
+_081C2E9E:
+ bl sub_81C302C
+ b _081C2EB8
+_081C2EA4:
+ bl sub_81C307C
+ b _081C2EB8
+_081C2EAA:
+ bl sub_81C3194
+ b _081C2EB8
+_081C2EB0:
+ adds r0, r2, 0
+ bl DestroyTask
+ b _081C2EBE
+_081C2EB8:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_081C2EBE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C2E40
+
+ thumb_func_start sub_81C2EC4
+sub_81C2EC4: @ 81C2EC4
+ push {r4-r6,lr}
+ sub sp, 0x8
+ bl sub_81A6BF4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081C2F54
+ bl sub_81B9E94
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081C2F54
+ ldr r0, =gUnknown_0861CCCC
+ movs r1, 0
+ bl sub_81C2D2C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, =gText_OTSlash
+ movs r6, 0
+ str r6, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0
+ bl GetStringWidth
+ adds r2, r0, 0
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xA2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081C2F40
+ adds r1, 0xA6
+ lsls r2, 24
+ lsrs r2, 24
+ str r6, [sp]
+ movs r0, 0x5
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ b _081C2F54
+ .pool
+_081C2F40:
+ adds r1, 0xA6
+ lsls r2, 24
+ lsrs r2, 24
+ str r6, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+_081C2F54:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C2EC4
+
+ thumb_func_start sub_81C2F5C
+sub_81C2F5C: @ 81C2F5C
+ push {r4,r5,lr}
+ sub sp, 0x8
+ bl sub_81A6BF4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081C2FC0
+ bl sub_81B9E94
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081C2FC0
+ ldr r5, =gStringVar1
+ ldr r1, =gText_UnkCtrlF907F908
+ adds r0, r5, 0
+ bl StringCopy
+ ldr r1, =gUnknown_0203CF1C
+ ldr r1, [r1]
+ adds r1, 0xB8
+ ldrh r1, [r1]
+ movs r2, 0x2
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x1
+ adds r1, r5, 0
+ movs r2, 0x38
+ bl GetStringRightAlignXOffset
+ adds r4, r0, 0
+ ldr r0, =gUnknown_0861CCCC
+ movs r1, 0x1
+ bl sub_81C2D2C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+_081C2FC0:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C2F5C
+
+ thumb_func_start sub_81C2FD8
+sub_81C2FD8: @ 81C2FD8
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x70
+ ldrh r0, [r0]
+ adds r1, 0x78
+ ldrb r1, [r1]
+ bl GetAbilityBySpecies
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_0861CCCC
+ movs r1, 0x2
+ bl sub_81C2D2C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, =gAbilityNames
+ adds r1, r2
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x1
+ str r2, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C2FD8
+
+ thumb_func_start sub_81C302C
+sub_81C302C: @ 81C302C
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x70
+ ldrh r0, [r0]
+ adds r1, 0x78
+ ldrb r1, [r1]
+ bl GetAbilityBySpecies
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_0861CCCC
+ movs r1, 0x2
+ bl sub_81C2D2C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gAbilityDescriptionPointers
+ lsls r4, 2
+ adds r4, r1
+ ldr r1, [r4]
+ movs r2, 0
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ movs r3, 0x11
+ bl sub_81C25A4
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C302C
+
+ thumb_func_start sub_81C307C
+sub_81C307C: @ 81C307C
+ push {r4-r6,lr}
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x70
+ bl sub_81AFBF0
+ ldr r1, =gUnknown_0861CE74
+ movs r0, 0
+ bl sub_81AFC0C
+ ldr r1, =gUnknown_0861CE7B
+ movs r0, 0x1
+ bl sub_81AFC0C
+ bl sub_81C31C0
+ bl sub_81A6BF4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081C30C2
+ bl sub_81B9E94
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081C30C2
+ bl sub_81C3304
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081C30E0
+_081C30C2:
+ ldr r0, =gStringVar4
+ ldr r1, =gText_XNature
+ bl sub_81AFC28
+ b _081C3182
+ .pool
+_081C30E0:
+ movs r0, 0x20
+ bl Alloc
+ adds r6, r0, 0
+ movs r0, 0x20
+ bl Alloc
+ adds r5, r0, 0
+ adds r0, r6, 0
+ bl sub_81C31F0
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0xD4
+ bhi _081C310C
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl sub_8124610
+ movs r0, 0x4
+ adds r1, r5, 0
+ bl sub_81AFC0C
+_081C310C:
+ bl sub_81C3220
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081C3148
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ bne _081C3134
+ ldrb r0, [r4, 0x9]
+ ldr r1, =gText_XNatureHatchedAtYZ
+ cmp r0, 0xD4
+ bls _081C3170
+ ldr r1, =gText_XNatureHatchedSomewhereAt
+ b _081C3170
+ .pool
+_081C3134:
+ ldrb r0, [r4, 0x9]
+ ldr r1, =gText_XNatureMetAtYZ
+ cmp r0, 0xD4
+ bls _081C3170
+ ldr r1, =gText_XNatureMetSomewhereAt
+ b _081C3170
+ .pool
+_081C3148:
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0xFF
+ bne _081C3158
+ ldr r1, =gText_XNatureFatefulEncounter
+ b _081C3170
+ .pool
+_081C3158:
+ cmp r0, 0xFE
+ beq _081C316E
+ bl sub_81C32BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _081C316E
+ ldrb r0, [r4, 0x9]
+ ldr r1, =gText_XNatureProbablyMetAt
+ cmp r0, 0xD4
+ bls _081C3170
+_081C316E:
+ ldr r1, =gText_XNatureObtainedInTrade
+_081C3170:
+ ldr r0, =gStringVar4
+ bl sub_81AFC28
+ adds r0, r6, 0
+ bl Free
+ adds r0, r5, 0
+ bl Free
+_081C3182:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C307C
+
+ thumb_func_start sub_81C3194
+sub_81C3194: @ 81C3194
+ push {lr}
+ sub sp, 0x8
+ ldr r0, =gUnknown_0861CCCC
+ movs r1, 0x3
+ bl sub_81C2D2C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gStringVar4
+ movs r2, 0
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ movs r3, 0x1
+ bl sub_81C25A4
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C3194
+
+ thumb_func_start sub_81C31C0
+sub_81C31C0: @ 81C31C0
+ push {lr}
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =gNatureNamePointers
+ adds r0, 0xA3
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x2
+ bl sub_81AFC0C
+ ldr r1, =gText_EmptyString5
+ movs r0, 0x5
+ bl sub_81AFC0C
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C31C0
+
+ thumb_func_start sub_81C31F0
+sub_81C31F0: @ 81C31F0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r0, 0x7A
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _081C3202
+ movs r1, 0x5
+_081C3202:
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x3
+ adds r1, r4, 0
+ bl sub_81AFC0C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C31F0
+
+ thumb_func_start sub_81C3220
+sub_81C3220: @ 81C3220
+ push {r4-r6,lr}
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r6, r0, 0
+ adds r6, 0x70
+ ldr r1, [r0]
+ ldr r0, =gEnemyParty
+ cmp r1, r0
+ bne _081C326C
+ bl GetMultiplayerId
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gLinkPlayers
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r0, r2, 0x4
+ adds r0, r1, r0
+ ldrh r4, [r0]
+ adds r0, r1, r2
+ ldrb r5, [r0, 0x13]
+ ldr r0, =gStringVar1
+ adds r2, 0x8
+ adds r1, r2
+ bl StringCopy
+ b _081C3282
+ .pool
+_081C326C:
+ bl GetPlayerIDAsU32
+ adds r4, r0, 0
+ ldr r0, =0x0000ffff
+ ands r4, r0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldrb r5, [r1, 0x8]
+ ldr r0, =gStringVar1
+ bl StringCopy
+_081C3282:
+ adds r0, r6, 0
+ adds r0, 0x32
+ ldrb r0, [r0]
+ cmp r5, r0
+ bne _081C32A4
+ ldr r0, [r6, 0x48]
+ ldr r1, =0x0000ffff
+ ands r0, r1
+ cmp r4, r0
+ bne _081C32A4
+ ldr r0, =gStringVar1
+ adds r1, r6, 0
+ adds r1, 0x36
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ beq _081C32B4
+_081C32A4:
+ movs r0, 0
+ b _081C32B6
+ .pool
+_081C32B4:
+ movs r0, 0x1
+_081C32B6:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C3220
+
+ thumb_func_start sub_81C32BC
+sub_81C32BC: @ 81C32BC
+ push {lr}
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r0, 0x70
+ ldrb r0, [r0, 0xB]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _081C32D8
+ movs r0, 0
+ b _081C32DA
+ .pool
+_081C32D8:
+ movs r0, 0x1
+_081C32DA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C32BC
+
+ thumb_func_start sub_81C32E0
+sub_81C32E0: @ 81C32E0
+ push {lr}
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r0, 0x70
+ ldrb r0, [r0, 0xB]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bls _081C32FC
+ movs r0, 0
+ b _081C32FE
+ .pool
+_081C32FC:
+ movs r0, 0x1
+_081C32FE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C32E0
+
+ thumb_func_start sub_81C3304
+sub_81C3304: @ 81C3304
+ push {lr}
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 15
+ ands r0, r1
+ cmp r0, 0
+ beq _081C3354
+ ldr r0, =gMain
+ ldr r1, =0x00000439
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081C3354
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040be
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _081C333A
+ cmp r0, 0x4
+ beq _081C333A
+ cmp r0, 0x5
+ bne _081C3354
+_081C333A:
+ movs r0, 0x1
+ b _081C3356
+ .pool
+_081C3354:
+ movs r0, 0
+_081C3356:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C3304
+
+ thumb_func_start sub_81C335C
+sub_81C335C: @ 81C335C
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x8
+ ldr r0, =gUnknown_0861CCCC
+ movs r1, 0
+ bl sub_81C2D2C
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gText_OTSlash
+ mov r8, r0
+ movs r0, 0x1
+ mov r1, r8
+ movs r2, 0
+ bl GetStringWidth
+ adds r5, r0, 0
+ movs r0, 0
+ mov r9, r0
+ str r0, [sp]
+ movs r6, 0x1
+ str r6, [sp, 0x4]
+ adds r0, r4, 0
+ mov r1, r8
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ ldr r1, =gText_FiveMarks
+ lsls r5, 24
+ lsrs r5, 24
+ mov r0, r9
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ adds r0, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C335C
+
+ thumb_func_start sub_81C33CC
+sub_81C33CC: @ 81C33CC
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r5, =gStringVar1
+ ldr r1, =gText_UnkCtrlF907F908
+ adds r0, r5, 0
+ bl StringCopy
+ ldr r1, =gText_FiveMarks
+ adds r0, r5, 0
+ bl StringAppend
+ movs r0, 0x1
+ adds r1, r5, 0
+ movs r2, 0x38
+ bl GetStringRightAlignXOffset
+ adds r4, r0, 0
+ ldr r0, =gUnknown_0861CCCC
+ movs r1, 0x1
+ bl sub_81C2D2C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C33CC
+
+ thumb_func_start sub_81C3428
+sub_81C3428: @ 81C3428
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0x70
+ adds r0, 0xA5
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _081C3448
+ ldr r4, =gText_EggWillTakeALongTime
+ b _081C346C
+ .pool
+_081C3448:
+ ldrh r0, [r1, 0x30]
+ cmp r0, 0x5
+ bhi _081C3458
+ ldr r4, =gText_EggAboutToHatch
+ b _081C346C
+ .pool
+_081C3458:
+ cmp r0, 0xA
+ bhi _081C3464
+ ldr r4, =gText_EggWillHatchSoon
+ b _081C346C
+ .pool
+_081C3464:
+ ldr r4, =gText_EggWillTakeALongTime
+ cmp r0, 0x28
+ bhi _081C346C
+ ldr r4, =gText_EggWillTakeSomeTime
+_081C346C:
+ ldr r0, =gUnknown_0861CCCC
+ movs r1, 0x2
+ bl sub_81C2D2C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C3428
+
+ thumb_func_start sub_81C349C
+sub_81C349C: @ 81C349C
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x70
+ adds r0, 0xA5
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _081C3500
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0xFF
+ bne _081C34C4
+ ldr r4, =gText_PeculiarEggNicePlace
+ b _081C3502
+ .pool
+_081C34C4:
+ bl sub_81C32BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _081C34D8
+ bl sub_81C3220
+ lsls r0, 24
+ cmp r0, 0
+ bne _081C34E0
+_081C34D8:
+ ldr r4, =gText_PeculiarEggTrade
+ b _081C3502
+ .pool
+_081C34E0:
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0xFD
+ bne _081C3500
+ bl sub_81C32E0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, =gText_EggFromTraveler
+ cmp r0, 0x1
+ bne _081C3502
+ ldr r4, =gText_EggFromHotSprings
+ b _081C3502
+ .pool
+_081C3500:
+ ldr r4, =gText_OddEggFoundByCouple
+_081C3502:
+ ldr r0, =gUnknown_0861CCCC
+ movs r1, 0x3
+ bl sub_81C2D2C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C349C
+
+ thumb_func_start sub_81C3530
+sub_81C3530: @ 81C3530
+ push {lr}
+ bl sub_81C35E4
+ bl sub_81C3690
+ bl sub_81C3710
+ bl sub_81C37D8
+ bl sub_81C3808
+ bl sub_81C3890
+ bl sub_81C38C0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C3530
+
+ thumb_func_start sub_81C3554
+sub_81C3554: @ 81C3554
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ bhi _081C35D6
+ lsls r0, 2
+ ldr r1, =_081C3584
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081C3584:
+ .4byte _081C35A4
+ .4byte _081C35AA
+ .4byte _081C35B0
+ .4byte _081C35B6
+ .4byte _081C35BC
+ .4byte _081C35C2
+ .4byte _081C35C8
+ .4byte _081C35CE
+_081C35A4:
+ bl sub_81C35E4
+ b _081C35D6
+_081C35AA:
+ bl sub_81C3690
+ b _081C35D6
+_081C35B0:
+ bl sub_81C3710
+ b _081C35D6
+_081C35B6:
+ bl sub_81C37D8
+ b _081C35D6
+_081C35BC:
+ bl sub_81C3808
+ b _081C35D6
+_081C35C2:
+ bl sub_81C3890
+ b _081C35D6
+_081C35C8:
+ bl sub_81C38C0
+ b _081C35D6
+_081C35CE:
+ adds r0, r2, 0
+ bl DestroyTask
+ b _081C35DC
+_081C35D6:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_081C35DC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C3554
+
+ thumb_func_start sub_81C35E4
+sub_81C35E4: @ 81C35E4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r4, =gUnknown_0203CF1C
+ ldr r0, [r4]
+ adds r0, 0x9E
+ ldrh r0, [r0]
+ cmp r0, 0xAF
+ bne _081C3628
+ bl sub_81B1250
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081C3628
+ ldr r0, [r4]
+ ldr r1, =0x000040be
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _081C3614
+ cmp r0, 0x4
+ beq _081C3614
+ cmp r0, 0x5
+ bne _081C3628
+_081C3614:
+ movs r0, 0xAF
+ bl ItemId_GetItem
+ adds r5, r0, 0
+ b _081C3650
+ .pool
+_081C3628:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0x9E
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _081C3644
+ ldr r5, =gText_None
+ b _081C3650
+ .pool
+_081C3644:
+ ldrh r0, [r1]
+ ldr r4, =gStringVar1
+ adds r1, r4, 0
+ bl CopyItemName
+ adds r5, r4, 0
+_081C3650:
+ movs r0, 0x1
+ adds r1, r5, 0
+ movs r2, 0x48
+ bl GetStringCenterAlignXOffset
+ adds r4, r0, 0
+ adds r4, 0x6
+ ldr r0, =gUnknown_0861CCEC
+ movs r1, 0
+ bl sub_81C2D2C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C35E4
+
+ thumb_func_start sub_81C3690
+sub_81C3690: @ 81C3690
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0x76
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _081C36B0
+ ldr r5, =gText_None
+ b _081C36C8
+ .pool
+_081C36B0:
+ ldr r0, =gStringVar1
+ ldrb r1, [r1]
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar4
+ ldr r1, =gText_RibbonsVar1
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r5, r4, 0
+_081C36C8:
+ movs r0, 0x1
+ adds r1, r5, 0
+ movs r2, 0x46
+ bl GetStringCenterAlignXOffset
+ adds r4, r0, 0
+ adds r4, 0x6
+ ldr r0, =gUnknown_0861CCEC
+ movs r1, 0x1
+ bl sub_81C2D2C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C3690
+
+ thumb_func_start sub_81C3710
+sub_81C3710: @ 81C3710
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ movs r0, 0x8
+ bl Alloc
+ mov r9, r0
+ movs r0, 0x8
+ bl Alloc
+ mov r8, r0
+ movs r0, 0x8
+ bl Alloc
+ adds r6, r0, 0
+ movs r0, 0x8
+ bl Alloc
+ adds r5, r0, 0
+ ldr r4, =gUnknown_0203CF1C
+ ldr r0, [r4]
+ adds r0, 0x90
+ ldrh r1, [r0]
+ mov r0, r9
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, [r4]
+ adds r0, 0x92
+ ldrh r1, [r0]
+ mov r0, r8
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, [r4]
+ adds r0, 0x94
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0x1
+ movs r3, 0x7
+ bl ConvertIntToDecimalStringN
+ ldr r0, [r4]
+ adds r0, 0x96
+ ldrh r1, [r0]
+ adds r0, r5, 0
+ movs r2, 0x1
+ movs r3, 0x7
+ bl ConvertIntToDecimalStringN
+ bl sub_81AFBF0
+ movs r0, 0
+ mov r1, r9
+ bl sub_81AFC0C
+ movs r0, 0x1
+ mov r1, r8
+ bl sub_81AFC0C
+ movs r0, 0x2
+ adds r1, r6, 0
+ bl sub_81AFC0C
+ movs r0, 0x3
+ adds r1, r5, 0
+ bl sub_81AFC0C
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_0861CE82
+ bl sub_81AFC28
+ mov r0, r9
+ bl Free
+ mov r0, r8
+ bl Free
+ adds r0, r6, 0
+ bl Free
+ adds r0, r5, 0
+ bl Free
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C3710
+
+ thumb_func_start sub_81C37D8
+sub_81C37D8: @ 81C37D8
+ push {lr}
+ sub sp, 0x8
+ ldr r0, =gUnknown_0861CCEC
+ movs r1, 0x2
+ bl sub_81C2D2C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gStringVar4
+ movs r2, 0
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ movs r2, 0x4
+ movs r3, 0x1
+ bl sub_81C25A4
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C37D8
+
+ thumb_func_start sub_81C3808
+sub_81C3808: @ 81C3808
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, =gStringVar1
+ mov r8, r0
+ ldr r4, =gUnknown_0203CF1C
+ ldr r0, [r4]
+ adds r0, 0x98
+ ldrh r1, [r0]
+ mov r0, r8
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r6, =gStringVar2
+ ldr r0, [r4]
+ adds r0, 0x9A
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r5, =gStringVar3
+ ldr r0, [r4]
+ adds r0, 0x9C
+ ldrh r1, [r0]
+ adds r0, r5, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ bl sub_81AFBF0
+ movs r0, 0
+ mov r1, r8
+ bl sub_81AFC0C
+ movs r0, 0x1
+ adds r1, r6, 0
+ bl sub_81AFC0C
+ movs r0, 0x2
+ adds r1, r5, 0
+ bl sub_81AFC0C
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_0861CE8E
+ bl sub_81AFC28
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C3808
+
+ thumb_func_start sub_81C3890
+sub_81C3890: @ 81C3890
+ push {lr}
+ sub sp, 0x8
+ ldr r0, =gUnknown_0861CCEC
+ movs r1, 0x3
+ bl sub_81C2D2C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gStringVar4
+ movs r2, 0
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ movs r2, 0x2
+ movs r3, 0x1
+ bl sub_81C25A4
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C3890
+
+ thumb_func_start sub_81C38C0
+sub_81C38C0: @ 81C38C0
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ adds r5, r0, 0
+ adds r5, 0x70
+ ldr r0, =gUnknown_0861CCEC
+ movs r1, 0x4
+ bl sub_81C2D2C
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r4, =gStringVar1
+ ldr r1, [r5, 0x10]
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x7
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x2A
+ bl GetStringRightAlignXOffset
+ adds r0, 0x2
+ lsls r2, r0, 24
+ lsrs r2, 24
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_81C25A4
+ ldrb r0, [r5, 0x5]
+ cmp r0, 0x63
+ bhi _081C3948
+ ldr r4, =gExperienceTables
+ adds r1, r0, 0
+ adds r1, 0x1
+ lsls r1, 2
+ ldr r3, =gBaseStats
+ ldrh r2, [r5]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrb r2, [r0, 0x13]
+ movs r0, 0xCA
+ lsls r0, 1
+ muls r0, r2
+ adds r1, r0
+ adds r1, r4
+ ldr r1, [r1]
+ ldr r0, [r5, 0x10]
+ subs r1, r0
+ b _081C394A
+ .pool
+_081C3948:
+ movs r1, 0
+_081C394A:
+ ldr r4, =gStringVar1
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x6
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x2A
+ bl GetStringRightAlignXOffset
+ adds r0, 0x2
+ lsls r2, r0, 24
+ lsrs r2, 24
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r3, 0x11
+ bl sub_81C25A4
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C38C0
+
+ thumb_func_start sub_81C3984
+sub_81C3984: @ 81C3984
+ push {r4,lr}
+ movs r0, 0
+ bl sub_81C3B08
+ movs r0, 0x1
+ bl sub_81C3B08
+ movs r0, 0x2
+ bl sub_81C3B08
+ movs r0, 0x3
+ bl sub_81C3B08
+ ldr r4, =gUnknown_0203CF1C
+ ldr r0, [r4]
+ ldr r1, =0x000040bc
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _081C39EA
+ bl sub_81C3F44
+ ldr r1, [r4]
+ ldr r0, =0x000040c6
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ cmp r0, 0x4
+ bne _081C39DC
+ ldr r0, =0x000040c4
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _081C39EA
+ bl sub_81C3E9C
+ b _081C39EA
+ .pool
+_081C39DC:
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r1, 0x84
+ adds r1, r0
+ ldrh r0, [r1]
+ bl sub_81C3E9C
+_081C39EA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C3984
+
+ thumb_func_start sub_81C39F0
+sub_81C39F0: @ 81C39F0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ bhi _081C3AFC
+ lsls r0, 2
+ ldr r1, =_081C3A20
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081C3A20:
+ .4byte _081C3A40
+ .4byte _081C3A48
+ .4byte _081C3A50
+ .4byte _081C3A58
+ .4byte _081C3A60
+ .4byte _081C3A7C
+ .4byte _081C3ABE
+ .4byte _081C3AF4
+_081C3A40:
+ movs r0, 0
+ bl sub_81C3B08
+ b _081C3AFC
+_081C3A48:
+ movs r0, 0x1
+ bl sub_81C3B08
+ b _081C3AFC
+_081C3A50:
+ movs r0, 0x2
+ bl sub_81C3B08
+ b _081C3AFC
+_081C3A58:
+ movs r0, 0x3
+ bl sub_81C3B08
+ b _081C3AFC
+_081C3A60:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040bc
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _081C3AFC
+ bl sub_81C3F44
+ b _081C3AFC
+ .pool
+_081C3A7C:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ ldr r2, =0x000040bc
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _081C3AFC
+ ldr r0, =0x000040c6
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ cmp r0, 0x4
+ bne _081C3AB0
+ ldr r2, =0x000040c4
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ strh r0, [r4, 0x2]
+ b _081C3AFC
+ .pool
+_081C3AB0:
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r1, 0x84
+ adds r1, r0
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2]
+ b _081C3AFC
+_081C3ABE:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r1, [r0]
+ ldr r2, =0x000040bc
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _081C3AFC
+ adds r2, 0x8
+ adds r0, r1, r2
+ ldr r0, [r0]
+ ldr r1, =0x00ffffff
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 11
+ cmp r0, r1
+ beq _081C3AFC
+ ldrh r0, [r4, 0x2]
+ bl sub_81C3E9C
+ b _081C3AFC
+ .pool
+_081C3AF4:
+ adds r0, r2, 0
+ bl DestroyTask
+ b _081C3B02
+_081C3AFC:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_081C3B02:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C39F0
+
+ thumb_func_start sub_81C3B08
+sub_81C3B08: @ 81C3B08
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ mov r10, r0
+ ldr r4, =gUnknown_0861CD14
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_81C2D2C
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81C2D2C
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ lsls r1, r7, 1
+ mov r0, r10
+ adds r0, 0x84
+ adds r0, r1
+ ldrh r5, [r0]
+ cmp r5, 0
+ beq _081C3C00
+ mov r0, r10
+ adds r0, 0xA4
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ adds r2, r7, 0
+ bl CalculatePPWithBonus
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ movs r0, 0xD
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =gMoveNames
+ adds r1, r0
+ lsls r0, r7, 4
+ mov r9, r0
+ mov r3, r9
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ mov r0, r8
+ movs r2, 0
+ bl sub_81C25A4
+ ldr r0, =gStringVar1
+ mov r8, r0
+ mov r5, r10
+ adds r5, 0x8C
+ adds r5, r7
+ ldrb r1, [r5]
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar2
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ bl sub_81AFBF0
+ movs r0, 0
+ mov r1, r8
+ bl sub_81AFC0C
+ movs r0, 0x1
+ adds r1, r4, 0
+ bl sub_81AFC0C
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_0861CE97
+ adds r0, r4, 0
+ bl sub_81AFC28
+ adds r7, r4, 0
+ ldrb r0, [r5]
+ adds r1, r6, 0
+ bl GetCurrentPpToMaxPpState
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ adds r5, 0x9
+ movs r0, 0x1
+ adds r1, r7, 0
+ movs r2, 0x2C
+ bl GetStringRightAlignXOffset
+ mov r4, r9
+ b _081C3C26
+ .pool
+_081C3C00:
+ ldr r1, =gText_OneDash
+ lsls r4, r7, 4
+ adds r3, r4, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ str r5, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ mov r0, r8
+ movs r2, 0
+ bl sub_81C25A4
+ ldr r7, =gText_TwoDashes
+ movs r5, 0xC
+ movs r0, 0x1
+ adds r1, r7, 0
+ movs r2, 0x2C
+ bl GetStringCenterAlignXOffset
+_081C3C26:
+ lsls r2, r0, 24
+ lsrs r2, 24
+ adds r3, r4, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0
+ str r0, [sp]
+ lsls r0, r5, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldr r0, [sp, 0x8]
+ adds r1, r7, 0
+ bl sub_81C25A4
+ 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_81C3B08
+
+ thumb_func_start sub_81C3C5C
+sub_81C3C5C: @ 81C3C5C
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _081C3CFC
+ movs r0, 0x13
+ str r0, [sp]
+ movs r0, 0x20
+ str r0, [sp, 0x4]
+ movs r0, 0xE
+ movs r1, 0
+ movs r2, 0x35
+ movs r3, 0
+ bl FillWindowPixelRect
+ ldr r2, =gBattleMoves
+ lsls r1, r5, 1
+ adds r0, r1, r5
+ lsls r0, 2
+ adds r2, r0, r2
+ ldrb r0, [r2, 0x1]
+ adds r6, r1, 0
+ cmp r0, 0x1
+ bhi _081C3C9C
+ ldr r1, =gText_ThreeDashes
+ b _081C3CAC
+ .pool
+_081C3C9C:
+ ldr r4, =gStringVar1
+ ldrb r1, [r2, 0x1]
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r1, r4, 0
+_081C3CAC:
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0xE
+ movs r2, 0x35
+ movs r3, 0x1
+ bl sub_81C25A4
+ ldr r1, =gBattleMoves
+ adds r0, r6, r5
+ lsls r0, 2
+ adds r1, r0, r1
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0
+ bne _081C3CDC
+ ldr r1, =gText_ThreeDashes
+ b _081C3CEC
+ .pool
+_081C3CDC:
+ ldr r4, =gStringVar1
+ ldrb r1, [r1, 0x3]
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r1, r4, 0
+_081C3CEC:
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0xE
+ movs r2, 0x35
+ movs r3, 0x11
+ bl sub_81C25A4
+_081C3CFC:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C3C5C
+
+ thumb_func_start sub_81C3D08
+sub_81C3D08: @ 81C3D08
+ push {r4,lr}
+ movs r0, 0
+ bl sub_81C3B08
+ movs r0, 0x1
+ bl sub_81C3B08
+ movs r0, 0x2
+ bl sub_81C3B08
+ movs r0, 0x3
+ bl sub_81C3B08
+ ldr r4, =gUnknown_0203CF1C
+ ldr r0, [r4]
+ ldr r1, =0x000040bc
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _081C3D40
+ bl sub_81C3F44
+ ldr r0, [r4]
+ ldr r1, =0x000040c6
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_81C3E2C
+_081C3D40:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C3D08
+
+ thumb_func_start sub_81C3D54
+sub_81C3D54: @ 81C3D54
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bhi _081C3E20
+ lsls r0, 2
+ ldr r1, =_081C3D84
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081C3D84:
+ .4byte _081C3DA0
+ .4byte _081C3DA8
+ .4byte _081C3DB0
+ .4byte _081C3DB8
+ .4byte _081C3DC0
+ .4byte _081C3DDC
+ .4byte _081C3E18
+_081C3DA0:
+ movs r0, 0
+ bl sub_81C3B08
+ b _081C3E20
+_081C3DA8:
+ movs r0, 0x1
+ bl sub_81C3B08
+ b _081C3E20
+_081C3DB0:
+ movs r0, 0x2
+ bl sub_81C3B08
+ b _081C3E20
+_081C3DB8:
+ movs r0, 0x3
+ bl sub_81C3B08
+ b _081C3E20
+_081C3DC0:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r0, [r0]
+ ldr r1, =0x000040bc
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _081C3E20
+ bl sub_81C3F44
+ b _081C3E20
+ .pool
+_081C3DDC:
+ ldr r0, =gUnknown_0203CF1C
+ ldr r2, [r0]
+ ldr r1, =0x000040bc
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _081C3E20
+ adds r1, 0x8
+ adds r0, r2, r1
+ ldr r0, [r0]
+ ldr r1, =0x00ffffff
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 11
+ cmp r0, r1
+ beq _081C3E20
+ ldr r1, =0x000040c6
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ bl sub_81C3E2C
+ b _081C3E20
+ .pool
+_081C3E18:
+ adds r0, r2, 0
+ bl DestroyTask
+ b _081C3E26
+_081C3E20:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_081C3E26:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C3D54
+
thumb_func_start sub_81C3E2C
sub_81C3E2C: @ 81C3E2C
push {r4,lr}
diff --git a/asm/secret_base.s b/asm/secret_base.s
index 69cfff512..d433f5df2 100644
--- a/asm/secret_base.s
+++ b/asm/secret_base.s
@@ -1192,7 +1192,7 @@ _080E9462:
mov r3, r10
ldrb r1, [r3]
lsls r1, 5
- ldr r2, =gDecorations + 0x1c
+ ldr r2, =gUnknown_085A5C24
adds r1, r2
ldr r1, [r1]
ldrh r1, [r1]
diff --git a/asm/trader.s b/asm/trader.s
index 8e0b17905..8c21648fc 100644
--- a/asm/trader.s
+++ b/asm/trader.s
@@ -351,7 +351,7 @@ sub_8133CF4: @ 8133CF4
ldr r5, =gScriptResult
_08133CFA:
adds r0, r4, 0
- bl CountDecorationCategoryN
+ bl sub_8161AD0
lsls r0, 24
cmp r0, 0
beq _08133D10
@@ -395,7 +395,7 @@ sub_8133D2C: @ 8133D2C
cmp r1, r0
beq _08133D72
adds r0, r1, 0
- bl GetFirstEmptyDecorSlot
+ bl sub_81618D0
lsls r0, 24
asrs r0, 24
movs r1, 0x1
@@ -433,15 +433,15 @@ sub_8133DA0: @ 8133DA0
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
- bl IsSelectedDecorInThePC
+ bl sub_81279C4
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08133DFC
ldr r5, =gSpecialVar_0x8006
- ldr r0, =gCurDecorationIndex
+ ldr r0, =gUnknown_0203A172
ldrb r1, [r0]
- ldr r0, =gCurDecorInventoryItems
+ ldr r0, =gUnknown_0203A14C
ldr r0, [r0]
adds r0, r1
ldrb r0, [r0]