summaryrefslogtreecommitdiff
path: root/asm/pokemon_storage_system.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/pokemon_storage_system.s')
-rwxr-xr-xasm/pokemon_storage_system.s22684
1 files changed, 22684 insertions, 0 deletions
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
new file mode 100755
index 000000000..df90540e8
--- /dev/null
+++ b/asm/pokemon_storage_system.s
@@ -0,0 +1,22684 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start CountMonsInBox
+CountMonsInBox: @ 80C6FA0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ movs r5, 0
+_080C6FAA:
+ lsls r1, r4, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ movs r2, 0xB
+ bl GetBoxMonDataFromAnyBox
+ cmp r0, 0
+ beq _080C6FC0
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080C6FC0:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1D
+ bls _080C6FAA
+ lsls r0, r5, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end CountMonsInBox
+
+ thumb_func_start sub_80C6FD4
+sub_80C6FD4: @ 80C6FD4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+_080C6FDC:
+ lsls r1, r4, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ movs r2, 0xB
+ bl GetBoxMonDataFromAnyBox
+ cmp r0, 0
+ bne _080C6FF2
+ lsls r0, r4, 16
+ asrs r0, 16
+ b _080C7000
+_080C6FF2:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1D
+ bls _080C6FDC
+ movs r0, 0x1
+ negs r0, r0
+_080C7000:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C6FD4
+
+ thumb_func_start sub_80C7008
+sub_80C7008: @ 80C7008
+ push {r4-r6,lr}
+ movs r5, 0
+ movs r6, 0
+_080C700E:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080C7036
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080C7036
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080C7036:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _080C700E
+ lsls r0, r6, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80C7008
+
+ thumb_func_start sub_80C7050
+sub_80C7050: @ 80C7050
+ push {r4-r7,lr}
+ lsls r0, 24
+ movs r5, 0
+ movs r6, 0
+ lsrs r7, r0, 24
+_080C705A:
+ cmp r5, r7
+ beq _080C7092
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080C7092
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080C7092
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080C7092
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080C7092:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _080C705A
+ lsls r0, r6, 24
+ lsrs r0, 24
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80C7050
+
+ thumb_func_start sub_80C70AC
+sub_80C70AC: @ 80C70AC
+ push {lr}
+ ldr r0, =gSpecialVar_0x8004
+ ldrb r0, [r0]
+ bl sub_80C7050
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80C70AC
+
+ thumb_func_start sub_80C70C4
+sub_80C70C4: @ 80C70C4
+ push {r4,r5,lr}
+ movs r4, 0
+ movs r5, 0
+_080C70CA:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080C70E2
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080C70E2:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x5
+ bls _080C70CA
+ lsls r0, r5, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80C70C4
+
+ thumb_func_start sub_80C70FC
+sub_80C70FC: @ 80C70FC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r4, r2, 16
+ lsrs r4, 16
+ bl StringCopy
+ adds r1, r0, 0
+ adds r5, r4
+ cmp r1, r5
+ bcs _080C711A
+ movs r0, 0
+_080C7112:
+ strb r0, [r1]
+ adds r1, 0x1
+ cmp r1, r5
+ bcc _080C7112
+_080C711A:
+ movs r0, 0xFF
+ strb r0, [r1]
+ adds r0, r1, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C70FC
+
+ thumb_func_start sub_80C7128
+sub_80C7128: @ 80C7128
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ adds r7, r3, 0
+ ldr r5, [sp, 0x1C]
+ ldr r4, [sp, 0x20]
+ ldr r0, [sp, 0x24]
+ mov r9, r0
+ ldr r0, [sp, 0x28]
+ ldr r3, [sp, 0x2C]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r3, 16
+ lsrs r3, 16
+ mov r0, r9
+ lsls r0, 17
+ mov r9, r0
+ lsrs r2, 11
+ adds r2, r1
+ lsls r2, 1
+ adds r6, r2
+ adds r0, r4, 0
+ muls r0, r3
+ adds r0, r5
+ lsls r0, 1
+ adds r7, r0
+ movs r4, 0
+ cmp r4, r8
+ bcs _080C7198
+ mov r0, r9
+ lsrs r0, 1
+ mov r9, r0
+ lsls r5, r3, 1
+_080C717E:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ mov r3, r9
+ lsrs r2, r3, 16
+ bl CpuSet
+ adds r6, 0x40
+ adds r7, r5
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r8
+ bcc _080C717E
+_080C7198:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C7128
+
+ thumb_func_start sub_80C71A4
+sub_80C71A4: @ 80C71A4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r0, [sp, 0x28]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ lsrs r2, 11
+ adds r2, r1
+ lsls r2, 1
+ adds r4, r2
+ lsls r3, 17
+ lsrs r0, r3, 16
+ str r0, [sp, 0x4]
+ movs r0, 0
+ cmp r0, r10
+ bcs _080C724E
+ movs r6, 0x80
+ lsls r6, 5
+ mov r5, sp
+ ldr r7, =0x040000d4
+ lsrs r3, 17
+ mov r9, r3
+ mov r1, r9
+ movs r2, 0x81
+ lsls r2, 24
+ orrs r1, r2
+ mov r9, r1
+_080C71EA:
+ adds r3, r4, 0
+ ldr r2, [sp, 0x4]
+ movs r1, 0x40
+ adds r1, r4
+ mov r8, r1
+ adds r0, 0x1
+ mov r12, r0
+ cmp r2, r6
+ bhi _080C7214
+ movs r0, 0
+ strh r0, [r5]
+ mov r2, sp
+ str r2, [r7]
+ str r4, [r7, 0x4]
+ mov r0, r9
+ str r0, [r7, 0x8]
+ ldr r0, [r7, 0x8]
+ b _080C7242
+ .pool
+_080C7214:
+ movs r4, 0
+ strh r4, [r5]
+ ldr r1, =0x040000d4
+ mov r0, sp
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ ldr r0, =0x81000800
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r6
+ subs r2, r6
+ cmp r2, r6
+ bhi _080C7214
+ strh r4, [r5]
+ mov r0, sp
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r2, 1
+ movs r2, 0x81
+ lsls r2, 24
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_080C7242:
+ mov r4, r8
+ mov r1, r12
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, r10
+ bcc _080C71EA
+_080C724E:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C71A4
+
+ thumb_func_start c3_0808C39C
+c3_0808C39C: @ 80C7268
+ push {r4-r7,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bls _080C7284
+ b _080C756A
+_080C7284:
+ lsls r0, 2
+ ldr r1, =_080C7298
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080C7298:
+ .4byte _080C72AC
+ .4byte _080C730C
+ .4byte _080C7320
+ .4byte _080C746A
+ .4byte _080C7544
+_080C72AC:
+ ldrb r0, [r5, 0xA]
+ adds r1, r5, 0
+ adds r1, 0x26
+ bl sub_80C75FC
+ bl sub_81973A4
+ movs r0, 0
+ movs r1, 0
+ bl sub_81973C4
+ movs r0, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r1, =gUnknown_085716C0
+ movs r2, 0xA
+ ldrsh r0, [r5, r2]
+ lsls r0, 3
+ adds r1, 0x4
+ 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, 0xFF
+ bl AddTextPrinterParametrized
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldrh r0, [r5, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl CopyWindowToVram
+ b _080C7318
+ .pool
+_080C730C:
+ bl sub_80ABDFC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C7318
+ b _080C756A
+_080C7318:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080C756A
+_080C7320:
+ bl ProcessMenuInput
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r5, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r5, r3]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080C73D0
+ cmp r1, r0
+ bgt _080C7342
+ subs r0, 0x1
+ cmp r1, r0
+ beq _080C7348
+ b _080C73F6
+_080C7342:
+ cmp r1, 0x4
+ beq _080C73D0
+ b _080C73F6
+_080C7348:
+ ldrh r3, [r5, 0xA]
+ strh r3, [r5, 0xE]
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080C7366
+ subs r0, r3, 0x1
+ strh r0, [r5, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080C7366
+ movs r0, 0x4
+ strh r0, [r5, 0xE]
+_080C7366:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080C7382
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ strh r0, [r5, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080C7382
+ movs r0, 0
+ strh r0, [r5, 0xE]
+_080C7382:
+ lsls r0, r3, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0xE]
+ movs r3, 0xE
+ ldrsh r1, [r5, r3]
+ cmp r0, r1
+ bne _080C7392
+ b _080C756A
+_080C7392:
+ movs r4, 0
+ strh r2, [r5, 0xA]
+ movs r0, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r1, =gUnknown_085716C0
+ movs r2, 0xA
+ ldrsh r0, [r5, r2]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r2, [r0]
+ str r4, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ str r0, [sp, 0xC]
+ movs r0, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl AddTextPrinterParametrized
+ b _080C756A
+ .pool
+_080C73D0:
+ ldrh r0, [r5, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl sub_819746C
+ bl ScriptContext2_Disable
+ bl EnableBothScriptContexts
+ ldrh r0, [r5, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl RemoveWindow
+ adds r0, r4, 0
+ bl DestroyTask
+ b _080C756A
+_080C73F6:
+ movs r3, 0xC
+ ldrsh r4, [r5, r3]
+ cmp r4, 0
+ bne _080C7428
+ bl sub_80C70C4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _080C7428
+ movs r0, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r2, =gUnknown_085EBCAD
+ str r4, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ movs r4, 0x3
+ str r4, [sp, 0xC]
+ b _080C7532
+ .pool
+_080C7428:
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080C745C
+ bl sub_80C70C4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bne _080C745C
+ movs r0, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r2, =gUnknown_085EBC89
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r4, 0x3
+ str r4, [sp, 0xC]
+ b _080C7532
+ .pool
+_080C745C:
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ movs r0, 0x4
+ strh r0, [r5, 0x8]
+ b _080C756A
+_080C746A:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r7, 0x3
+ adds r4, r7, 0
+ ands r4, r1
+ cmp r4, 0
+ beq _080C749C
+ movs r0, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r1, =gUnknown_085716C0
+ movs r2, 0xA
+ ldrsh r0, [r5, r2]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r2, [r0]
+ movs r0, 0
+ str r0, [sp]
+ b _080C7528
+ .pool
+_080C749C:
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0
+ beq _080C74E8
+ ldrh r0, [r5, 0xA]
+ subs r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080C74B8
+ movs r0, 0x4
+ strh r0, [r5, 0xA]
+_080C74B8:
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xA]
+ movs r0, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r1, =gUnknown_085716C0
+ movs r3, 0xA
+ ldrsh r0, [r5, r3]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r2, [r0]
+ str r4, [sp]
+ b _080C7528
+ .pool
+_080C74E8:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080C756A
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080C7500
+ strh r6, [r5, 0xA]
+_080C7500:
+ movs r0, 0x1
+ bl MoveMenuCursor
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xA]
+ movs r0, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r1, =gUnknown_085716C0
+ movs r2, 0xA
+ ldrsh r0, [r5, r2]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r2, [r0]
+ str r6, [sp]
+_080C7528:
+ movs r4, 0x2
+ str r4, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ str r7, [sp, 0xC]
+_080C7532:
+ movs r0, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl AddTextPrinterParametrized
+ strh r4, [r5, 0x8]
+ b _080C756A
+ .pool
+_080C7544:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080C756A
+ bl overworld_free_bg_tilemaps
+ ldrb r0, [r5, 0xC]
+ bl sub_80C7D74
+ ldrh r0, [r5, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl RemoveWindow
+ adds r0, r4, 0
+ bl DestroyTask
+_080C756A:
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end c3_0808C39C
+
+ thumb_func_start sub_80C7578
+sub_80C7578: @ 80C7578
+ push {lr}
+ ldr r0, =c3_0808C39C
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C7578
+
+ thumb_func_start mapldr_0808C6D8
+mapldr_0808C6D8: @ 80C75A8
+ push {r4,r5,lr}
+ ldr r0, =gMain
+ ldr r5, [r0, 0xC]
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r4, =c3_0808C39C
+ adds r0, r4, 0
+ movs r1, 0x50
+ 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 r2, 0
+ strh r2, [r1, 0x8]
+ ldr r2, =gUnknown_02039D00
+ ldrb r2, [r2]
+ strh r2, [r1, 0xA]
+ bl _call_via_r4
+ adds r0, r5, 0
+ bl SetVBlankCallback
+ bl pal_fill_black
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end mapldr_0808C6D8
+
+ thumb_func_start sub_80C75FC
+sub_80C75FC: @ 80C75FC
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x8
+ adds r6, r0, 0
+ mov r9, r1
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, =gUnknown_085716E8
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r0, =gUnknown_085716C0
+ mov r8, r0
+ movs r1, 0x5
+ bl GetMaxWidthInMenuTable
+ lsls r0, 24
+ ldr r2, =0x00ffffff
+ ldr r1, [sp]
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp]
+ mov r0, sp
+ bl AddWindow
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, r5, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_81973FC
+ adds r0, r4, 0
+ movs r1, 0x5
+ mov r2, r8
+ bl PrintMenuTable
+ adds r0, r4, 0
+ movs r1, 0x5
+ adds r2, r6, 0
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ mov r0, r9
+ strh r5, [r0]
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C75FC
+
+ thumb_func_start sub_80C7678
+sub_80C7678: @ 80C7678
+ push {lr}
+ bl sub_80CAEA0
+ ldr r1, =gUnknown_02039D00
+ strb r0, [r1]
+ ldr r1, =gUnknown_03005DAC
+ ldr r0, =mapldr_0808C6D8
+ str r0, [r1]
+ ldr r0, =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C7678
+
+ thumb_func_start sub_80C76A4
+sub_80C76A4: @ 80C76A4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ lsls r1, 24
+ lsrs r0, r1, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ adds r4, r3, 0
+ ldr r2, =0x0000ffff
+ cmp r3, 0x1
+ bhi _080C76C6
+ movs r2, 0x1
+ cmp r3, 0x1
+ beq _080C76CA
+_080C76C6:
+ cmp r4, 0x3
+ bne _080C7714
+_080C76CA:
+ lsls r0, 24
+ asrs r0, 24
+ lsls r2, 16
+ asrs r1, r2, 16
+ adds r1, r0
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ adds r6, r2, 0
+ cmp r1, 0
+ blt _080C7760
+ cmp r1, r7
+ bgt _080C7760
+_080C76E2:
+ asrs r4, r0, 16
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ add r0, r8
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _080C770C
+ asrs r0, r6, 16
+ adds r0, r4, r0
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ blt _080C7760
+ cmp r2, r7
+ ble _080C76E2
+ b _080C7760
+ .pool
+_080C770C:
+ adds r0, r4, 0
+ b _080C7764
+_080C7710:
+ adds r0, r5, 0
+ b _080C7764
+_080C7714:
+ lsls r0, 24
+ asrs r0, 24
+ lsls r2, 16
+ asrs r1, r2, 16
+ adds r1, r0
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ adds r6, r2, 0
+ cmp r1, 0
+ blt _080C7760
+ cmp r1, r7
+ bgt _080C7760
+_080C772C:
+ asrs r5, r0, 16
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 4
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _080C7750
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _080C7710
+_080C7750:
+ asrs r0, r6, 16
+ adds r0, r5, r0
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ blt _080C7760
+ cmp r2, r7
+ ble _080C772C
+_080C7760:
+ movs r0, 0x1
+ negs r0, r0
+_080C7764:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C76A4
+
+ thumb_func_start ResetPokemonStorageSystem
+ResetPokemonStorageSystem: @ 80C7770
+ push {r4-r6,lr}
+ movs r0, 0
+ bl sub_80D1D18
+ movs r5, 0
+_080C777A:
+ movs r4, 0
+ lsls r6, r5, 24
+_080C777E:
+ lsls r1, r4, 24
+ lsrs r1, 24
+ lsrs r0, r6, 24
+ bl sub_80D2018
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1D
+ bls _080C777E
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xD
+ bls _080C777A
+ movs r5, 0
+_080C779E:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sav3_get_box_name
+ ldr r1, =gUnknown_085EBCC1
+ bl StringCopy
+ adds r4, r5, 0x1
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ lsls r4, 16
+ lsrs r5, r4, 16
+ cmp r5, 0xD
+ bls _080C779E
+ movs r5, 0
+_080C77C2:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ ands r1, r5
+ bl sub_80D2120
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xD
+ bls _080C77C2
+ bl sub_80D242C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ResetPokemonStorageSystem
+
+ thumb_func_start sub_80C77E8
+sub_80C77E8: @ 80C77E8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x20
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r6, r1, 0
+ lsls r2, 16
+ lsrs r2, 16
+ adds r7, r2, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ ldr r0, =gUnknown_0857173C
+ str r0, [sp, 0x18]
+ ldr r1, =0xffff0000
+ add r4, sp, 0x18
+ ldr r0, [r4, 0x4]
+ ands r0, r1
+ orrs r0, r7
+ str r0, [r4, 0x4]
+ mov r1, sp
+ ldr r0, =gUnknown_0857175C
+ str r0, [sp]
+ movs r0, 0x80
+ lsls r0, 4
+ strh r0, [r1, 0x4]
+ strh r6, [r1, 0x6]
+ ldr r0, =gUnknown_08571F5C
+ str r0, [sp, 0x8]
+ movs r0, 0xC0
+ lsls r0, 1
+ strh r0, [r1, 0xC]
+ adds r0, r6, 0x1
+ strh r0, [r1, 0xE]
+ add r0, sp, 0x10
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ ldr r0, [sp, 0x38]
+ cmp r0, 0
+ beq _080C7846
+ adds r0, r4, 0
+ bl LoadSpritePalette
+_080C7846:
+ mov r0, sp
+ bl LoadSpriteSheets
+ ldr r0, =gUnknown_02039D04
+ str r5, [r0]
+ movs r1, 0x90
+ lsls r1, 2
+ adds r0, r5, r1
+ strh r6, [r0]
+ adds r1, 0x2
+ adds r0, r5, r1
+ strh r7, [r0]
+ adds r1, 0x4
+ adds r0, r5, r1
+ mov r1, r8
+ strb r1, [r0]
+ movs r1, 0x8F
+ lsls r1, 2
+ adds r0, r5, r1
+ ldr r1, [sp, 0x38]
+ str r1, [r0]
+ add sp, 0x20
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C77E8
+
+ thumb_func_start sub_80C7890
+sub_80C7890: @ 80C7890
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_02039D04
+ ldr r1, [r5]
+ movs r2, 0x8F
+ lsls r2, 2
+ adds r0, r1, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080C78AC
+ adds r2, 0x6
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+_080C78AC:
+ ldr r0, [r5]
+ movs r4, 0x90
+ lsls r4, 2
+ adds r0, r4
+ ldrh r0, [r0]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r5]
+ adds r0, r4
+ ldrh r0, [r0]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpriteTilesByTag
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C7890
+
+ thumb_func_start sub_80C78D4
+sub_80C78D4: @ 80C78D4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80C7958
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C78D4
+
+ thumb_func_start sub_80C78E4
+sub_80C78E4: @ 80C78E4
+ push {lr}
+ bl sub_80C7B14
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C78E4
+
+ thumb_func_start sub_80C78F0
+sub_80C78F0: @ 80C78F0
+ push {lr}
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080C790C
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0xC9
+ b _080C7954
+ .pool
+_080C790C:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C792C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_02039D04
+ ldr r0, [r0]
+ movs r1, 0x91
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ b _080C7954
+ .pool
+_080C792C:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080C7940
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80C7BB4
+ b _080C7952
+_080C7940:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080C7952
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80C7B80
+_080C7952:
+ movs r0, 0xC8
+_080C7954:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C78F0
+
+ thumb_func_start sub_80C7958
+sub_80C7958: @ 80C7958
+ push {r4-r6,lr}
+ sub sp, 0x3C
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0
+ movs r1, 0
+ str r0, [sp, 0x34]
+ str r1, [sp, 0x38]
+ movs r1, 0xC0
+ lsls r1, 24
+ ldr r0, [sp, 0x34]
+ orrs r0, r1
+ str r0, [sp, 0x34]
+ ldr r1, =0xffff0fff
+ add r4, sp, 0x34
+ ldr r0, [r4, 0x4]
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 5
+ orrs r0, r1
+ str r0, [r4, 0x4]
+ add r1, sp, 0x1C
+ movs r2, 0
+ strh r2, [r1]
+ mov r0, sp
+ adds r0, 0x1E
+ strh r2, [r0]
+ str r4, [sp, 0x20]
+ ldr r0, =gDummySpriteAnimTable
+ str r0, [sp, 0x24]
+ str r2, [sp, 0x28]
+ ldr r0, =gDummySpriteAffineAnimTable
+ str r0, [sp, 0x2C]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [sp, 0x30]
+ add r0, sp, 0x4
+ movs r2, 0x18
+ bl memcpy
+ ldr r6, =gUnknown_02039D04
+ ldr r0, [r6]
+ movs r1, 0x91
+ lsls r1, 2
+ adds r0, r1
+ strb r5, [r0]
+ add r2, sp, 0x4
+ ldr r1, [r6]
+ movs r5, 0x90
+ lsls r5, 2
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ strh r0, [r2]
+ ldr r3, =0x00000242
+ adds r1, r3
+ ldrh r0, [r1]
+ strh r0, [r2, 0x2]
+ adds r0, r2, 0
+ movs r1, 0xA0
+ movs r2, 0x60
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ str r0, [r3]
+ ldrb r2, [r4, 0x1]
+ movs r1, 0x3F
+ adds r0, r1, 0
+ ands r0, r2
+ movs r2, 0x80
+ orrs r0, r2
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x3]
+ ands r1, r0
+ movs r0, 0x40
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+ add r1, sp, 0x4
+ adds r3, r5
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r1]
+ ldr r0, =gUnknown_08571710
+ str r0, [sp, 0xC]
+ movs r4, 0
+_080C7A10:
+ ldr r0, [r6]
+ ldr r1, =0x00000246
+ adds r0, r1
+ ldrb r3, [r0]
+ add r0, sp, 0x4
+ movs r1, 0x7C
+ movs r2, 0x50
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r2, [r6]
+ lsls r3, r4, 2
+ adds r2, 0x4
+ adds r2, r3
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r1, r0, r1
+ str r1, [r2]
+ movs r5, 0
+ movs r0, 0x2
+ ands r0, r4
+ cmp r0, 0
+ beq _080C7A4A
+ movs r0, 0xC4
+ strh r0, [r1, 0x20]
+ movs r5, 0x2
+_080C7A4A:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080C7A6E
+ ldr r1, [r6]
+ adds r1, 0x4
+ adds r1, r3
+ ldr r2, [r1]
+ movs r0, 0x70
+ strh r0, [r2, 0x22]
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2, 0x3]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080C7A6E:
+ ldr r0, [r6]
+ adds r0, 0x4
+ adds r0, r3
+ ldr r0, [r0]
+ lsls r1, r5, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080C7A10
+ movs r4, 0
+ ldr r5, =gUnknown_02039D04
+_080C7A8C:
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 19
+ movs r3, 0xF8
+ lsls r3, 15
+ adds r0, r3
+ lsrs r0, 16
+ lsls r2, r4, 24
+ lsrs r2, 24
+ ldr r1, [r5]
+ ldr r3, =0x00000246
+ adds r1, r3
+ ldrb r1, [r1]
+ str r1, [sp]
+ movs r1, 0x58
+ movs r3, 0
+ bl sub_80CD2E8
+ adds r2, r0, 0
+ ldr r0, [r5]
+ lsls r1, r4, 2
+ adds r0, 0x20
+ adds r0, r1
+ str r2, [r0]
+ cmp r2, 0
+ beq _080C7AD4
+ movs r1, 0x1
+ cmp r4, 0
+ bne _080C7ACC
+ movs r3, 0x1
+ negs r3, r3
+ adds r1, r3, 0
+_080C7ACC:
+ strh r1, [r2, 0x2E]
+ ldr r1, [r0]
+ ldr r0, =sub_80C7CF4
+ str r0, [r1, 0x1C]
+_080C7AD4:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080C7A8C
+ bl sub_80C7BE4
+ add sp, 0x3C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C7958
+
+ thumb_func_start sub_80C7B14
+sub_80C7B14: @ 80C7B14
+ push {r4-r6,lr}
+ ldr r4, =gUnknown_02039D04
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080C7B2A
+ bl DestroySprite
+ ldr r1, [r4]
+ movs r0, 0
+ str r0, [r1]
+_080C7B2A:
+ movs r5, 0
+ adds r6, r4, 0
+_080C7B2E:
+ ldr r0, [r6]
+ lsls r4, r5, 2
+ adds r0, 0x4
+ adds r0, r4
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080C7B4A
+ bl DestroySprite
+ ldr r0, [r6]
+ adds r0, 0x4
+ adds r0, r4
+ movs r1, 0
+ str r1, [r0]
+_080C7B4A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080C7B2E
+ movs r5, 0
+_080C7B56:
+ ldr r0, =gUnknown_02039D04
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ adds r0, 0x20
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080C7B6A
+ bl DestroySprite
+_080C7B6A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080C7B56
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C7B14
+
+ thumb_func_start sub_80C7B80
+sub_80C7B80: @ 80C7B80
+ push {lr}
+ ldr r2, =gUnknown_02039D04
+ ldr r1, [r2]
+ movs r0, 0x91
+ lsls r0, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xD
+ bls _080C7BA6
+ ldr r0, [r2]
+ movs r1, 0x91
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_080C7BA6:
+ bl sub_80C7BE4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C7B80
+
+ thumb_func_start sub_80C7BB4
+sub_80C7BB4: @ 80C7BB4
+ push {lr}
+ ldr r0, =gUnknown_02039D04
+ ldr r2, [r0]
+ movs r1, 0x91
+ lsls r1, 2
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C7BD0
+ subs r1, r0, 0x1
+ b _080C7BD2
+ .pool
+_080C7BD0:
+ movs r1, 0xD
+_080C7BD2:
+ movs r3, 0x91
+ lsls r3, 2
+ adds r0, r2, r3
+ strb r1, [r0]
+ bl sub_80C7BE4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C7BB4
+
+ thumb_func_start sub_80C7BE4
+sub_80C7BE4: @ 80C7BE4
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x24
+ ldr r0, =gUnknown_02039D04
+ mov r9, r0
+ ldr r0, [r0]
+ movs r4, 0x91
+ lsls r4, 2
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sav3_get_box_name
+ mov r10, r0
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl CountMonsInBox
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ add r4, sp, 0x1C
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ movs r0, 0x8
+ strb r0, [r4, 0x3]
+ movs r0, 0x4
+ strb r0, [r4, 0x4]
+ adds r0, r4, 0
+ bl AddWindow
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x44
+ bl FillWindowPixelBuffer
+ movs r0, 0x1
+ mov r1, r10
+ movs r2, 0x40
+ bl GetStringCenterAlignXOffset
+ lsls r2, r0, 24
+ lsrs r2, 24
+ ldr r0, =gUnknown_08571734
+ mov r8, r0
+ str r0, [sp]
+ movs r6, 0x1
+ negs r6, r6
+ str r6, [sp, 0x4]
+ mov r1, r10
+ str r1, [sp, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r3, 0x1
+ bl box_print
+ add r0, sp, 0xC
+ adds r1, r5, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r1, =gUnknown_08571737
+ add r0, sp, 0xC
+ bl StringAppend
+ movs r0, 0x1
+ add r1, sp, 0xC
+ movs r2, 0x40
+ bl GetStringCenterAlignXOffset
+ lsls r2, r0, 24
+ lsrs r2, 24
+ mov r0, r8
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ add r1, sp, 0xC
+ str r1, [sp, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r3, 0x11
+ bl box_print
+ adds r0, r4, 0
+ movs r1, 0x7
+ bl GetWindowAttribute
+ adds r5, r0, 0
+ mov r1, r9
+ ldr r0, [r1]
+ movs r1, 0x90
+ lsls r1, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ bl GetSpriteTileStartByTag
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 11
+ ldr r0, =0x06010100
+ adds r1, r0
+ ldr r2, =0x04000100
+ adds r0, r5, 0
+ bl CpuSet
+ adds r0, r4, 0
+ bl RemoveWindow
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C7BE4
+
+ thumb_func_start sub_80C7CF4
+sub_80C7CF4: @ 80C7CF4
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080C7D24
+ strh r2, [r1, 0x30]
+ ldrh r0, [r1, 0x2E]
+ ldrh r3, [r1, 0x24]
+ adds r0, r3
+ strh r0, [r1, 0x24]
+ ldrh r0, [r1, 0x32]
+ adds r0, 0x1
+ strh r0, [r1, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080C7D24
+ strh r2, [r1, 0x32]
+ strh r2, [r1, 0x24]
+_080C7D24:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C7CF4
+
+ thumb_func_start sub_80C7D28
+sub_80C7D28: @ 80C7D28
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl sub_80D2AA4
+ bl TransferPlttBuffer
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ movs r1, 0xB3
+ lsls r1, 2
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x18
+ bl SetGpuReg
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C7D28
+
+ thumb_func_start c2_Box
+c2_Box: @ 80C7D54
+ push {lr}
+ bl RunTasks
+ bl do_scheduled_bg_tilemap_copies_to_vram
+ bl sub_80CA028
+ bl sub_80CAA14
+ bl AnimateSprites
+ bl BuildOamBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end c2_Box
+
+ thumb_func_start sub_80C7D74
+sub_80C7D74: @ 80C7D74
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl ResetTasks
+ ldr r0, =gUnknown_02039D0D
+ strb r5, [r0]
+ ldr r4, =gUnknown_02039D08
+ ldr r0, =0x000062c4
+ bl Alloc
+ str r0, [r4]
+ cmp r0, 0
+ bne _080C7DA8
+ ldr r0, =sub_80C7678
+ bl SetMainCallback2
+ b _080C7DD4
+ .pool
+_080C7DA8:
+ movs r2, 0
+ strb r5, [r0, 0x1]
+ ldr r0, [r4]
+ strb r2, [r0, 0x3]
+ ldr r0, =gUnknown_02039D12
+ movs r1, 0
+ strh r2, [r0]
+ ldr r0, [r4]
+ strb r1, [r0]
+ ldr r0, =task_box_related_3
+ movs r1, 0x3
+ bl CreateTask
+ ldr r1, [r4]
+ strb r0, [r1, 0x4]
+ bl StorageGetCurrentBox
+ ldr r1, =gUnknown_02039D10
+ strb r0, [r1]
+ ldr r0, =c2_Box
+ bl SetMainCallback2
+_080C7DD4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C7D74
+
+ thumb_func_start c2_808CE60
+c2_808CE60: @ 80C7DEC
+ push {r4,lr}
+ bl ResetTasks
+ ldr r4, =gUnknown_02039D08
+ ldr r0, =0x000062c4
+ bl Alloc
+ adds r1, r0, 0
+ str r1, [r4]
+ cmp r1, 0
+ bne _080C7E18
+ ldr r0, =sub_80C7678
+ bl SetMainCallback2
+ b _080C7E3C
+ .pool
+_080C7E18:
+ ldr r0, =gUnknown_02039D0D
+ ldrb r0, [r0]
+ movs r2, 0
+ strb r0, [r1, 0x1]
+ ldr r1, [r4]
+ movs r0, 0x1
+ strb r0, [r1, 0x3]
+ ldr r0, [r4]
+ strb r2, [r0]
+ ldr r0, =task_box_related_3
+ movs r1, 0x3
+ bl CreateTask
+ ldr r1, [r4]
+ strb r0, [r1, 0x4]
+ ldr r0, =c2_Box
+ bl SetMainCallback2
+_080C7E3C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end c2_808CE60
+
+ thumb_func_start sub_80C7E50
+sub_80C7E50: @ 80C7E50
+ push {lr}
+ movs r0, 0x10
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x12
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x14
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x16
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x18
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1A
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1C
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1E
+ movs r1, 0
+ bl SetGpuReg
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C7E50
+
+ thumb_func_start sub_80C7E98
+sub_80C7E98: @ 80C7E98
+ push {r4,lr}
+ sub sp, 0x4
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl FreeSpriteTileRanges
+ bl FreeAllSpritePalettes
+ bl ClearDma3Requests
+ ldr r1, =gReservedSpriteTileCount
+ movs r2, 0xA0
+ lsls r2, 2
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, =gUnknown_02039D08
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x8
+ adds r1, 0x10
+ movs r2, 0x8
+ bl sub_80D2A90
+ ldr r1, =gKeyRepeatStartDelay
+ movs r0, 0x14
+ strh r0, [r1]
+ bl clear_scheduled_bg_copies_to_vram
+ movs r0, 0x3
+ bl sub_80D259C
+ ldr r2, =gUnknown_0857239C
+ movs r0, 0x4
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x1
+ movs r3, 0x8
+ bl sub_80D2644
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_80D2770
+ ldr r0, [r4]
+ ldr r1, =0x000002c7
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C7E98
+
+ thumb_func_start sub_80C7F1C
+sub_80C7F1C: @ 80C7F1C
+ push {lr}
+ bl sub_80CDC0C
+ ldr r2, =gUnknown_02039D0C
+ movs r1, 0
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _080C7F32
+ movs r1, 0x1
+_080C7F32:
+ strb r1, [r2]
+ ldr r1, =gUnknown_02039D0E
+ movs r0, 0
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C7F1C
+
+ thumb_func_start sub_80C7F4C
+sub_80C7F4C: @ 80C7F4C
+ push {lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x3
+ bne _080C7F6A
+ movs r1, 0xFC
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, =0x00000b07
+ movs r0, 0x52
+ bl SetGpuReg
+_080C7F6A:
+ movs r1, 0xFA
+ lsls r1, 5
+ movs r0, 0
+ bl SetGpuReg
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C7F4C
+
+ thumb_func_start add_to_c3_somehow
+add_to_c3_somehow: @ 80C7F80
+ push {r4,lr}
+ ldr r4, =gTasks
+ ldr r1, =gUnknown_02039D08
+ ldr r3, [r1]
+ ldrb r2, [r3, 0x4]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r4
+ str r0, [r1]
+ movs r0, 0
+ strb r0, [r3]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end add_to_c3_somehow
+
+ thumb_func_start task_box_related_3
+task_box_related_3: @ 80C7FA8
+ push {lr}
+ sub sp, 0x4
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ bls _080C7FB8
+ b _080C81A2
+_080C7FB8:
+ lsls r0, 2
+ ldr r1, =_080C7FCC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080C7FCC:
+ .4byte _080C7FF8
+ .4byte _080C8050
+ .4byte _080C805E
+ .4byte _080C808C
+ .4byte _080C80A8
+ .4byte _080C80C6
+ .4byte _080C80E6
+ .4byte _080C80EC
+ .4byte _080C80F2
+ .4byte _080C8100
+ .4byte _080C814A
+_080C7FF8:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ movs r1, 0
+ bl SetGpuReg
+ bl sub_80C7E98
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0
+ beq _080C8046
+ ldr r0, =gUnknown_02039D0F
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080C8036
+ cmp r0, 0x1
+ bgt _080C8030
+ cmp r0, 0
+ beq _080C803C
+ b _080C8046
+ .pool
+_080C8030:
+ cmp r0, 0x2
+ beq _080C8042
+ b _080C8046
+_080C8036:
+ bl sub_80CE790
+ b _080C8046
+_080C803C:
+ bl sub_80CE8E4
+ b _080C8046
+_080C8042:
+ bl sub_80C9F6C
+_080C8046:
+ bl sub_80CA044
+ bl sub_80CA0C8
+ b _080C8198
+_080C8050:
+ bl sub_80CA0A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C805C
+ b _080C8198
+_080C805C:
+ b _080C80D0
+_080C805E:
+ movs r0, 0
+ bl PutWindowTilemap
+ movs r0, 0x1
+ bl ClearWindowTilemap
+ movs r0, 0
+ str r0, [sp]
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r2, =0x05000080
+ mov r0, sp
+ bl CpuSet
+ movs r0, 0x1
+ movs r1, 0xB
+ movs r2, 0xE0
+ bl sub_809882C
+ b _080C8198
+ .pool
+_080C808C:
+ bl sub_80C7E50
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0
+ beq _080C809C
+ b _080C8198
+_080C809C:
+ bl sub_80C7F1C
+ b _080C8198
+ .pool
+_080C80A8:
+ bl sub_80CAF04
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0
+ bne _080C80C0
+ bl sub_80CD36C
+ b _080C8198
+ .pool
+_080C80C0:
+ bl sub_80CD3EC
+ b _080C8198
+_080C80C6:
+ bl sub_80D0164
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C80DC
+_080C80D0:
+ ldr r0, =sub_80C9E50
+ bl add_to_c3_somehow
+ b _080C81A2
+ .pool
+_080C80DC:
+ bl sub_80C9FEC
+ bl sub_80CAC1C
+ b _080C8198
+_080C80E6:
+ bl sub_80CA0D8
+ b _080C8198
+_080C80EC:
+ bl sub_80CA704
+ b _080C8198
+_080C80F2:
+ bl StorageGetCurrentBox
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80CC32C
+ b _080C8198
+_080C8100:
+ bl sub_80CC35C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C81A2
+ ldr r0, =gUnknown_02039D08
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x3
+ beq _080C8140
+ ldr r1, =0x00000da4
+ adds r0, r2, r1
+ movs r1, 0xD
+ strh r1, [r0]
+ ldr r1, =0x00000da6
+ adds r2, r1
+ ldr r1, =0x0000dace
+ strh r1, [r2]
+ bl sub_811F90C
+ bl sub_811FA90
+ b _080C8198
+ .pool
+_080C8140:
+ bl sub_80D0C60
+ bl sub_80CAEAC
+ b _080C8198
+_080C814A:
+ bl sub_80C7F4C
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0
+ bne _080C8174
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ ldr r0, =sub_80C81AC
+ bl add_to_c3_somehow
+ b _080C8186
+ .pool
+_080C8174:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ ldr r0, =box_related_2
+ bl add_to_c3_somehow
+_080C8186:
+ ldr r0, =sub_80C7D28
+ bl SetVBlankCallback
+ b _080C81A2
+ .pool
+_080C8198:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080C81A2:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task_box_related_3
+
+ thumb_func_start sub_80C81AC
+sub_80C81AC: @ 80C81AC
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C81C4
+ cmp r0, 0x1
+ beq _080C81DE
+ b _080C81EE
+ .pool
+_080C81C4:
+ movs r0, 0x2
+ bl PlaySE
+ movs r0, 0x14
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80F9BCC
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C81EE
+_080C81DE:
+ bl sub_80F9C1C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C81EE
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+_080C81EE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C81AC
+
+ thumb_func_start box_related_2
+box_related_2: @ 80C81F8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080C8230
+ cmp r0, 0x1
+ bgt _080C8214
+ cmp r0, 0
+ beq _080C821E
+ b _080C82A0
+ .pool
+_080C8214:
+ cmp r0, 0x2
+ beq _080C8268
+ cmp r0, 0x3
+ beq _080C8290
+ b _080C82A0
+_080C821E:
+ movs r1, 0x1
+ negs r1, r1
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _080C8282
+_080C8230:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C82A0
+ ldr r0, =gUnknown_02039D0F
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _080C825C
+ ldr r0, =gScriptItemId
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080C825C
+ movs r0, 0x1C
+ bl sub_80CAC58
+ b _080C8282
+ .pool
+_080C825C:
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+ b _080C82A0
+ .pool
+_080C8268:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C82A0
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080C82A0
+ bl sub_80CADC4
+_080C8282:
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C82A0
+ .pool
+_080C8290:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C82A0
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+_080C82A0:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end box_related_2
+
+ thumb_func_start task_pokemon_box_related
+task_pokemon_box_related: @ 80C82AC
+ push {r4,r5,lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0xB
+ bls _080C82BA
+ b _080C879E
+_080C82BA:
+ lsls r0, 2
+ ldr r1, =_080C82CC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080C82CC:
+ .4byte _080C82FC
+ .4byte _080C861C
+ .4byte _080C865C
+ .4byte _080C86B4
+ .4byte _080C86D8
+ .4byte _080C86E2
+ .4byte _080C86FC
+ .4byte _080C871C
+ .4byte _080C8722
+ .4byte _080C8738
+ .4byte _080C8764
+ .4byte _080C878C
+_080C82FC:
+ bl sub_80CF9EC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r0, 0x19
+ bls _080C830C
+ b _080C879E
+_080C830C:
+ lsls r0, 2
+ ldr r1, =_080C831C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080C831C:
+ .4byte _080C8384
+ .4byte _080C879E
+ .4byte _080C879E
+ .4byte _080C8414
+ .4byte _080C8398
+ .4byte _080C83CC
+ .4byte _080C842C
+ .4byte _080C8440
+ .4byte _080C844C
+ .4byte _080C8484
+ .4byte _080C84C8
+ .4byte _080C854C
+ .4byte _080C850C
+ .4byte _080C851E
+ .4byte _080C8560
+ .4byte _080C8574
+ .4byte _080C8588
+ .4byte _080C859C
+ .4byte _080C8420
+ .4byte _080C85B0
+ .4byte _080C85D0
+ .4byte _080C85BA
+ .4byte _080C85DA
+ .4byte _080C8614
+ .4byte _080C85DE
+ .4byte _080C85F8
+_080C8384:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C879E
+ .pool
+_080C8398:
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _080C83BC
+ movs r0, 0x10
+ bl sub_80CAC58
+ ldr r1, [r4]
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080C879E
+ .pool
+_080C83BC:
+ bl sub_80CDC0C
+ ldr r0, =sub_80C87A8
+ bl add_to_c3_somehow
+ b _080C879E
+ .pool
+_080C83CC:
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x2
+ bne _080C8400
+ bl sub_80CEAD0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8406
+ ldr r0, [r4]
+ ldr r1, =0x00000ce6
+ adds r0, r1
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C83F4
+ b _080C84E6
+_080C83F4:
+ b _080C8406
+ .pool
+_080C8400:
+ cmp r0, 0x3
+ beq _080C8406
+ b _080C879E
+_080C8406:
+ ldr r0, =sub_80C87E8
+ bl add_to_c3_somehow
+ b _080C879E
+ .pool
+_080C8414:
+ ldr r0, =sub_80C9BE8
+ bl add_to_c3_somehow
+ b _080C879E
+ .pool
+_080C8420:
+ ldr r0, =sub_80C9D1C
+ bl add_to_c3_somehow
+ b _080C879E
+ .pool
+_080C842C:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =box_related
+ bl add_to_c3_somehow
+ b _080C879E
+ .pool
+_080C8440:
+ ldr r0, =sub_80C8864
+ bl add_to_c3_somehow
+ b _080C879E
+ .pool
+_080C844C:
+ movs r0, 0x5
+ bl PlaySE
+ bl StorageGetCurrentBox
+ ldr r4, =gUnknown_02039D08
+ ldr r1, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ ldr r2, =0x000002ca
+ adds r1, r2
+ strh r0, [r1]
+ cmp r0, 0xD
+ ble _080C846E
+ movs r0, 0
+ strh r0, [r1]
+_080C846E:
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x3
+ beq _080C84BC
+ adds r0, r1, r2
+ b _080C8776
+ .pool
+_080C8484:
+ movs r0, 0x5
+ bl PlaySE
+ bl StorageGetCurrentBox
+ ldr r4, =gUnknown_02039D08
+ ldr r1, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ ldr r2, =0x000002ca
+ adds r1, r2
+ strh r0, [r1]
+ cmp r0, 0
+ bge _080C84A6
+ movs r0, 0xD
+ strh r0, [r1]
+_080C84A6:
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x3
+ beq _080C84BC
+ adds r0, r1, r2
+ b _080C8776
+ .pool
+_080C84BC:
+ bl sub_80CFEA8
+ ldr r1, [r4]
+ movs r0, 0xA
+ strb r0, [r1]
+ b _080C879E
+_080C84C8:
+ bl sub_80CEA30
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8528
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldr r1, =0x00000ce6
+ adds r0, r1
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C84F8
+_080C84E6:
+ ldr r1, [r4]
+ movs r0, 0x5
+ strb r0, [r1]
+ b _080C879E
+ .pool
+_080C84F8:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =sub_80C8D78
+ bl add_to_c3_somehow
+ b _080C879E
+ .pool
+_080C850C:
+ bl sub_80CEA30
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8528
+ movs r0, 0x5
+ bl PlaySE
+ b _080C872C
+_080C851E:
+ bl sub_80CEA6C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8538
+_080C8528:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x4
+ strb r0, [r1]
+ b _080C879E
+ .pool
+_080C8538:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =c3_0808DC50
+ bl add_to_c3_somehow
+ b _080C879E
+ .pool
+_080C854C:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =sub_80C8C90
+ bl add_to_c3_somehow
+ b _080C879E
+ .pool
+_080C8560:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =sub_80C8BEC
+ bl add_to_c3_somehow
+ b _080C879E
+ .pool
+_080C8574:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =sub_80C9128
+ bl add_to_c3_somehow
+ b _080C879E
+ .pool
+_080C8588:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =sub_80C91DC
+ bl add_to_c3_somehow
+ b _080C879E
+ .pool
+_080C859C:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =sub_80C93B0
+ bl add_to_c3_somehow
+ b _080C879E
+ .pool
+_080C85B0:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ b _080C8600
+_080C85BA:
+ movs r0, 0x1
+ bl sub_80D01D0
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x8
+ strb r0, [r1]
+ b _080C879E
+ .pool
+_080C85D0:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x2
+ b _080C85E6
+_080C85DA:
+ movs r0, 0x3
+ b _080C8600
+_080C85DE:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x4
+_080C85E6:
+ bl sub_80D01D0
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x9
+ strb r0, [r1]
+ b _080C879E
+ .pool
+_080C85F8:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x5
+_080C8600:
+ bl sub_80D01D0
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x7
+ strb r0, [r1]
+ b _080C879E
+ .pool
+_080C8614:
+ movs r0, 0x20
+ bl PlaySE
+ b _080C879E
+_080C861C:
+ bl sub_80CD554
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8628
+ b _080C879E
+_080C8628:
+ bl sub_80CEAF8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8638
+ bl sub_80CA9C0
+ b _080C863C
+_080C8638:
+ bl sub_80CA9EC
+_080C863C:
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldr r1, =0x00000cea
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C864E
+ bl BoxSetMosaic
+_080C864E:
+ ldr r1, [r4]
+ b _080C86C8
+ .pool
+_080C865C:
+ bl sub_80CC54C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8668
+ b _080C879E
+_080C8668:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x000002ca
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80D1D18
+ ldr r0, =gUnknown_02039D0C
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C8690
+ bl sub_80CEAD0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8690
+ bl sub_80CE00C
+ bl BoxSetMosaic
+_080C8690:
+ ldr r4, =gUnknown_02039D08
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x3
+ bne _080C86C8
+ bl sub_80CFECC
+ ldr r1, [r4]
+ movs r0, 0xB
+ strb r0, [r1]
+ b _080C879E
+ .pool
+_080C86B4:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _080C879E
+ bl sub_80CADC4
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+_080C86C8:
+ movs r0, 0
+ strb r0, [r1]
+ b _080C879E
+ .pool
+_080C86D8:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0xD
+ b _080C86EA
+_080C86E2:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0x16
+_080C86EA:
+ bl sub_80CAC58
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x6
+ strb r0, [r1]
+ b _080C879E
+ .pool
+_080C86FC:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _080C879E
+ bl sub_80CADC4
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+ b _080C879E
+ .pool
+_080C871C:
+ bl sub_80D01E4
+ b _080C8790
+_080C8722:
+ bl sub_80D01E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C879E
+_080C872C:
+ ldr r0, =sub_80C8B90
+ bl add_to_c3_somehow
+ b _080C879E
+ .pool
+_080C8738:
+ bl sub_80D01E4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080C879E
+ ldr r5, =gUnknown_02039D08
+ ldr r0, [r5]
+ ldr r1, =0x00000cea
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C8756
+ bl BoxSetMosaic
+_080C8756:
+ ldr r0, [r5]
+ strb r4, [r0]
+ b _080C879E
+ .pool
+_080C8764:
+ bl sub_80D1218
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C879E
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldr r1, =0x000002ca
+ adds r0, r1
+_080C8776:
+ ldrb r0, [r0]
+ bl sub_80CC464
+ ldr r1, [r4]
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080C879E
+ .pool
+_080C878C:
+ bl sub_80D1218
+_080C8790:
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080C879E
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ strb r1, [r0]
+_080C879E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task_pokemon_box_related
+
+ thumb_func_start sub_80C87A8
+sub_80C87A8: @ 80C87A8
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C87C0
+ cmp r0, 0x1
+ beq _080C87CE
+ b _080C87DE
+ .pool
+_080C87C0:
+ bl sub_80CAB4C
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C87DE
+_080C87CE:
+ bl sub_80CAB70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C87DE
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+_080C87DE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C87A8
+
+ thumb_func_start sub_80C87E8
+sub_80C87E8: @ 80C87E8
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080C8816
+ cmp r0, 0x1
+ bgt _080C8804
+ cmp r0, 0
+ beq _080C880A
+ b _080C8856
+ .pool
+_080C8804:
+ cmp r0, 0x2
+ beq _080C8836
+ b _080C8856
+_080C880A:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80CA888
+ b _080C882C
+_080C8816:
+ bl sub_80CA8C8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8856
+ bl sub_80CDC2C
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80CDBF8
+_080C882C:
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C8856
+_080C8836:
+ bl sub_80CD554
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8856
+ ldr r0, [r4]
+ ldr r1, =0x00000cea
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C8850
+ bl BoxSetMosaic
+_080C8850:
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+_080C8856:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C87E8
+
+ thumb_func_start sub_80C8864
+sub_80C8864: @ 80C8864
+ push {r4,lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bls _080C8872
+ b _080C8B82
+_080C8872:
+ lsls r0, 2
+ ldr r1, =_080C8884
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080C8884:
+ .4byte _080C88A0
+ .4byte _080C8904
+ .4byte _080C8920
+ .4byte _080C8B3C
+ .4byte _080C8B50
+ .4byte _080C8B46
+ .4byte _080C8B6C
+_080C88A0:
+ bl sub_80CA2B8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C88AC
+ b _080C8B82
+_080C88AC:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x3
+ beq _080C88C8
+ movs r0, 0x4
+ bl sub_80CAC58
+ b _080C88F2
+ .pool
+_080C88C8:
+ bl sub_80D127C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C88DE
+ ldr r0, [r4]
+ ldr r1, =0x00000ce6
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080C88EC
+_080C88DE:
+ movs r0, 0x17
+ bl sub_80CAC58
+ b _080C88F2
+ .pool
+_080C88EC:
+ movs r0, 0x18
+ bl sub_80CAC58
+_080C88F2:
+ bl sub_80CFFD0
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C8B82
+ .pool
+_080C8904:
+ bl sub_80D00A8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8910
+ b _080C8B82
+_080C8910:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080C8B82
+ .pool
+_080C8920:
+ bl sub_80D00AC
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x12
+ bls _080C8930
+ b _080C8B82
+_080C8930:
+ lsls r0, 2
+ ldr r1, =_080C8940
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080C8940:
+ .4byte _080C898C
+ .4byte _080C898C
+ .4byte _080C8A0C
+ .4byte _080C89F4
+ .4byte _080C899C
+ .4byte _080C89D4
+ .4byte _080C89BC
+ .4byte _080C8AAC
+ .4byte _080C8A48
+ .4byte _080C8AC0
+ .4byte _080C8B82
+ .4byte _080C8B82
+ .4byte _080C8B82
+ .4byte _080C8AD4
+ .4byte _080C8AE8
+ .4byte _080C8B1C
+ .4byte _080C8B08
+ .4byte _080C8AFC
+ .4byte _080C8B30
+_080C898C:
+ bl sub_80CADC4
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+ b _080C8B82
+ .pool
+_080C899C:
+ bl sub_80CEA30
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8A52
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80CADC4
+ ldr r0, =sub_80C8B90
+ bl add_to_c3_somehow
+ b _080C8B82
+ .pool
+_080C89BC:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80CADC4
+ ldr r0, =sub_80C8BEC
+ bl add_to_c3_somehow
+ b _080C8B82
+ .pool
+_080C89D4:
+ bl sub_80CEA6C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8A52
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80CADC4
+ ldr r0, =c3_0808DC50
+ bl add_to_c3_somehow
+ b _080C8B82
+ .pool
+_080C89F4:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80CADC4
+ ldr r0, =sub_80C8C90
+ bl add_to_c3_somehow
+ b _080C8B82
+ .pool
+_080C8A0C:
+ bl sub_80CEA30
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8A52
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldr r2, =0x00000ce6
+ adds r0, r2
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8A8C
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80CADC4
+ ldr r0, =sub_80C8D78
+ bl add_to_c3_somehow
+ b _080C8B82
+ .pool
+_080C8A48:
+ bl sub_80CEA30
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8A60
+_080C8A52:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080C8B82
+ .pool
+_080C8A60:
+ ldr r4, =gUnknown_02039D08
+ ldr r1, [r4]
+ ldr r2, =0x00000ced
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C8A7C
+ movs r0, 0x5
+ strb r0, [r1]
+ b _080C8B82
+ .pool
+_080C8A7C:
+ ldr r2, =0x00000ce6
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8A98
+_080C8A8C:
+ ldr r1, [r4]
+ movs r0, 0x4
+ strb r0, [r1]
+ b _080C8B82
+ .pool
+_080C8A98:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =sub_80C8EB4
+ bl add_to_c3_somehow
+ b _080C8B82
+ .pool
+_080C8AAC:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =sub_80C9B28
+ bl add_to_c3_somehow
+ b _080C8B82
+ .pool
+_080C8AC0:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =sub_80C90A4
+ bl add_to_c3_somehow
+ b _080C8B82
+ .pool
+_080C8AD4:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =sub_80C9128
+ bl add_to_c3_somehow
+ b _080C8B82
+ .pool
+_080C8AE8:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =sub_80C91DC
+ bl add_to_c3_somehow
+ b _080C8B82
+ .pool
+_080C8AFC:
+ ldr r0, =sub_80C9298
+ bl add_to_c3_somehow
+ b _080C8B82
+ .pool
+_080C8B08:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =sub_80C93B0
+ bl add_to_c3_somehow
+ b _080C8B82
+ .pool
+_080C8B1C:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =sub_80C9B88
+ bl add_to_c3_somehow
+ b _080C8B82
+ .pool
+_080C8B30:
+ ldr r0, =sub_80C9498
+ bl add_to_c3_somehow
+ b _080C8B82
+ .pool
+_080C8B3C:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0xD
+ b _080C8B58
+_080C8B46:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0x11
+ b _080C8B58
+_080C8B50:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0x16
+_080C8B58:
+ bl sub_80CAC58
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x6
+ strb r0, [r1]
+ b _080C8B82
+ .pool
+_080C8B6C:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _080C8B82
+ bl sub_80CADC4
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+_080C8B82:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C8864
+
+ thumb_func_start sub_80C8B90
+sub_80C8B90: @ 80C8B90
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C8BA8
+ cmp r0, 0x1
+ beq _080C8BB8
+ b _080C8BE2
+ .pool
+_080C8BA8:
+ movs r0, 0
+ bl sub_80CDC38
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C8BE2
+_080C8BB8:
+ bl sub_80CDCAC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8BE2
+ ldr r0, =gUnknown_02039D0C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C8BDC
+ ldr r0, =sub_80C9670
+ bl add_to_c3_somehow
+ b _080C8BE2
+ .pool
+_080C8BDC:
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+_080C8BE2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C8B90
+
+ thumb_func_start sub_80C8BEC
+sub_80C8BEC: @ 80C8BEC
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C8C04
+ cmp r0, 0x1
+ beq _080C8C14
+ b _080C8C3E
+ .pool
+_080C8C04:
+ movs r0, 0x1
+ bl sub_80CDC38
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C8C3E
+_080C8C14:
+ bl sub_80CDCAC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8C3E
+ ldr r0, =gUnknown_02039D0C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C8C38
+ ldr r0, =sub_80C9670
+ bl add_to_c3_somehow
+ b _080C8C3E
+ .pool
+_080C8C38:
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+_080C8C3E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C8BEC
+
+ thumb_func_start c3_0808DC50
+c3_0808DC50: @ 80C8C48
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C8C60
+ cmp r0, 0x1
+ beq _080C8C70
+ b _080C8C84
+ .pool
+_080C8C60:
+ movs r0, 0x2
+ bl sub_80CDC38
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C8C84
+_080C8C70:
+ bl sub_80CDCAC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8C84
+ bl BoxSetMosaic
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+_080C8C84:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end c3_0808DC50
+
+ thumb_func_start sub_80C8C90
+sub_80C8C90: @ 80C8C90
+ push {lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bhi _080C8D6E
+ lsls r0, 2
+ ldr r1, =_080C8CB0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080C8CB0:
+ .4byte _080C8CC8
+ .4byte _080C8D00
+ .4byte _080C8D20
+ .4byte _080C8D36
+ .4byte _080C8D48
+ .4byte _080C8D68
+_080C8CC8:
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _080C8CE8
+ movs r0, 0xE
+ bl sub_80CAC58
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C8D6E
+ .pool
+_080C8CE8:
+ bl sub_80CDC18
+ movs r0, 0
+ bl sub_80CDC38
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080C8D6E
+ .pool
+_080C8D00:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _080C8D6E
+ bl sub_80CADC4
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+ b _080C8D6E
+ .pool
+_080C8D20:
+ bl sub_80CDCAC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8D6E
+ movs r0, 0x1
+ bl sub_80CC0D4
+ bl sub_80CAB4C
+ b _080C8D56
+_080C8D36:
+ bl sub_80CAB70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8D6E
+ movs r0, 0x1
+ bl sub_80CDC38
+ b _080C8D56
+_080C8D48:
+ bl sub_80CDCAC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8D6E
+ bl sub_80CAB20
+_080C8D56:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C8D6E
+ .pool
+_080C8D68:
+ ldr r0, =sub_80C87E8
+ bl add_to_c3_somehow
+_080C8D6E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C8C90
+
+ thumb_func_start sub_80C8D78
+sub_80C8D78: @ 80C8D78
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bls _080C8D88
+ b _080C8EA2
+_080C8D88:
+ lsls r0, 2
+ ldr r1, =_080C8D9C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080C8D9C:
+ .4byte _080C8DB0
+ .4byte _080C8DEC
+ .4byte _080C8E4C
+ .4byte _080C8E64
+ .4byte _080C8E88
+_080C8DB0:
+ movs r0, 0x6
+ bl sub_80CAC58
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldr r1, =0x00001e5c
+ adds r0, r1
+ ldr r2, =0x0000dac7
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0xA
+ movs r3, 0x3
+ bl sub_80C77E8
+ ldr r0, =gUnknown_02039D0E
+ ldrb r0, [r0]
+ bl sub_80C78D4
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _080C8EA0
+ .pool
+_080C8DEC:
+ bl sub_80C78F0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ cmp r0, 0xC8
+ beq _080C8EA2
+ cmp r0, 0xC9
+ bne _080C8E0C
+ bl sub_80CADC4
+ bl sub_80C78E4
+ bl sub_80C7890
+ b _080C8E7A
+_080C8E0C:
+ adds r0, r4, 0
+ bl sub_80CE19C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E38
+ ldr r0, =gUnknown_02039D0E
+ strb r4, [r0]
+ bl sub_80CADC4
+ bl sub_80C78E4
+ bl sub_80C7890
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x2
+ b _080C8EA0
+ .pool
+_080C8E38:
+ movs r0, 0x8
+ bl sub_80CAC58
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x4
+ b _080C8EA0
+ .pool
+_080C8E4C:
+ bl party_compaction
+ bl sub_80CB950
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _080C8EA0
+ .pool
+_080C8E64:
+ bl sub_80CB9BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8EA2
+ bl sub_80CE22C
+ bl BoxSetMosaic
+ bl sub_80CAB20
+_080C8E7A:
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+ b _080C8EA2
+ .pool
+_080C8E88:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _080C8EA2
+ movs r0, 0x6
+ bl sub_80CAC58
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x1
+_080C8EA0:
+ strb r0, [r1]
+_080C8EA2:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C8D78
+
+ thumb_func_start sub_80C8EB4
+sub_80C8EB4: @ 80C8EB4
+ push {lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0xD
+ bls _080C8EC2
+ b _080C9096
+_080C8EC2:
+ lsls r0, 2
+ ldr r1, =_080C8ED4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080C8ED4:
+ .4byte _080C8F0C
+ .4byte _080C8F22
+ .4byte _080C8F5A
+ .4byte _080C8F80
+ .4byte _080C8F8C
+ .4byte _080C8FA4
+ .4byte _080C8FE0
+ .4byte _080C8FF8
+ .4byte _080C9004
+ .4byte _080C9008
+ .4byte _080C901C
+ .4byte _080C9038
+ .4byte _080C904A
+ .4byte _080C9080
+_080C8F0C:
+ movs r0, 0x9
+ bl sub_80CAC58
+ movs r0, 0x1
+ bl sub_80CAD9C
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080C8F22:
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080C8F4C
+ cmp r1, 0
+ bgt _080C8F40
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080C8F46
+ b _080C9096
+ .pool
+_080C8F40:
+ cmp r1, 0x1
+ beq _080C8F46
+ b _080C9096
+_080C8F46:
+ bl sub_80CADC4
+ b _080C8FF8
+_080C8F4C:
+ bl sub_80CADC4
+ bl sub_80CE3A0
+ bl sub_80CE250
+ b _080C905C
+_080C8F5A:
+ bl sub_80CE580
+ bl sub_80CE2A8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8F6A
+ b _080C9096
+_080C8F6A:
+ b _080C8F72
+_080C8F6C:
+ cmp r0, 0
+ bne _080C8F72
+ b _080C9070
+_080C8F72:
+ bl sub_80CE580
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _080C8F6C
+ b _080C905C
+_080C8F80:
+ bl sub_80CE2D8
+ bl sub_80CA230
+ movs r0, 0xA
+ b _080C9058
+_080C8F8C:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ bne _080C8F9A
+ b _080C9096
+_080C8F9A:
+ movs r0, 0xB
+ b _080C9058
+ .pool
+_080C8FA4:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9096
+ bl sub_80CADC4
+ ldr r0, =gUnknown_02039D0C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C8FD0
+ bl party_compaction
+ bl sub_80CB950
+ b _080C905C
+ .pool
+_080C8FD0:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x7
+ strb r0, [r1]
+ b _080C9096
+ .pool
+_080C8FE0:
+ bl sub_80CB9BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C9096
+ bl sub_80CE00C
+ bl BoxSetMosaic
+ bl sub_80CAB20
+ b _080C905C
+_080C8FF8:
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+ b _080C9096
+ .pool
+_080C9004:
+ movs r0, 0xA
+ b _080C9058
+_080C9008:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9096
+ movs r0, 0x15
+ b _080C9058
+ .pool
+_080C901C:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9096
+ bl sub_80CADC4
+ bl sub_80CC064
+ b _080C905C
+ .pool
+_080C9038:
+ bl sub_80CC0A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C9096
+ bl sub_80CE324
+ movs r0, 0x13
+ b _080C9058
+_080C904A:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9096
+ movs r0, 0x14
+_080C9058:
+ bl sub_80CAC58
+_080C905C:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C9096
+ .pool
+_080C9070:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x8
+ strb r0, [r1]
+ b _080C9096
+ .pool
+_080C9080:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9096
+ bl sub_80CADC4
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+_080C9096:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C8EB4
+
+ thumb_func_start sub_80C90A4
+sub_80C90A4: @ 80C90A4
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C90BC
+ cmp r0, 0x1
+ beq _080C90F0
+ b _080C9118
+ .pool
+_080C90BC:
+ movs r0, 0xC
+ bl sub_80CAC58
+ ldr r0, [r4]
+ ldr r2, =0x00000ceb
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ ldr r3, =0x00000da8
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, r2
+ ldrb r0, [r0]
+ movs r1, 0xB0
+ movs r2, 0x10
+ bl sub_811FAA4
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C9118
+ .pool
+_080C90F0:
+ bl sub_811FBA4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C9118
+ bl sub_811FAF8
+ bl sub_80CADC4
+ ldr r0, [r4]
+ ldr r1, =0x00000da8
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80CE9A8
+ bl sub_80CA230
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+_080C9118:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C90A4
+
+ thumb_func_start sub_80C9128
+sub_80C9128: @ 80C9128
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_02039D08
+ ldr r0, [r5]
+ ldrb r1, [r0]
+ cmp r1, 0x1
+ beq _080C9174
+ cmp r1, 0x1
+ bgt _080C9144
+ cmp r1, 0
+ beq _080C914E
+ b _080C91D2
+ .pool
+_080C9144:
+ cmp r1, 0x2
+ beq _080C919C
+ cmp r1, 0x3
+ beq _080C91C2
+ b _080C91D2
+_080C914E:
+ ldr r1, =0x00000ce6
+ adds r0, r1
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C9168
+ bl sub_80CADC4
+ b _080C91B8
+ .pool
+_080C9168:
+ ldr r0, =sub_80C96B8
+ bl add_to_c3_somehow
+ b _080C91D2
+ .pool
+_080C9174:
+ movs r0, 0x2
+ bl sub_80CFE54
+ ldr r0, =gUnknown_02039D0C
+ ldrb r0, [r0]
+ negs r4, r0
+ orrs r4, r0
+ lsrs r4, 31
+ bl sub_80CFE08
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_80D0E90
+ b _080C91B8
+ .pool
+_080C919C:
+ bl sub_80D1218
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C91D2
+ movs r0, 0x3
+ bl sub_80CFE54
+ bl sub_80CADC4
+ bl sub_80CE00C
+ bl sub_80CA4FC
+_080C91B8:
+ ldr r1, [r5]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C91D2
+_080C91C2:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C91D2
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+_080C91D2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C9128
+
+ thumb_func_start sub_80C91DC
+sub_80C91DC: @ 80C91DC
+ push {r4,lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bhi _080C928C
+ lsls r0, 2
+ ldr r1, =_080C91FC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080C91FC:
+ .4byte _080C9264
+ .4byte _080C9210
+ .4byte _080C9238
+ .4byte _080C9258
+ .4byte _080C927C
+_080C9210:
+ movs r0, 0x2
+ bl sub_80CFE54
+ ldr r0, =gUnknown_02039D0C
+ ldrb r0, [r0]
+ negs r4, r0
+ orrs r4, r0
+ lsrs r4, 31
+ bl sub_80CFE08
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_80D1080
+ b _080C9268
+ .pool
+_080C9238:
+ bl sub_80D1218
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C928C
+ movs r0, 0
+ bl sub_80CFE54
+ bl sub_80CE00C
+ bl sub_80CA4FC
+ movs r0, 0x1C
+ bl sub_80CAC58
+ b _080C9268
+_080C9258:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _080C928C
+_080C9264:
+ bl sub_80CADC4
+_080C9268:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C928C
+ .pool
+_080C927C:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C928C
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+_080C928C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C91DC
+
+ thumb_func_start sub_80C9298
+sub_80C9298: @ 80C9298
+ push {r4,r5,lr}
+ ldr r1, =gUnknown_02039D08
+ ldr r0, [r1]
+ ldrb r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0x4
+ bls _080C92A8
+ b _080C93A2
+_080C92A8:
+ lsls r0, 2
+ ldr r1, =_080C92BC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080C92BC:
+ .4byte _080C92D0
+ .4byte _080C9328
+ .4byte _080C9348
+ .4byte _080C938C
+ .4byte _080C9374
+_080C92D0:
+ ldr r0, [r5]
+ ldr r1, =0x00000ce6
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C92FC
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0x1A
+ bl sub_80CAC58
+ ldr r1, [r5]
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080C93A2
+ .pool
+_080C92FC:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_02039D0C
+ ldrb r0, [r0]
+ negs r4, r0
+ orrs r4, r0
+ lsrs r4, 31
+ bl sub_80CFE08
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_80D1114
+ ldr r1, [r5]
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C93A2
+ .pool
+_080C9328:
+ bl sub_80D1218
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C93A2
+ movs r0, 0x19
+ bl sub_80CAC58
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080C93A2
+ .pool
+_080C9348:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _080C93A2
+ bl sub_80CADC4
+ bl sub_80CE00C
+ bl sub_80CA4FC
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x4
+ strb r0, [r1]
+ b _080C93A2
+ .pool
+_080C9374:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C93A2
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+ b _080C93A2
+ .pool
+_080C938C:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _080C93A2
+ bl sub_80CADC4
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+_080C93A2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C9298
+
+ thumb_func_start sub_80C93B0
+sub_80C93B0: @ 80C93B0
+ push {r4,lr}
+ ldr r1, =gUnknown_02039D08
+ ldr r0, [r1]
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bhi _080C948C
+ lsls r0, 2
+ ldr r1, =_080C93D0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080C93D0:
+ .4byte _080C93E4
+ .4byte _080C9410
+ .4byte _080C9438
+ .4byte _080C9458
+ .4byte _080C947C
+_080C93E4:
+ ldr r0, [r4]
+ ldr r1, =0x00000ce6
+ adds r0, r1
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C9404
+ bl sub_80CADC4
+ ldr r1, [r4]
+ b _080C946C
+ .pool
+_080C9404:
+ ldr r0, =sub_80C96B8
+ bl add_to_c3_somehow
+ b _080C948C
+ .pool
+_080C9410:
+ movs r0, 0x2
+ bl sub_80CFE54
+ ldr r0, =gUnknown_02039D0C
+ ldrb r0, [r0]
+ negs r4, r0
+ orrs r4, r0
+ lsrs r4, 31
+ bl sub_80CFE08
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_80D0FAC
+ b _080C9468
+ .pool
+_080C9438:
+ bl sub_80D1218
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C948C
+ movs r0, 0x3
+ bl sub_80CFE54
+ bl sub_80CE00C
+ bl sub_80CA4FC
+ movs r0, 0x1D
+ bl sub_80CAC58
+ b _080C9468
+_080C9458:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _080C948C
+ bl sub_80CADC4
+_080C9468:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+_080C946C:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C948C
+ .pool
+_080C947C:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C948C
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+_080C948C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C93B0
+
+ thumb_func_start sub_80C9498
+sub_80C9498: @ 80C9498
+ push {lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bhi _080C9544
+ lsls r0, 2
+ ldr r1, =_080C94B8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080C94B8:
+ .4byte _080C94D4
+ .4byte _080C94DA
+ .4byte _080C94F4
+ .4byte _080C94FA
+ .4byte _080C9500
+ .4byte _080C9518
+ .4byte _080C9534
+_080C94D4:
+ bl sub_80CADC4
+ b _080C9522
+_080C94DA:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C9544
+ movs r0, 0x6
+ bl PlaySE
+ bl sub_80D17B4
+ bl sub_80D1818
+ b _080C9522
+_080C94F4:
+ bl sub_80D184C
+ b _080C951C
+_080C94FA:
+ bl IsDma3ManagerBusyWithBgCopy
+ b _080C951C
+_080C9500:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9544
+ movs r0, 0x6
+ bl PlaySE
+ b _080C9522
+ .pool
+_080C9518:
+ bl sub_80D18E4
+_080C951C:
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C9544
+_080C9522:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C9544
+ .pool
+_080C9534:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C9544
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+_080C9544:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C9498
+
+ thumb_func_start sub_80C954C
+sub_80C954C: @ 80C954C
+ push {r4,lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bls _080C955A
+ b _080C9664
+_080C955A:
+ lsls r0, 2
+ ldr r1, =_080C956C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080C956C:
+ .4byte _080C9584
+ .4byte _080C95A4
+ .4byte _080C9602
+ .4byte _080C9624
+ .4byte _080C9638
+ .4byte _080C9654
+_080C9584:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1B
+ bl sub_80CAC58
+ movs r0, 0
+ bl sub_80CAD9C
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C9664
+ .pool
+_080C95A4:
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080C95C8
+ cmp r1, 0
+ bgt _080C95BE
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080C95C2
+ b _080C9664
+_080C95BE:
+ cmp r1, 0x1
+ bne _080C9664
+_080C95C2:
+ bl sub_80CADC4
+ b _080C9648
+_080C95C8:
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldr r1, =0x00002234
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C95F4
+ bl sub_80CADC4
+ ldr r1, [r4]
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080C9664
+ .pool
+_080C95F4:
+ movs r0, 0x1A
+ bl sub_80CAC58
+ ldr r1, [r4]
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080C9664
+_080C9602:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9664
+ bl sub_80CADC4
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x5
+ strb r0, [r1]
+ b _080C9664
+ .pool
+_080C9624:
+ bl sub_80D1194
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x4
+ strb r0, [r1]
+ b _080C9664
+ .pool
+_080C9638:
+ bl sub_80D1218
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C9664
+ movs r0, 0
+ bl sub_80CFE54
+_080C9648:
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+ b _080C9664
+ .pool
+_080C9654:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C9664
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+_080C9664:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C954C
+
+ thumb_func_start sub_80C9670
+sub_80C9670: @ 80C9670
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C9688
+ cmp r0, 0x1
+ beq _080C969A
+ b _080C96AE
+ .pool
+_080C9688:
+ bl party_compaction
+ bl sub_80CB950
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C96AE
+_080C969A:
+ bl sub_80CB9BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C96AE
+ bl sub_80CAB20
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+_080C96AE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C9670
+
+ thumb_func_start sub_80C96B8
+sub_80C96B8: @ 80C96B8
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080C96E6
+ cmp r0, 0x1
+ bgt _080C96D4
+ cmp r0, 0
+ beq _080C96DE
+ b _080C9720
+ .pool
+_080C96D4:
+ cmp r0, 0x2
+ beq _080C96F2
+ cmp r0, 0x3
+ beq _080C9710
+ b _080C9720
+_080C96DE:
+ movs r0, 0x1E
+ bl sub_80CAC58
+ b _080C9702
+_080C96E6:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C9720
+ b _080C9702
+_080C96F2:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9720
+ bl sub_80CADC4
+_080C9702:
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C9720
+ .pool
+_080C9710:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C9720
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+_080C9720:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C96B8
+
+ thumb_func_start box_related
+box_related: @ 80C972C
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080C9762
+ cmp r0, 0x1
+ bgt _080C9748
+ cmp r0, 0
+ beq _080C974E
+ b _080C9818
+ .pool
+_080C9748:
+ cmp r0, 0x2
+ beq _080C9774
+ b _080C9818
+_080C974E:
+ movs r0, 0x1
+ bl sub_80CAC58
+ bl sub_80CFFD0
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C9818
+_080C9762:
+ bl sub_80D00A8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C9818
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080C9774:
+ bl sub_80D00AC
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bhi _080C9818
+ lsls r0, 2
+ ldr r1, =_080C9790
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080C9790:
+ .4byte _080C97C4
+ .4byte _080C97C4
+ .4byte _080C9818
+ .4byte _080C9818
+ .4byte _080C9818
+ .4byte _080C9818
+ .4byte _080C9818
+ .4byte _080C9818
+ .4byte _080C9818
+ .4byte _080C9818
+ .4byte _080C9808
+ .4byte _080C97F0
+ .4byte _080C97DC
+_080C97C4:
+ movs r0, 0x1
+ bl sub_80CD1A8
+ bl sub_80CADC4
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+ b _080C9818
+ .pool
+_080C97DC:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =sub_80C9AC8
+ bl add_to_c3_somehow
+ b _080C9818
+ .pool
+_080C97F0:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80CADC4
+ ldr r0, =sub_80C9824
+ bl add_to_c3_somehow
+ b _080C9818
+ .pool
+_080C9808:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80CADC4
+ ldr r0, =sub_80C99D8
+ bl add_to_c3_somehow
+_080C9818:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end box_related
+
+ thumb_func_start sub_80C9824
+sub_80C9824: @ 80C9824
+ push {r4,r5,lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bls _080C9832
+ b _080C99CC
+_080C9832:
+ lsls r0, 2
+ ldr r1, =_080C9844
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080C9844:
+ .4byte _080C9860
+ .4byte _080C9878
+ .4byte _080C9894
+ .4byte _080C990C
+ .4byte _080C993C
+ .4byte _080C9990
+ .4byte _080C99AC
+_080C9860:
+ bl sub_80CADD8
+ movs r0, 0x2
+ bl sub_80CAC58
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _080C99CA
+ .pool
+_080C9878:
+ bl sub_80D00A8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C9884
+ b _080C99CC
+_080C9884:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _080C99CA
+ .pool
+_080C9894:
+ bl sub_80D00AC
+ ldr r4, =gUnknown_02039D08
+ ldr r1, [r4]
+ ldr r5, =0x0000078e
+ adds r1, r5
+ strh r0, [r1]
+ movs r0, 0
+ ldrsh r1, [r1, r0]
+ cmp r1, 0x15
+ bgt _080C98C0
+ cmp r1, 0x12
+ bge _080C98D2
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080C98C6
+ b _080C99CC
+ .pool
+_080C98C0:
+ cmp r1, 0x16
+ beq _080C98EC
+ b _080C99CC
+_080C98C6:
+ movs r0, 0x1
+ bl sub_80CD1A8
+ bl sub_80CADC4
+ b _080C99A0
+_080C98D2:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80D013C
+ ldr r1, [r4]
+ adds r2, r1, r5
+ ldrh r0, [r2]
+ subs r0, 0x12
+ strh r0, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _080C99CA
+_080C98EC:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, [r4]
+ movs r1, 0xF2
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x10
+ strh r1, [r0]
+ bl sub_80D013C
+ bl sub_80CADC4
+ ldr r1, [r4]
+ movs r0, 0x6
+ b _080C99CA
+_080C990C:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C99CC
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldr r1, =0x0000078e
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80CAE0C
+ movs r0, 0x3
+ bl sub_80CAC58
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _080C99CA
+ .pool
+_080C993C:
+ bl sub_80D00AC
+ ldr r4, =gUnknown_02039D08
+ ldr r1, [r4]
+ movs r5, 0xF2
+ lsls r5, 3
+ adds r1, r5
+ strh r0, [r1]
+ movs r0, 0
+ ldrsh r1, [r1, r0]
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ beq _080C99CC
+ adds r0, 0x1
+ cmp r1, r0
+ bne _080C996C
+ bl sub_80CADC4
+ ldr r1, [r4]
+ movs r0, 0
+ b _080C99CA
+ .pool
+_080C996C:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80CADC4
+ ldr r1, [r4]
+ adds r1, r5
+ ldrh r0, [r1]
+ subs r0, 0x17
+ strh r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80CC680
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _080C99CA
+_080C9990:
+ bl sub_80CC6B0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C99CC
+ movs r0, 0x1
+ bl sub_80CD1A8
+_080C99A0:
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+ b _080C99CC
+ .pool
+_080C99AC:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C99CC
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ movs r1, 0xF2
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80CC680
+ ldr r1, [r4]
+ movs r0, 0x5
+_080C99CA:
+ strb r0, [r1]
+_080C99CC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C9824
+
+ thumb_func_start sub_80C99D8
+sub_80C99D8: @ 80C99D8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, =gUnknown_02039D08
+ ldr r0, [r5]
+ ldrb r4, [r0]
+ cmp r4, 0x1
+ beq _080C9A2C
+ cmp r4, 0x1
+ bgt _080C99F4
+ cmp r4, 0
+ beq _080C99FE
+ b _080C9AB8
+ .pool
+_080C99F4:
+ cmp r4, 0x2
+ beq _080C9A84
+ cmp r4, 0x3
+ beq _080C9A9C
+ b _080C9AB8
+_080C99FE:
+ movs r0, 0x5
+ bl sub_80CAC58
+ ldr r0, [r5]
+ ldr r1, =0x00001e5c
+ adds r0, r1
+ ldr r2, =0x0000dac7
+ str r4, [sp]
+ movs r1, 0xA
+ movs r3, 0x3
+ bl sub_80C77E8
+ bl StorageGetCurrentBox
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80C78D4
+ b _080C9A8E
+ .pool
+_080C9A2C:
+ bl sub_80C78F0
+ ldr r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =0x000002ca
+ adds r1, r2
+ strh r0, [r1]
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0xC8
+ beq _080C9AB8
+ bl sub_80CADC4
+ bl sub_80C78E4
+ bl sub_80C7890
+ ldr r0, [r5]
+ ldr r2, =0x000002ca
+ adds r1, r0, r2
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0xC9
+ beq _080C9A6C
+ adds r4, r0, 0
+ bl StorageGetCurrentBox
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _080C9A8E
+_080C9A6C:
+ movs r0, 0x1
+ bl sub_80CD1A8
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+ b _080C9AB8
+ .pool
+_080C9A84:
+ ldr r1, =0x000002ca
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80CC464
+_080C9A8E:
+ ldr r1, [r5]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C9AB8
+ .pool
+_080C9A9C:
+ bl sub_80CC54C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C9AB8
+ ldr r0, [r5]
+ ldr r2, =0x000002ca
+ adds r0, r2
+ ldrb r0, [r0]
+ bl sub_80D1D18
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+_080C9AB8:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C99D8
+
+ thumb_func_start sub_80C9AC8
+sub_80C9AC8: @ 80C9AC8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, =gUnknown_02039D08
+ ldr r0, [r5]
+ ldrb r4, [r0]
+ cmp r4, 0
+ beq _080C9AE0
+ cmp r4, 0x1
+ beq _080C9AFE
+ b _080C9B18
+ .pool
+_080C9AE0:
+ bl sub_80CE760
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, [r5]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C9B18
+_080C9AFE:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C9B18
+ ldr r0, =gUnknown_02039D0F
+ strb r4, [r0]
+ ldr r1, [r5]
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ ldr r0, =sub_80C9E50
+ bl add_to_c3_somehow
+_080C9B18:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C9AC8
+
+ thumb_func_start sub_80C9B28
+sub_80C9B28: @ 80C9B28
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, =gUnknown_02039D08
+ ldr r0, [r5]
+ ldrb r4, [r0]
+ cmp r4, 0
+ beq _080C9B40
+ cmp r4, 0x1
+ beq _080C9B5E
+ b _080C9B78
+ .pool
+_080C9B40:
+ bl sub_80CE7E8
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, [r5]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C9B78
+_080C9B5E:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080C9B78
+ ldr r0, =gUnknown_02039D0F
+ strb r1, [r0]
+ ldr r0, [r5]
+ strb r4, [r0, 0x2]
+ ldr r0, =sub_80C9E50
+ bl add_to_c3_somehow
+_080C9B78:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C9B28
+
+ thumb_func_start sub_80C9B88
+sub_80C9B88: @ 80C9B88
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _080C9BA0
+ cmp r1, 0x1
+ beq _080C9BBA
+ b _080C9BD6
+ .pool
+_080C9BA0:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C9BD6
+_080C9BBA:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C9BD6
+ ldr r1, =gUnknown_02039D0F
+ movs r0, 0x2
+ strb r0, [r1]
+ ldr r1, [r4]
+ movs r0, 0x3
+ strb r0, [r1, 0x2]
+ ldr r0, =sub_80C9E50
+ bl add_to_c3_somehow
+_080C9BD6:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C9B88
+
+ thumb_func_start sub_80C9BE8
+sub_80C9BE8: @ 80C9BE8
+ push {r4,lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bls _080C9BF6
+ b _080C9D08
+_080C9BF6:
+ lsls r0, 2
+ ldr r1, =_080C9C08
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080C9C08:
+ .4byte _080C9C1C
+ .4byte _080C9C78
+ .4byte _080C9C8C
+ .4byte _080C9CC8
+ .4byte _080C9CE4
+_080C9C1C:
+ bl sub_80CEAD0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C9C40
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0xF
+ bl sub_80CAC58
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C9D08
+ .pool
+_080C9C40:
+ bl sub_80D127C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C9C58
+ ldr r0, =sub_80C954C
+ bl add_to_c3_somehow
+ b _080C9D08
+ .pool
+_080C9C58:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_80CAC58
+ movs r0, 0
+ bl sub_80CAD9C
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080C9D08
+ .pool
+_080C9C78:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9D08
+ b _080C9CAA
+ .pool
+_080C9C8C:
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080C9CBC
+ cmp r1, 0
+ bgt _080C9CA6
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080C9CAA
+ b _080C9D08
+_080C9CA6:
+ cmp r1, 0x1
+ bne _080C9D08
+_080C9CAA:
+ bl sub_80CADC4
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+ b _080C9D08
+ .pool
+_080C9CBC:
+ movs r0, 0x3
+ bl PlaySE
+ bl sub_80CADC4
+ b _080C9CD2
+_080C9CC8:
+ movs r0, 0x14
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80F9BF4
+_080C9CD2:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C9D08
+ .pool
+_080C9CE4:
+ bl sub_80F9C30
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080C9D08
+ bl sub_80CABE0
+ bl CalculatePlayerPartyCount
+ ldr r1, =gPlayerPartyCount
+ strb r0, [r1]
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ strb r4, [r0, 0x2]
+ ldr r0, =sub_80C9E50
+ bl add_to_c3_somehow
+_080C9D08:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C9BE8
+
+ thumb_func_start sub_80C9D1C
+sub_80C9D1C: @ 80C9D1C
+ push {r4,lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bls _080C9D2A
+ b _080C9E3C
+_080C9D2A:
+ lsls r0, 2
+ ldr r1, =_080C9D3C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080C9D3C:
+ .4byte _080C9D50
+ .4byte _080C9DAC
+ .4byte _080C9DC0
+ .4byte _080C9DFC
+ .4byte _080C9E18
+_080C9D50:
+ bl sub_80CEAD0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C9D74
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0xF
+ bl sub_80CAC58
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C9E3C
+ .pool
+_080C9D74:
+ bl sub_80D127C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C9D8C
+ ldr r0, =sub_80C954C
+ bl add_to_c3_somehow
+ b _080C9E3C
+ .pool
+_080C9D8C:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x12
+ bl sub_80CAC58
+ movs r0, 0
+ bl sub_80CAD9C
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080C9E3C
+ .pool
+_080C9DAC:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF3
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9E3C
+ b _080C9DE0
+ .pool
+_080C9DC0:
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080C9DE0
+ cmp r1, 0
+ bgt _080C9DDA
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080C9DF0
+ b _080C9E3C
+_080C9DDA:
+ cmp r1, 0x1
+ beq _080C9DF0
+ b _080C9E3C
+_080C9DE0:
+ bl sub_80CADC4
+ ldr r0, =task_pokemon_box_related
+ bl add_to_c3_somehow
+ b _080C9E3C
+ .pool
+_080C9DF0:
+ movs r0, 0x3
+ bl PlaySE
+ bl sub_80CADC4
+ b _080C9E06
+_080C9DFC:
+ movs r0, 0x14
+ movs r1, 0
+ movs r2, 0
+ bl sub_80F9BF4
+_080C9E06:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080C9E3C
+ .pool
+_080C9E18:
+ bl sub_80F9C30
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080C9E3C
+ bl sub_80CABE0
+ bl CalculatePlayerPartyCount
+ ldr r1, =gPlayerPartyCount
+ strb r0, [r1]
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ strb r4, [r0, 0x2]
+ ldr r0, =sub_80C9E50
+ bl add_to_c3_somehow
+_080C9E3C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C9D1C
+
+ thumb_func_start sub_80C9E50
+sub_80C9E50: @ 80C9E50
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r4, [r0, 0x2]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x3
+ bne _080C9E88
+ bl sub_80D127C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9E88
+ bl sub_80D12D4
+ ldr r1, =gUnknown_02039D12
+ b _080C9E8C
+ .pool
+_080C9E88:
+ ldr r1, =gUnknown_02039D12
+ movs r0, 0
+_080C9E8C:
+ strh r0, [r1]
+ cmp r4, 0x1
+ beq _080C9EB4
+ cmp r4, 0x1
+ ble _080C9E9E
+ cmp r4, 0x2
+ beq _080C9F1C
+ cmp r4, 0x3
+ beq _080C9F48
+_080C9E9E:
+ bl sub_80C9FC8
+ ldr r0, =sub_80C7678
+ bl SetMainCallback2
+ b _080C9F56
+ .pool
+_080C9EB4:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r2, =0x0000218c
+ adds r0, r1, r2
+ ldr r4, [r0]
+ subs r2, 0x5
+ adds r0, r1, r2
+ ldrb r7, [r0]
+ subs r2, 0x1
+ adds r0, r1, r2
+ ldrb r6, [r0]
+ ldr r0, =0x00002188
+ adds r1, r0
+ ldrb r5, [r1]
+ bl sub_80C9FC8
+ cmp r5, 0
+ bne _080C9F04
+ ldr r0, =gUnknown_02039D14
+ cmp r4, r0
+ bne _080C9F04
+ ldr r0, =c2_808CE60
+ str r0, [sp]
+ movs r0, 0
+ adds r1, r4, 0
+ adds r2, r7, 0
+ adds r3, r6, 0
+ bl sub_81BFA80
+ b _080C9F56
+ .pool
+_080C9F04:
+ ldr r0, =c2_808CE60
+ str r0, [sp]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r7, 0
+ adds r3, r6, 0
+ bl sub_81BF8EC
+ b _080C9F56
+ .pool
+_080C9F1C:
+ bl sub_80C9FC8
+ bl StorageGetCurrentBox
+ lsls r0, 24
+ lsrs r0, 24
+ bl sav3_get_box_name
+ adds r1, r0, 0
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, =c2_808CE60
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl do_choose_name_or_words_screen
+ b _080C9F56
+ .pool
+_080C9F48:
+ bl sub_80C9FC8
+ ldr r2, =c2_808CE60
+ movs r0, 0xB
+ movs r1, 0
+ bl GoToBagMenu
+_080C9F56:
+ mov r0, r8
+ bl DestroyTask
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C9E50
+
+ thumb_func_start sub_80C9F6C
+sub_80C9F6C: @ 80C9F6C
+ push {lr}
+ sub sp, 0x4
+ ldr r0, =gScriptItemId
+ ldrh r1, [r0]
+ mov r0, sp
+ strh r1, [r0]
+ cmp r1, 0
+ beq _080C9FC0
+ bl sub_80CFE08
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, =gUnknown_02039D0C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C9FAC
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ b _080C9FB6
+ .pool
+_080C9FAC:
+ adds r0, r1, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetBoxMonDataFromSelectedBox
+_080C9FB6:
+ mov r0, sp
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl RemoveBagItem
+_080C9FC0:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C9F6C
+
+ thumb_func_start sub_80C9FC8
+sub_80C9FC8: @ 80C9FC8
+ push {r4,lr}
+ bl sub_80D25F0
+ bl sub_80D01B8
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+ bl FreeAllWindowBuffers
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C9FC8
+
+ thumb_func_start sub_80C9FEC
+sub_80C9FEC: @ 80C9FEC
+ push {lr}
+ sub sp, 0x4
+ ldr r1, =0x00001f0f
+ movs r0, 0xE
+ bl SetGpuReg
+ ldr r1, =gUnknown_085720DC
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl copy_decompressed_tile_data_to_vram_autofree
+ ldr r0, =gUnknown_08572174
+ ldr r1, =0x0600f800
+ bl LZ77UnCompVram
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80C9FEC
+
+ thumb_func_start sub_80CA028
+sub_80CA028: @ 80CA028
+ push {lr}
+ movs r0, 0x3
+ movs r1, 0x80
+ movs r2, 0x1
+ bl ChangeBgX
+ movs r0, 0x3
+ movs r1, 0x80
+ movs r2, 0x2
+ bl ChangeBgY
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CA028
+
+ thumb_func_start sub_80CA044
+sub_80CA044: @ 80CA044
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r1, =gUnknown_08572734
+ movs r0, 0
+ movs r2, 0x4
+ bl InitBgsFromTemplates
+ ldr r1, =gUnknown_08DD2FE8
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl copy_decompressed_tile_data_to_vram_autofree
+ ldr r0, =gUnknown_085722A0
+ ldr r5, =gUnknown_02039D08
+ ldr r1, [r5]
+ ldr r4, =0x00005ac4
+ adds r1, r4
+ bl LZ77UnCompWram
+ ldr r1, [r5]
+ adds r1, r4
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CA044
+
+ thumb_func_start sub_80CA0A4
+sub_80CA0A4: @ 80CA0A4
+ push {lr}
+ ldr r0, =gUnknown_08572714
+ bl InitWindows
+ lsls r0, 16
+ cmp r0, 0
+ beq _080CA0C0
+ bl DeactivateAllTextPrinters
+ movs r0, 0x1
+ b _080CA0C2
+ .pool
+_080CA0C0:
+ movs r0, 0
+_080CA0C2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CA0A4
+
+ thumb_func_start sub_80CA0C8
+sub_80CA0C8: @ 80CA0C8
+ push {lr}
+ ldr r0, =gUnknown_08572744
+ bl LoadSpritePalette
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CA0C8
+
+ thumb_func_start sub_80CA0D8
+sub_80CA0D8: @ 80CA0D8
+ push {lr}
+ ldr r0, =gUnknown_085723DC
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, =gUnknown_085723FC
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, =gUnknown_085726F4
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x3
+ beq _080CA124
+ ldr r0, =gUnknown_0857241C
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ b _080CA12E
+ .pool
+_080CA124:
+ ldr r0, =gUnknown_0857243C
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+_080CA12E:
+ ldr r1, =0x00001e05
+ movs r0, 0xA
+ bl SetGpuReg
+ bl sub_80CA318
+ bl sub_80CA154
+ bl sub_80CA1C4
+ bl sub_80CA230
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CA0D8
+
+ thumb_func_start sub_80CA154
+sub_80CA154: @ 80CA154
+ push {r4,lr}
+ ldr r1, =0x0000dac8
+ movs r0, 0x10
+ movs r2, 0
+ bl sub_811FFB4
+ ldr r4, =gUnknown_02039D08
+ ldr r1, [r4]
+ ldr r3, =0x00000d94
+ adds r1, r3
+ str r0, [r1]
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r0, [r4]
+ adds r0, r3
+ ldr r0, [r0]
+ adds r0, 0x43
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, r3
+ ldr r2, [r0]
+ movs r1, 0x28
+ strh r1, [r2, 0x20]
+ ldr r1, [r0]
+ movs r0, 0x96
+ strh r0, [r1, 0x22]
+ movs r0, 0x10
+ bl GetSpriteTileStartByTag
+ ldr r1, [r4]
+ movs r2, 0xDA
+ lsls r2, 4
+ adds r1, r2
+ lsls r0, 16
+ lsrs r0, 11
+ ldr r2, =0x06010000
+ adds r0, r2
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CA154
+
+ thumb_func_start sub_80CA1C4
+sub_80CA1C4: @ 80CA1C4
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r0, =gUnknown_0857274C
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ movs r4, 0
+_080CA1DA:
+ lsls r1, r4, 6
+ subs r1, r4
+ adds r1, 0x8
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, =gUnknown_085728BC
+ movs r2, 0x9
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_02039D08
+ ldr r2, [r1]
+ lsls r1, r4, 2
+ ldr r3, =0x00000d98
+ adds r2, r3
+ adds r2, r1
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =gSprites
+ adds r1, r0
+ str r1, [r2]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080CA1DA
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CA1C4
+
+ thumb_func_start sub_80CA230
+sub_80CA230: @ 80CA230
+ push {lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r2, =0x00000ce4
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ subs r2, 0x4
+ adds r1, r2
+ ldr r1, [r1]
+ bl sub_80CA44C
+ bl sub_80CA4FC
+ bl sub_80CA65C
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CA230
+
+ thumb_func_start BoxSetMosaic
+BoxSetMosaic: @ 80CA260
+ push {lr}
+ bl sub_80CA230
+ ldr r3, =gUnknown_02039D08
+ ldr r0, [r3]
+ movs r1, 0x89
+ lsls r1, 6
+ adds r0, r1
+ ldr r2, [r0]
+ cmp r2, 0
+ beq _080CA2AC
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldr r1, [r3]
+ movs r0, 0x89
+ lsls r0, 6
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0xA
+ strh r0, [r2, 0x2E]
+ ldr r2, [r1]
+ movs r0, 0x1
+ strh r0, [r2, 0x30]
+ ldr r2, [r1]
+ ldr r0, =BoxSetMosaic2
+ str r0, [r2, 0x1C]
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x2E]
+ lsls r1, r0, 12
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x4C
+ bl SetGpuReg
+_080CA2AC:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end BoxSetMosaic
+
+ thumb_func_start sub_80CA2B8
+sub_80CA2B8: @ 80CA2B8
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ movs r1, 0x89
+ lsls r1, 6
+ adds r0, r1
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ lsls r0, 27
+ lsrs r0, 31
+ bx lr
+ .pool
+ thumb_func_end sub_80CA2B8
+
+ thumb_func_start BoxSetMosaic2
+BoxSetMosaic2: @ 80CA2D0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x30]
+ subs r0, r1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080CA2E6
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_080CA2E6:
+ ldrh r0, [r4, 0x2E]
+ lsls r1, r0, 12
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x4C
+ bl SetGpuReg
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080CA30E
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x11
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r4, 0x1]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+_080CA30E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end BoxSetMosaic2
+
+ thumb_func_start sub_80CA318
+sub_80CA318: @ 80CA318
+ push {r4-r7,lr}
+ sub sp, 0x28
+ ldr r0, =gUnknown_02039D08
+ mov r12, r0
+ ldr r1, [r0]
+ ldr r4, =0x000022c4
+ adds r0, r1, r4
+ str r0, [sp, 0x18]
+ add r3, sp, 0x18
+ movs r0, 0x82
+ lsls r0, 10
+ str r0, [r3, 0x4]
+ ldr r5, =0x00002244
+ adds r1, r5
+ str r1, [sp, 0x20]
+ ldr r0, =0x0000dac6
+ add r2, sp, 0x20
+ str r0, [r2, 0x4]
+ mov r1, sp
+ ldr r0, =gUnknown_08572754
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ movs r6, 0
+ adds r7, r2, 0
+ mov r5, r12
+ movs r2, 0
+ ldr r1, =0x000007ff
+_080CA352:
+ ldr r0, [r5]
+ adds r0, r4
+ adds r0, r6
+ strb r2, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r1
+ bls _080CA352
+ movs r6, 0
+ ldr r5, =gUnknown_02039D08
+ ldr r4, =0x00002244
+ movs r2, 0
+_080CA36C:
+ ldr r0, [r5]
+ lsls r1, r6, 1
+ adds r0, r4
+ adds r0, r1
+ strh r2, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0xF
+ bls _080CA36C
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ movs r6, 0x89
+ lsls r6, 6
+ adds r0, r6
+ movs r1, 0
+ str r1, [r0]
+ adds r0, r3, 0
+ bl LoadSpriteSheet
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _080CA420
+ adds r0, r7, 0
+ bl LoadSpritePalette
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xFF
+ beq _080CA420
+ b _080CA40C
+ .pool
+_080CA3C4:
+ ldr r0, =gUnknown_02039D08
+ ldr r2, [r0]
+ movs r7, 0x89
+ lsls r7, 6
+ adds r3, r2, r7
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ str r0, [r3]
+ lsls r0, r4, 4
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ ldr r3, =0x0000223a
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r6, =0x0000223c
+ adds r2, r6
+ lsls r0, r5, 5
+ ldr r7, =0x06010000
+ adds r0, r7
+ str r0, [r2]
+ b _080CA420
+ .pool
+_080CA40C:
+ mov r0, sp
+ movs r1, 0x28
+ movs r2, 0x30
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ bne _080CA3C4
+_080CA420:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ movs r1, 0x89
+ lsls r1, 6
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080CA43C
+ movs r0, 0x2
+ bl FreeSpriteTilesByTag
+ ldr r0, =0x0000dac6
+ bl FreeSpritePaletteByTag
+_080CA43C:
+ add sp, 0x28
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CA318
+
+ thumb_func_start sub_80CA44C
+sub_80CA44C: @ 80CA44C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r3, r1, 0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r6, =gUnknown_02039D08
+ ldr r2, [r6]
+ movs r7, 0x89
+ lsls r7, 6
+ adds r0, r2, r7
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080CA4F2
+ cmp r4, 0
+ beq _080CA4E8
+ lsls r0, r4, 3
+ ldr r1, =gMonFrontPicTable
+ adds r0, r1
+ ldr r5, =0x000022c4
+ adds r1, r2, r5
+ movs r2, 0x1
+ str r2, [sp]
+ adds r2, r4, 0
+ bl LoadSpecialPokePic
+ ldr r1, [r6]
+ ldr r2, =0x00000cdc
+ adds r0, r1, r2
+ ldr r0, [r0]
+ ldr r4, =0x00002244
+ adds r1, r4
+ bl LZ77UnCompWram
+ ldr r0, [r6]
+ adds r5, r0, r5
+ ldr r1, =0x0000223c
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r2, =0x04000200
+ adds r0, r5, 0
+ bl CpuSet
+ ldr r0, [r6]
+ adds r4, r0, r4
+ ldr r2, =0x0000223a
+ adds r0, r2
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, [r6]
+ adds r0, r7
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ b _080CA4F2
+ .pool
+_080CA4E8:
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080CA4F2:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CA44C
+
+ thumb_func_start sub_80CA4FC
+sub_80CA4FC: @ 80CA4FC
+ push {r4-r6,lr}
+ sub sp, 0xC
+ movs r0, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r6, =gUnknown_02039D08
+ ldr r2, [r6]
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x3
+ beq _080CA588
+ ldr r0, =0x00000cf9
+ adds r2, r0
+ movs r4, 0
+ str r4, [sp]
+ movs r5, 0xFF
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x1
+ movs r3, 0x6
+ bl PrintTextOnWindow
+ ldr r2, [r6]
+ ldr r1, =0x00000d1d
+ adds r2, r1
+ movs r0, 0xF
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x2
+ movs r3, 0x6
+ bl PrintTextOnWindow
+ ldr r2, [r6]
+ ldr r0, =0x00000d41
+ adds r2, r0
+ movs r0, 0x1D
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x2
+ movs r3, 0xA
+ bl PrintTextOnWindow
+ ldr r2, [r6]
+ ldr r1, =0x00000d65
+ adds r2, r1
+ movs r0, 0x2B
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x6
+ bl PrintTextOnWindow
+ b _080CA5E8
+ .pool
+_080CA588:
+ ldr r0, =0x00000d65
+ adds r2, r0
+ movs r4, 0
+ str r4, [sp]
+ movs r5, 0xFF
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x6
+ bl PrintTextOnWindow
+ ldr r2, [r6]
+ ldr r1, =0x00000cf9
+ adds r2, r1
+ movs r0, 0xD
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x1
+ movs r3, 0x6
+ bl PrintTextOnWindow
+ ldr r2, [r6]
+ ldr r0, =0x00000d1d
+ adds r2, r0
+ movs r0, 0x1C
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x2
+ movs r3, 0x6
+ bl PrintTextOnWindow
+ ldr r2, [r6]
+ ldr r1, =0x00000d41
+ adds r2, r1
+ movs r0, 0x2A
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x2
+ movs r3, 0xA
+ bl PrintTextOnWindow
+_080CA5E8:
+ movs r0, 0
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldr r4, =gUnknown_02039D08
+ ldr r1, [r4]
+ ldr r2, =0x00000ce4
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080CA640
+ adds r2, 0x7
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0xB5
+ adds r1, r2
+ ldr r1, [r1]
+ bl sub_8120084
+ ldr r0, [r4]
+ ldr r1, =0x00000d94
+ adds r0, r1
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ b _080CA64E
+ .pool
+_080CA640:
+ ldr r2, =0x00000d94
+ adds r0, r1, r2
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+_080CA64E:
+ strb r0, [r1]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CA4FC
+
+ thumb_func_start sub_80CA65C
+sub_80CA65C: @ 80CA65C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00000ce4
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080CA6B4
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x8
+ bl sub_80D27AC
+ movs r4, 0
+_080CA680:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ ldr r2, =0x00000d98
+ adds r0, r2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnimIfDifferent
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080CA680
+ b _080CA6E6
+ .pool
+_080CA6B4:
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0x8
+ bl sub_80D27AC
+ movs r4, 0
+_080CA6C6:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ ldr r2, =0x00000d98
+ adds r0, r2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r1, r4, 25
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080CA6C6
+_080CA6E6:
+ movs r0, 0
+ bl sub_80D2918
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CA65C
+
+ thumb_func_start sub_80CA704
+sub_80CA704: @ 80CA704
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, =gUnknown_08DD36C8
+ ldr r4, =gUnknown_02039D08
+ ldr r1, [r4]
+ adds r1, 0xB0
+ bl LZ77UnCompWram
+ ldr r0, =gUnknown_08DD36A8
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r2, [r4]
+ adds r2, 0xB0
+ movs r0, 0x16
+ str r0, [sp]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r3, 0xC
+ bl sub_80D2644
+ ldr r2, =gUnknown_0857245C
+ movs r0, 0x4
+ str r0, [sp]
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r3, 0x9
+ bl sub_80D2644
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0
+ bl sub_80D2770
+ movs r0, 0x2
+ movs r1, 0x15
+ movs r2, 0
+ bl sub_80D2770
+ bl sub_80CAA74
+ ldr r0, =gUnknown_02039D0C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080CA790
+ movs r0, 0x1
+ bl sub_80CA984
+ movs r0, 0x1
+ bl sub_80CB7E8
+ movs r0, 0x2
+ bl sub_80D2918
+ movs r0, 0x1
+ bl sub_80D2918
+ b _080CA7B2
+ .pool
+_080CA790:
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x14
+ movs r3, 0xC
+ bl sub_80D27AC
+ movs r0, 0x1
+ bl sub_80CA984
+ movs r0, 0x1
+ bl sub_80D2918
+ movs r0, 0x2
+ bl sub_80D2918
+_080CA7B2:
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x000002c7
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CA704
+
+ thumb_func_start sub_80CA7D4
+sub_80CA7D4: @ 80CA7D4
+ push {lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r0, 0xB0
+ lsls r0, 2
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0x14
+ strh r0, [r2]
+ ldr r0, =0x000002c2
+ adds r2, r1, r0
+ movs r0, 0x2
+ strh r0, [r2]
+ ldr r0, =0x000002c5
+ adds r1, r0
+ strb r3, [r1]
+ movs r0, 0
+ bl sub_80CB7E8
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CA7D4
+
+ thumb_func_start sub_80CA80C
+sub_80CA80C: @ 80CA80C
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D08
+ ldr r2, [r4]
+ ldr r1, =0x000002c5
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x14
+ beq _080CA87A
+ movs r0, 0xB0
+ lsls r0, 2
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldr r0, =0x000002c2
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl sub_80D27F4
+ movs r0, 0x1
+ bl sub_80D2918
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0x8
+ bl sub_80CBAF0
+ ldr r1, [r4]
+ ldr r0, =0x000002c5
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x14
+ beq _080CA874
+ movs r0, 0x1
+ b _080CA87C
+ .pool
+_080CA874:
+ ldr r1, =gUnknown_02039D0C
+ movs r0, 0x1
+ strb r0, [r1]
+_080CA87A:
+ movs r0, 0
+_080CA87C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80CA80C
+
+ thumb_func_start sub_80CA888
+sub_80CA888: @ 80CA888
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D08
+ ldr r1, [r4]
+ movs r0, 0xB0
+ lsls r0, 2
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r2]
+ ldr r0, =0x000002c2
+ adds r2, r1, r0
+ movs r0, 0x16
+ strh r0, [r2]
+ ldr r0, =0x000002c5
+ adds r1, r0
+ strb r3, [r1]
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x3
+ bne _080CA8B4
+ bl sub_80D11CC
+_080CA8B4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CA888
+
+ thumb_func_start sub_80CA8C8
+sub_80CA8C8: @ 80CA8C8
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r5, =gUnknown_02039D08
+ ldr r2, [r5]
+ ldr r1, =0x000002c5
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x14
+ beq _080CA974
+ movs r0, 0xB0
+ lsls r0, 2
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ ldr r4, =0x000002c2
+ adds r1, r2, r4
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x1
+ movs r1, 0x3
+ bl sub_80D27F4
+ movs r0, 0x1
+ bl sub_80D2918
+ movs r1, 0x80
+ lsls r1, 1
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r3, [r0]
+ movs r0, 0xC
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r2, 0xA
+ bl FillBgTilemapBufferRect_Palette0
+ movs r0, 0x8
+ negs r0, r0
+ bl sub_80CBAF0
+ ldr r1, [r5]
+ ldr r0, =0x000002c5
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x14
+ beq _080CA94C
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0x1
+ b _080CA976
+ .pool
+_080CA94C:
+ ldr r0, =gUnknown_02039D0C
+ movs r1, 0
+ strb r1, [r0]
+ bl sub_80CBB9C
+ bl party_compaction
+ movs r0, 0x2
+ str r0, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x9
+ bl sub_80D27AC
+ movs r0, 0x2
+ bl sub_80D2918
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+_080CA974:
+ movs r0, 0
+_080CA976:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80CA8C8
+
+ thumb_func_start sub_80CA984
+sub_80CA984: @ 80CA984
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CA99E
+ movs r0, 0x2
+ str r0, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x9
+ bl sub_80D27AC
+ b _080CA9AC
+_080CA99E:
+ movs r0, 0x2
+ str r0, [sp]
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0x9
+ bl sub_80D27AC
+_080CA9AC:
+ movs r0, 0x2
+ bl sub_80D2918
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CA984
+
+ thumb_func_start sub_80CA9C0
+sub_80CA9C0: @ 80CA9C0
+ ldr r2, =gUnknown_02039D08
+ ldr r0, [r2]
+ ldr r1, =0x000002c7
+ adds r0, r1
+ movs r3, 0x1
+ strb r3, [r0]
+ ldr r0, [r2]
+ adds r1, 0x1
+ adds r0, r1
+ movs r1, 0x1E
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r1, =0x000002c9
+ adds r0, r1
+ strb r3, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_80CA9C0
+
+ thumb_func_start sub_80CA9EC
+sub_80CA9EC: @ 80CA9EC
+ push {lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r2, =0x000002c7
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080CAA06
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ bl sub_80CA984
+_080CAA06:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CA9EC
+
+ thumb_func_start sub_80CAA14
+sub_80CAA14: @ 80CAA14
+ push {r4,lr}
+ ldr r3, =gUnknown_02039D08
+ ldr r1, [r3]
+ ldr r2, =0x000002c7
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080CAA60
+ movs r0, 0xB2
+ lsls r0, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1E
+ bls _080CAA60
+ ldr r0, [r3]
+ movs r1, 0xB2
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r3]
+ movs r2, 0
+ ldr r4, =0x000002c9
+ adds r1, r0, r4
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080CAA54
+ movs r2, 0x1
+_080CAA54:
+ strb r2, [r1]
+ ldr r0, [r3]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_80CA984
+_080CAA60:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CAA14
+
+ thumb_func_start sub_80CAA74
+sub_80CAA74: @ 80CAA74
+ push {r4,lr}
+ movs r4, 0x1
+_080CAA78:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ adds r0, r4, 0
+ bl sub_80CAAA8
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _080CAA78
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CAA74
+
+ thumb_func_start sub_80CAAA8
+sub_80CAAA8: @ 80CAAA8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r7, =gUnknown_085724BC
+ cmp r1, 0
+ beq _080CAAB8
+ ldr r7, =gUnknown_085724A4
+_080CAAB8:
+ subs r0, 0x1
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 18
+ movs r1, 0xE0
+ lsls r1, 11
+ adds r0, r1
+ lsrs r3, r0, 16
+ movs r0, 0
+ ldr r1, =gUnknown_02039D08
+ mov r12, r1
+_080CAAD4:
+ movs r2, 0
+ adds r4, r7, 0
+ adds r4, 0x8
+ adds r5, r3, 0
+ adds r5, 0xC
+ adds r6, r0, 0x1
+_080CAAE0:
+ mov r0, r12
+ ldr r1, [r0]
+ adds r0, r3, r2
+ lsls r0, 1
+ adds r1, 0xB0
+ adds r1, r0
+ lsls r0, r2, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x3
+ bls _080CAAE0
+ adds r7, r4, 0
+ lsls r0, r5, 16
+ lsrs r3, r0, 16
+ lsls r0, r6, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bls _080CAAD4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CAAA8
+
+ thumb_func_start sub_80CAB20
+sub_80CAB20: @ 80CAB20
+ push {lr}
+ sub sp, 0x4
+ bl sub_80CAA74
+ movs r0, 0x16
+ str r0, [sp]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0xC
+ bl sub_80D27AC
+ movs r0, 0x1
+ bl sub_80D2918
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CAB20
+
+ thumb_func_start sub_80CAB4C
+sub_80CAB4C: @ 80CAB4C
+ push {lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x000002c6
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x6
+ bl PlaySE
+ bl sub_80CA7D4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CAB4C
+
+ thumb_func_start sub_80CAB70
+sub_80CAB70: @ 80CAB70
+ push {r4,r5,lr}
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldr r5, =0x000002c6
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080CABAA
+ cmp r0, 0x1
+ bgt _080CAB94
+ cmp r0, 0
+ beq _080CAB9A
+ b _080CABD8
+ .pool
+_080CAB94:
+ cmp r0, 0x2
+ beq _080CABD4
+ b _080CABD8
+_080CAB9A:
+ bl sub_80CA80C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CABD8
+ bl sub_80CDBA0
+ b _080CABC4
+_080CABAA:
+ bl sub_80CD554
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CABD8
+ ldr r0, [r4]
+ ldr r1, =0x00000cea
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080CABC4
+ bl BoxSetMosaic
+_080CABC4:
+ ldr r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080CABD8
+ .pool
+_080CABD4:
+ movs r0, 0
+ b _080CABDA
+_080CABD8:
+ movs r0, 0x1
+_080CABDA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CAB70
+
+ thumb_func_start sub_80CABE0
+sub_80CABE0: @ 80CABE0
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D10
+ bl StorageGetCurrentBox
+ ldrb r1, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ beq _080CAC0A
+ ldr r0, =0x000008d7
+ bl FlagReset
+ ldr r4, =0x00004036
+ bl StorageGetCurrentBox
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl VarSet
+_080CAC0A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CABE0
+
+ thumb_func_start sub_80CAC1C
+sub_80CAC1C: @ 80CAC1C
+ push {lr}
+ sub sp, 0xC
+ movs r1, 0xE8
+ lsls r1, 5
+ movs r0, 0x8
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0xD0
+ bl sub_809882C
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0x14
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CAC1C
+
+ thumb_func_start sub_80CAC58
+sub_80CAC58: @ 80CAC58
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl sub_81AFBF0
+ ldr r1, =gUnknown_0857276C
+ lsls r0, r6, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x7
+ bhi _080CAD30
+ lsls r0, 2
+ ldr r1, =_080CAC84
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080CAC84:
+ .4byte _080CAD30
+ .4byte _080CACA4
+ .4byte _080CACA4
+ .4byte _080CACA4
+ .4byte _080CACB8
+ .4byte _080CACB8
+ .4byte _080CACB8
+ .4byte _080CACD0
+_080CACA4:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r0, =0x00000cee
+ adds r1, r0
+ b _080CACC0
+ .pool
+_080CACB8:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r2, =0x000021e0
+ adds r1, r2
+_080CACC0:
+ movs r0, 0
+ bl sub_81AFC0C
+ b _080CAD30
+ .pool
+_080CACD0:
+ bl sub_80D127C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CACF4
+ ldr r0, =gUnknown_02039D08
+ ldr r4, [r0]
+ ldr r0, =0x000021eb
+ adds r4, r0
+ bl sub_80D12B8
+ adds r1, r0, 0
+ adds r0, r4, 0
+ b _080CAD00
+ .pool
+_080CACF4:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r2, =0x000021eb
+ adds r0, r1, r2
+ ldr r2, =0x00000d65
+ adds r1, r2
+_080CAD00:
+ bl StringCopy
+ adds r2, r0, 0
+ b _080CAD16
+ .pool
+_080CAD14:
+ adds r2, r1, 0
+_080CAD16:
+ subs r1, r2, 0x1
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080CAD14
+ movs r0, 0xFF
+ strb r0, [r2]
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r0, =0x000021eb
+ adds r1, r0
+ movs r0, 0
+ bl sub_81AFC0C
+_080CAD30:
+ ldr r5, =gUnknown_02039D08
+ ldr r0, [r5]
+ ldr r4, =0x00002190
+ adds r0, r4
+ ldr r2, =gUnknown_0857276C
+ lsls r1, r6, 3
+ adds r1, r2
+ ldr r1, [r1]
+ bl sub_81AFC28
+ movs r0, 0x1
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r2, [r5]
+ adds r2, r4
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0xE
+ bl sub_8098858
+ movs r0, 0x1
+ bl PutWindowTilemap
+ movs r0, 0x1
+ movs r1, 0x2
+ bl CopyWindowToVram
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CAC58
+
+ thumb_func_start sub_80CAD9C
+sub_80CAD9C: @ 80CAD9C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_08572864
+ movs r1, 0xB
+ movs r2, 0xE
+ movs r3, 0
+ bl CreateYesNoMenu
+ lsls r4, 24
+ asrs r4, 24
+ adds r0, r4, 0
+ bl MoveMenuCursorNoWrapAround
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CAD9C
+
+ thumb_func_start sub_80CADC4
+sub_80CADC4: @ 80CADC4
+ push {lr}
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_8198070
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CADC4
+
+ thumb_func_start sub_80CADD8
+sub_80CADD8: @ 80CADD8
+ push {lr}
+ bl sub_80CFEF0
+ movs r0, 0x12
+ bl sub_80CFF34
+ movs r0, 0x13
+ bl sub_80CFF34
+ movs r0, 0x14
+ bl sub_80CFF34
+ movs r0, 0x15
+ bl sub_80CFF34
+ bl sub_80D2494
+ cmp r0, 0
+ beq _080CAE04
+ movs r0, 0x16
+ bl sub_80CFF34
+_080CAE04:
+ bl sub_80CFFD0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CADD8
+
+ thumb_func_start sub_80CAE0C
+sub_80CAE0C: @ 80CAE0C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_80CFEF0
+ cmp r4, 0x1
+ beq _080CAE4A
+ cmp r4, 0x1
+ bgt _080CAE26
+ cmp r4, 0
+ beq _080CAE30
+ b _080CAE96
+_080CAE26:
+ cmp r5, 0x2
+ beq _080CAE64
+ cmp r5, 0x3
+ beq _080CAE7E
+ b _080CAE96
+_080CAE30:
+ movs r0, 0x17
+ bl sub_80CFF34
+ movs r0, 0x18
+ bl sub_80CFF34
+ movs r0, 0x19
+ bl sub_80CFF34
+ movs r0, 0x1A
+ bl sub_80CFF34
+ b _080CAE96
+_080CAE4A:
+ movs r0, 0x1B
+ bl sub_80CFF34
+ movs r0, 0x1C
+ bl sub_80CFF34
+ movs r0, 0x1D
+ bl sub_80CFF34
+ movs r0, 0x1E
+ bl sub_80CFF34
+ b _080CAE96
+_080CAE64:
+ movs r0, 0x1F
+ bl sub_80CFF34
+ movs r0, 0x20
+ bl sub_80CFF34
+ movs r0, 0x21
+ bl sub_80CFF34
+ movs r0, 0x22
+ bl sub_80CFF34
+ b _080CAE96
+_080CAE7E:
+ movs r0, 0x23
+ bl sub_80CFF34
+ movs r0, 0x24
+ bl sub_80CFF34
+ movs r0, 0x25
+ bl sub_80CFF34
+ movs r0, 0x26
+ bl sub_80CFF34
+_080CAE96:
+ bl sub_80CFFD0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CAE0C
+
+ thumb_func_start sub_80CAEA0
+sub_80CAEA0: @ 80CAEA0
+ ldr r0, =gUnknown_02039D0D
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_80CAEA0
+
+ thumb_func_start sub_80CAEAC
+sub_80CAEAC: @ 80CAEAC
+ push {lr}
+ bl sub_80CEADC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CAEE8
+ ldr r0, =gUnknown_02039D0C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080CAED8
+ bl sub_80CFE08
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x1
+ bl sub_80D0D8C
+ b _080CAEE8
+ .pool
+_080CAED8:
+ bl sub_80CFE08
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_80D0D8C
+_080CAEE8:
+ ldr r1, =gUnknown_02039D12
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _080CAEFA
+ bl sub_80D0F38
+ movs r0, 0x3
+ bl sub_80CFE54
+_080CAEFA:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CAEAC
+
+ thumb_func_start sub_80CAF04
+sub_80CAF04: @ 80CAF04
+ push {r4-r6,lr}
+ bl sub_80D2F04
+ movs r2, 0
+ ldr r3, =gUnknown_02039D08
+ ldr r5, =0x00000b08
+ movs r4, 0
+ adds r6, r3, 0
+_080CAF14:
+ ldr r0, [r3]
+ lsls r1, r2, 1
+ adds r0, r5
+ adds r0, r1
+ strh r4, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x27
+ bls _080CAF14
+ movs r2, 0
+ ldr r5, =gUnknown_02039D08
+ ldr r4, =0x00000b58
+ movs r3, 0
+_080CAF30:
+ ldr r0, [r5]
+ lsls r1, r2, 1
+ adds r0, r4
+ adds r0, r1
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x27
+ bls _080CAF30
+ movs r2, 0
+ ldr r5, =gUnknown_02039D08
+ movs r4, 0xA7
+ lsls r4, 4
+ movs r3, 0
+_080CAF4E:
+ ldr r0, [r5]
+ lsls r1, r2, 2
+ adds r0, r4
+ adds r0, r1
+ str r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080CAF4E
+ movs r2, 0
+ ldr r5, =gUnknown_02039D08
+ ldr r4, =0x00000a88
+ movs r3, 0
+_080CAF6A:
+ ldr r0, [r5]
+ lsls r1, r2, 2
+ adds r0, r4
+ adds r0, r1
+ str r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1D
+ bls _080CAF6A
+ ldr r0, [r6]
+ ldr r2, =0x00000a6c
+ adds r1, r0, r2
+ movs r2, 0
+ str r2, [r1]
+ ldr r1, =0x0000078c
+ adds r0, r1
+ strh r2, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CAF04
+
+ thumb_func_start sub_80CAFAC
+sub_80CAFAC: @ 80CAFAC
+ push {lr}
+ bl sub_80CEB24
+ lsls r0, 24
+ movs r1, 0x1
+ cmp r0, 0
+ beq _080CAFBC
+ movs r1, 0x2
+_080CAFBC:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CAFAC
+
+ thumb_func_start sub_80CAFC4
+sub_80CAFC4: @ 80CAFC4
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r5, =gUnknown_02039D08
+ ldr r0, [r5]
+ ldr r4, =0x000020a4
+ adds r0, r4
+ movs r1, 0
+ bl GetMonData
+ adds r6, r0, 0
+ ldr r0, [r5]
+ adds r0, r4
+ movs r1, 0x41
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl sub_80CAFAC
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0x7
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80CC230
+ ldr r1, [r5]
+ ldr r2, =0x00000a6c
+ adds r1, r2
+ str r0, [r1]
+ ldr r1, =sub_80CC100
+ str r1, [r0, 0x1C]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CAFC4
+
+ thumb_func_start sub_80CB028
+sub_80CB028: @ 80CB028
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r0, 0
+ mov r8, r0
+ movs r6, 0
+ movs r7, 0
+_080CB042:
+ movs r5, 0
+ adds r1, r7, 0x1
+ mov r10, r1
+_080CB048:
+ mov r0, r9
+ adds r1, r6, 0
+ movs r2, 0x41
+ bl GetBoxMonDataFromAnyBox
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _080CB0B0
+ mov r0, r9
+ adds r1, r6, 0
+ movs r2, 0
+ bl GetBoxMonDataFromAnyBox
+ adds r1, r0, 0
+ lsls r2, r5, 1
+ adds r2, r5
+ lsls r2, 19
+ movs r3, 0xC8
+ lsls r3, 15
+ adds r2, r3
+ asrs r2, 16
+ lsls r3, r7, 1
+ adds r3, r7
+ lsls r3, 19
+ movs r0, 0xB0
+ lsls r0, 14
+ adds r3, r0
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0x13
+ subs r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ asrs r3, 16
+ bl sub_80CC230
+ ldr r1, =gUnknown_02039D08
+ ldr r1, [r1]
+ mov r3, r8
+ lsls r2, r3, 2
+ ldr r3, =0x00000a88
+ adds r1, r3
+ adds r1, r2
+ str r0, [r1]
+ b _080CB0C0
+ .pool
+_080CB0B0:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ mov r2, r8
+ lsls r1, r2, 2
+ ldr r3, =0x00000a88
+ adds r0, r3
+ adds r0, r1
+ str r4, [r0]
+_080CB0C0:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _080CB048
+ mov r1, r10
+ lsls r0, r1, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x4
+ bls _080CB042
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x3
+ bne _080CB126
+ movs r6, 0
+ movs r2, 0xD
+ negs r2, r2
+ adds r4, r2, 0
+_080CB0F6:
+ mov r0, r9
+ adds r1, r6, 0
+ movs r2, 0xC
+ bl GetBoxMonDataFromAnyBox
+ cmp r0, 0
+ bne _080CB11C
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ ldr r3, =0x00000a88
+ adds r0, r3
+ adds r0, r1
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x1]
+ ands r0, r4
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+_080CB11C:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x1D
+ bls _080CB0F6
+_080CB126:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CB028
+
+ thumb_func_start sub_80CB140
+sub_80CB140: @ 80CB140
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r7, 0
+ movs r1, 0x41
+ bl GetBoxMonDataFromSelectedBox
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0
+ beq _080CB1DA
+ adds r0, r7, 0
+ movs r1, 0x6
+ bl __umodsi3
+ adds r6, r0, 0
+ lsls r0, r6, 24
+ lsrs r0, 24
+ lsls r5, r0, 1
+ adds r5, r0
+ lsls r5, 19
+ movs r0, 0xC8
+ lsls r0, 15
+ adds r5, r0
+ lsrs r5, 16
+ adds r0, r7, 0
+ movs r1, 0x6
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 1
+ adds r4, r0
+ lsls r4, 19
+ movs r0, 0xB0
+ lsls r0, 14
+ adds r4, r0
+ lsrs r4, 16
+ adds r0, r7, 0
+ movs r1, 0
+ bl GetBoxMonDataFromSelectedBox
+ adds r1, r0, 0
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0x13
+ subs r0, r6
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ mov r0, r8
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_80CC230
+ adds r3, r0, 0
+ ldr r0, =gUnknown_02039D08
+ ldr r2, [r0]
+ lsls r1, r7, 2
+ ldr r4, =0x00000a88
+ adds r0, r2, r4
+ adds r0, r1
+ str r3, [r0]
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x3
+ bne _080CB1DA
+ ldrb r0, [r3, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r3, 0x1]
+_080CB1DA:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CB140
+
+ thumb_func_start sub_80CB1F0
+sub_80CB1F0: @ 80CB1F0
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r7, =gUnknown_02039D08
+ ldr r6, =0x00000a88
+ movs r5, 0x1
+ ldr r4, =sub_80CB278
+_080CB200:
+ ldr r0, [r7]
+ lsls r1, r2, 2
+ adds r0, r6
+ adds r1, r0, r1
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _080CB218
+ strh r3, [r0, 0x32]
+ ldr r0, [r1]
+ strh r5, [r0, 0x36]
+ ldr r0, [r1]
+ str r4, [r0, 0x1C]
+_080CB218:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1D
+ bls _080CB200
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CB1F0
+
+ thumb_func_start sub_80CB234
+sub_80CB234: @ 80CB234
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x30]
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080CB250
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ b _080CB266
+_080CB250:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r3, =0x00000c66
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrh r0, [r2, 0x34]
+ strh r0, [r2, 0x20]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_080CB266:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CB234
+
+ thumb_func_start sub_80CB278
+sub_80CB278: @ 80CB278
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x36]
+ movs r3, 0x36
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080CB28C
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x36]
+ b _080CB2A8
+_080CB28C:
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x38]
+ subs r0, 0x45
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xB6
+ bls _080CB2A8
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_080CB2A8:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CB278
+
+ thumb_func_start sub_80CB2B0
+sub_80CB2B0: @ 80CB2B0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ ldr r7, =gUnknown_02039D08
+_080CB2BA:
+ ldr r0, [r7]
+ lsls r4, r5, 2
+ ldr r1, =0x00000a88
+ adds r0, r1
+ adds r0, r4
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080CB2DA
+ bl sub_80CC314
+ ldr r0, [r7]
+ ldr r1, =0x00000a88
+ adds r0, r1
+ adds r0, r4
+ movs r1, 0
+ str r1, [r0]
+_080CB2DA:
+ adds r0, r5, 0x6
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x4
+ bls _080CB2BA
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CB2B0
+
+ thumb_func_start sub_80CB2F8
+sub_80CB2F8: @ 80CB2F8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x8]
+ lsls r2, 16
+ movs r1, 0x2C
+ mov r8, r1
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 19
+ movs r3, 0xC8
+ lsls r3, 15
+ adds r1, r3
+ lsrs r1, 16
+ str r1, [sp, 0x10]
+ ldr r1, [sp, 0x8]
+ adds r1, 0x1
+ lsrs r6, r2, 16
+ str r6, [sp, 0xC]
+ asrs r2, 16
+ muls r1, r2
+ ldr r2, [sp, 0x10]
+ subs r1, r2, r1
+ lsls r1, 16
+ lsrs r2, r1, 16
+ movs r1, 0x13
+ subs r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x14]
+ movs r3, 0
+ mov r9, r3
+ adds r5, r0, 0
+ ldr r1, =gUnknown_02039D08
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x3
+ beq _080CB3F0
+ movs r7, 0x4
+ lsls r2, 16
+ mov r10, r2
+_080CB358:
+ ldr r6, =gUnknown_02039D08
+ ldr r2, [r6]
+ lsls r0, r5, 1
+ ldr r3, =0x00000ba8
+ adds r1, r2, r3
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _080CB3C2
+ lsls r4, r5, 2
+ ldr r6, =0x00000be4
+ adds r1, r2, r6
+ adds r1, r4
+ ldr r1, [r1]
+ mov r2, r8
+ lsls r3, r2, 16
+ asrs r3, 16
+ movs r2, 0x2
+ str r2, [sp]
+ ldr r6, [sp, 0x14]
+ str r6, [sp, 0x4]
+ mov r6, r10
+ asrs r2, r6, 16
+ bl sub_80CC230
+ adds r2, r0, 0
+ ldr r1, =gUnknown_02039D08
+ ldr r0, [r1]
+ ldr r3, =0x00000a88
+ adds r0, r3
+ adds r1, r0, r4
+ str r2, [r1]
+ cmp r2, 0
+ beq _080CB3C2
+ mov r6, sp
+ ldrh r6, [r6, 0x8]
+ strh r6, [r2, 0x30]
+ ldr r0, [r1]
+ mov r2, sp
+ ldrh r2, [r2, 0xC]
+ strh r2, [r0, 0x32]
+ ldr r0, [r1]
+ mov r3, sp
+ ldrh r3, [r3, 0x10]
+ strh r3, [r0, 0x34]
+ ldr r1, [r1]
+ ldr r0, =sub_80CB234
+ str r0, [r1, 0x1C]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080CB3C2:
+ adds r0, r5, 0x6
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r8
+ adds r0, 0x18
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ subs r7, 0x1
+ cmp r7, 0
+ bge _080CB358
+ b _080CB4A6
+ .pool
+_080CB3F0:
+ mov r10, r1
+ movs r7, 0x4
+ lsls r2, 16
+ str r2, [sp, 0x18]
+_080CB3F8:
+ mov r6, r10
+ ldr r2, [r6]
+ lsls r0, r5, 1
+ ldr r3, =0x00000ba8
+ adds r1, r2, r3
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _080CB490
+ lsls r4, r5, 2
+ ldr r6, =0x00000be4
+ adds r1, r2, r6
+ adds r1, r4
+ ldr r1, [r1]
+ mov r2, r8
+ lsls r3, r2, 16
+ asrs r3, 16
+ movs r2, 0x2
+ str r2, [sp]
+ ldr r6, [sp, 0x14]
+ str r6, [sp, 0x4]
+ ldr r6, [sp, 0x18]
+ asrs r2, r6, 16
+ bl sub_80CC230
+ adds r2, r0, 0
+ mov r0, r10
+ ldr r3, [r0]
+ ldr r1, =0x00000a88
+ adds r0, r3, r1
+ adds r1, r0, r4
+ str r2, [r1]
+ cmp r2, 0
+ beq _080CB490
+ mov r6, sp
+ ldrh r6, [r6, 0x8]
+ strh r6, [r2, 0x30]
+ ldr r0, [r1]
+ mov r2, sp
+ ldrh r2, [r2, 0xC]
+ strh r2, [r0, 0x32]
+ ldr r0, [r1]
+ mov r6, sp
+ ldrh r6, [r6, 0x10]
+ strh r6, [r0, 0x34]
+ ldr r1, [r1]
+ ldr r0, =sub_80CB234
+ str r0, [r1, 0x1C]
+ ldr r1, =0x00000c5c
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ adds r1, r5, 0
+ movs r2, 0xC
+ bl GetBoxMonDataFromAnyBox
+ cmp r0, 0
+ bne _080CB486
+ mov r2, r10
+ ldr r0, [r2]
+ ldr r3, =0x00000a88
+ adds r0, r3
+ adds r0, r4
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x1]
+ movs r6, 0xD
+ negs r6, r6
+ adds r0, r6, 0
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r2, 0x1]
+_080CB486:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080CB490:
+ adds r0, r5, 0x6
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r8
+ adds r0, 0x18
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ subs r7, 0x1
+ cmp r7, 0
+ bge _080CB3F8
+_080CB4A6:
+ mov r0, r9
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80CB2F8
+
+ thumb_func_start sub_80CB4CC
+sub_80CB4CC: @ 80CB4CC
+ push {r4-r7,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r6, =gUnknown_02039D08
+ ldr r1, [r6]
+ ldr r2, =0x00000c6a
+ adds r1, r2
+ movs r5, 0
+ strb r5, [r1]
+ ldr r1, [r6]
+ ldr r3, =0x00000c6b
+ adds r1, r3
+ strb r0, [r1]
+ ldr r1, [r6]
+ ldr r7, =0x00000c69
+ adds r1, r7
+ strb r4, [r1]
+ ldr r3, [r6]
+ movs r1, 0xC6
+ lsls r1, 4
+ adds r2, r3, r1
+ movs r1, 0x20
+ strh r1, [r2]
+ lsls r4, 24
+ asrs r4, 24
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 1
+ negs r1, r1
+ subs r7, 0x5
+ adds r2, r3, r7
+ strh r1, [r2]
+ ldr r1, =0x00000c66
+ adds r3, r1
+ strh r5, [r3]
+ bl sub_80CB6F0
+ cmp r4, 0
+ ble _080CB544
+ ldr r0, [r6]
+ ldr r2, =0x00000c68
+ adds r0, r2
+ movs r1, 0
+ b _080CB54C
+ .pool
+_080CB544:
+ ldr r0, [r6]
+ ldr r3, =0x00000c68
+ adds r0, r3
+ movs r1, 0x5
+_080CB54C:
+ strb r1, [r0]
+ ldr r0, =gUnknown_02039D08
+ ldr r2, [r0]
+ ldr r7, =0x00000c68
+ adds r0, r2, r7
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x64
+ ldr r3, =0x00000c62
+ adds r1, r2, r3
+ strh r0, [r1]
+ subs r7, 0x4
+ adds r2, r7
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ bl sub_80CB1F0
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CB4CC
+
+ thumb_func_start sub_80CB584
+sub_80CB584: @ 80CB584
+ push {r4-r6,lr}
+ ldr r5, =gUnknown_02039D08
+ ldr r0, [r5]
+ movs r4, 0xC6
+ lsls r4, 4
+ adds r1, r0, r4
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _080CB59A
+ subs r0, 0x1
+ strh r0, [r1]
+_080CB59A:
+ ldr r3, [r5]
+ ldr r6, =0x00000c6a
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080CB61C
+ cmp r0, 0x1
+ bgt _080CB5B8
+ cmp r0, 0
+ beq _080CB5C0
+ b _080CB6DE
+ .pool
+_080CB5B8:
+ cmp r0, 0x2
+ bne _080CB5BE
+ b _080CB6CC
+_080CB5BE:
+ b _080CB6DE
+_080CB5C0:
+ ldr r0, =0x00000c62
+ adds r1, r3, r0
+ ldr r2, =0x00000c64
+ adds r0, r3, r2
+ ldrh r0, [r0]
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ subs r0, 0x41
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xBA
+ bhi _080CB5DC
+ b _080CB6E8
+_080CB5DC:
+ ldr r1, =0x00000c68
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ bl sub_80CB2B0
+ ldr r2, [r5]
+ ldr r0, =0x00000c62
+ adds r3, r2, r0
+ ldr r1, =0x00000c69
+ adds r0, r2, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ ldrh r1, [r3]
+ adds r0, r1
+ strh r0, [r3]
+ adds r2, r6
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ b _080CB6E8
+ .pool
+_080CB61C:
+ ldr r2, =0x00000c62
+ adds r1, r3, r2
+ ldr r6, =0x00000c64
+ adds r2, r3, r6
+ ldrh r0, [r2]
+ ldrh r6, [r1]
+ adds r0, r6
+ strh r0, [r1]
+ ldr r6, =0x00000c68
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ adds r1, r3, r4
+ ldrh r1, [r1]
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ bl sub_80CB2F8
+ ldr r2, [r5]
+ ldr r3, =0x00000c66
+ adds r1, r2, r3
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r3, [r1]
+ adds r0, r3
+ strh r0, [r1]
+ ldr r1, =0x00000c69
+ adds r0, r2, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ cmp r1, 0
+ ble _080CB662
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ beq _080CB66E
+_080CB662:
+ cmp r1, 0
+ bge _080CB69C
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080CB69C
+_080CB66E:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r2, =0x00000c6a
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080CB6E8
+ .pool
+_080CB69C:
+ ldr r3, =gUnknown_02039D08
+ ldr r0, [r3]
+ ldr r6, =0x00000c68
+ adds r1, r0, r6
+ ldr r2, =0x00000c69
+ adds r0, r2
+ ldrb r0, [r0]
+ ldrb r6, [r1]
+ adds r0, r6
+ movs r2, 0
+ strb r0, [r1]
+ ldr r0, [r3]
+ ldr r1, =0x00000c6a
+ adds r0, r1
+ strb r2, [r0]
+ b _080CB6E8
+ .pool
+_080CB6CC:
+ ldr r2, =0x00000c66
+ adds r0, r3, r2
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080CB6E8
+ adds r1, r3, r4
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080CB6DE:
+ movs r0, 0
+ b _080CB6EA
+ .pool
+_080CB6E8:
+ movs r0, 0x1
+_080CB6EA:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CB584
+
+ thumb_func_start sub_80CB6F0
+sub_80CB6F0: @ 80CB6F0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ movs r0, 0
+ ldr r1, =gUnknown_02039D08
+ mov r9, r1
+_080CB704:
+ adds r0, 0x1
+ mov r8, r0
+ movs r7, 0x5
+_080CB70A:
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x41
+ bl GetBoxMonDataFromAnyBox
+ mov r2, r9
+ ldr r1, [r2]
+ lsls r2, r5, 1
+ ldr r3, =0x00000ba8
+ adds r1, r3
+ adds r1, r2
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080CB744
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl GetBoxMonDataFromAnyBox
+ mov r2, r9
+ ldr r1, [r2]
+ lsls r2, r5, 2
+ ldr r3, =0x00000be4
+ adds r1, r3
+ adds r1, r2
+ str r0, [r1]
+_080CB744:
+ adds r5, 0x1
+ subs r7, 0x1
+ cmp r7, 0
+ bge _080CB70A
+ mov r0, r8
+ cmp r0, 0x4
+ ble _080CB704
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00000c5c
+ adds r0, r1
+ strb r6, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CB6F0
+
+ thumb_func_start sub_80CB778
+sub_80CB778: @ 80CB778
+ push {r4,r5,lr}
+ lsls r0, 24
+ ldr r5, =gUnknown_02039D08
+ ldr r1, [r5]
+ lsrs r4, r0, 22
+ ldr r0, =0x00000a88
+ adds r1, r0
+ adds r1, r4
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _080CB79E
+ bl sub_80CC314
+ ldr r0, [r5]
+ ldr r1, =0x00000a88
+ adds r0, r1
+ adds r0, r4
+ movs r1, 0
+ str r1, [r0]
+_080CB79E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CB778
+
+ thumb_func_start sub_80CB7AC
+sub_80CB7AC: @ 80CB7AC
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r2, r1, 24
+ ldr r1, =gUnknown_02039D08
+ ldr r1, [r1]
+ lsrs r0, 22
+ ldr r3, =0x00000a88
+ adds r1, r3
+ adds r1, r0
+ ldr r3, [r1]
+ cmp r3, 0
+ beq _080CB7DA
+ movs r0, 0x3
+ adds r1, r2, 0
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x1]
+_080CB7DA:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CB7AC
+
+ thumb_func_start sub_80CB7E8
+sub_80CB7E8: @ 80CB7E8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r4, =gPlayerParty
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r1, r0, 0
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xC
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r2, 0x68
+ movs r3, 0x40
+ bl sub_80CC230
+ ldr r1, =gUnknown_02039D08
+ ldr r1, [r1]
+ movs r2, 0xA7
+ lsls r2, 4
+ adds r1, r2
+ str r0, [r1]
+ movs r7, 0x1
+ movs r6, 0x1
+_080CB830:
+ movs r0, 0x64
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _080CB894
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r1, r0, 0
+ subs r0, r6, 0x1
+ lsls r3, r0, 1
+ adds r3, r0
+ lsls r3, 19
+ movs r0, 0x80
+ lsls r0, 13
+ adds r3, r0
+ asrs r3, 16
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xC
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r2, 0x98
+ bl sub_80CC230
+ ldr r1, =gUnknown_02039D08
+ ldr r1, [r1]
+ lsls r2, r6, 2
+ movs r3, 0xA7
+ lsls r3, 4
+ adds r1, r3
+ adds r1, r2
+ str r0, [r1]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ b _080CB8A4
+ .pool
+_080CB894:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ movs r2, 0xA7
+ lsls r2, 4
+ adds r0, r2
+ adds r0, r1
+ str r5, [r0]
+_080CB8A4:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _080CB830
+ ldr r3, =gUnknown_02039D08
+ mov r0, r8
+ cmp r0, 0
+ bne _080CB8EA
+ movs r6, 0
+ cmp r6, r7
+ bcs _080CB8EA
+ mov r12, r3
+ movs r5, 0xA7
+ lsls r5, 4
+ movs r4, 0x4
+_080CB8C4:
+ mov r2, r12
+ ldr r1, [r2]
+ lsls r0, r6, 2
+ adds r1, r5
+ adds r1, r0
+ ldr r2, [r1]
+ ldrh r0, [r2, 0x22]
+ subs r0, 0xA0
+ strh r0, [r2, 0x22]
+ ldr r1, [r1]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r4
+ strb r0, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r7
+ bcc _080CB8C4
+_080CB8EA:
+ ldr r0, [r3]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x3
+ bne _080CB93C
+ movs r6, 0
+ adds r7, r3, 0
+ movs r5, 0xA7
+ lsls r5, 4
+_080CB8FA:
+ ldr r0, [r7]
+ lsls r4, r6, 2
+ adds r0, r5
+ adds r0, r4
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080CB932
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ cmp r0, 0
+ bne _080CB932
+ ldr r0, [r7]
+ adds r0, r5
+ adds r0, r4
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x1]
+ movs r3, 0xD
+ negs r3, r3
+ adds r0, r3, 0
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r2, 0x1]
+_080CB932:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _080CB8FA
+_080CB93C:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CB7E8
+
+ thumb_func_start sub_80CB950
+sub_80CB950: @ 80CB950
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r2, =0x00000c5e
+ adds r1, r2
+ movs r2, 0
+ strb r2, [r1]
+ movs r5, 0
+ movs r6, 0
+ adds r3, r0, 0
+ movs r7, 0xA7
+ lsls r7, 4
+_080CB96A:
+ ldr r0, [r3]
+ lsls r4, r5, 2
+ adds r0, r7
+ adds r0, r4
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080CB9A0
+ cmp r5, r6
+ beq _080CB99A
+ adds r1, r6, 0
+ str r3, [sp]
+ bl sub_80CB9D0
+ ldr r3, [sp]
+ ldr r2, [r3]
+ adds r0, r2, r7
+ adds r0, r4
+ movs r1, 0
+ str r1, [r0]
+ ldr r0, =0x00000c5e
+ adds r2, r0
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+_080CB99A:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080CB9A0:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _080CB96A
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CB950
+
+ thumb_func_start sub_80CB9BC
+sub_80CB9BC: @ 80CB9BC
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00000c5e
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_80CB9BC
+
+ thumb_func_start sub_80CB9D0
+sub_80CB9D0: @ 80CB9D0
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ strh r1, [r2, 0x30]
+ cmp r1, 0
+ bne _080CB9E4
+ movs r3, 0x68
+ movs r4, 0x40
+ b _080CB9F6
+_080CB9E4:
+ movs r3, 0x98
+ subs r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 19
+ movs r1, 0x80
+ lsls r1, 13
+ adds r0, r1
+ lsrs r4, r0, 16
+_080CB9F6:
+ ldrh r0, [r2, 0x20]
+ lsls r0, 3
+ strh r0, [r2, 0x32]
+ ldrh r0, [r2, 0x22]
+ lsls r0, 3
+ strh r0, [r2, 0x34]
+ lsls r1, r3, 3
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ subs r0, r1, r0
+ cmp r0, 0
+ bge _080CBA10
+ adds r0, 0x7
+_080CBA10:
+ asrs r0, 3
+ strh r0, [r2, 0x36]
+ lsls r0, r4, 16
+ asrs r0, 13
+ movs r3, 0x34
+ ldrsh r1, [r2, r3]
+ subs r0, r1
+ cmp r0, 0
+ bge _080CBA24
+ adds r0, 0x7
+_080CBA24:
+ asrs r0, 3
+ strh r0, [r2, 0x38]
+ movs r0, 0x8
+ strh r0, [r2, 0x3A]
+ ldr r0, =sub_80CBA3C
+ str r0, [r2, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CB9D0
+
+ thumb_func_start sub_80CBA3C
+sub_80CBA3C: @ 80CBA3C
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x3A]
+ movs r1, 0x3A
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _080CBA6C
+ ldrh r0, [r3, 0x36]
+ ldrh r4, [r3, 0x32]
+ adds r0, r4
+ strh r0, [r3, 0x32]
+ ldrh r1, [r3, 0x38]
+ ldrh r4, [r3, 0x34]
+ adds r1, r4
+ strh r1, [r3, 0x34]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r3, 0x20]
+ lsls r1, 16
+ asrs r1, 19
+ strh r1, [r3, 0x22]
+ subs r0, r2, 0x1
+ strh r0, [r3, 0x3A]
+ b _080CBAB2
+_080CBA6C:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080CBA7C
+ movs r0, 0x68
+ strh r0, [r3, 0x20]
+ movs r0, 0x40
+ b _080CBA8E
+_080CBA7C:
+ movs r0, 0x98
+ strh r0, [r3, 0x20]
+ movs r4, 0x30
+ ldrsh r1, [r3, r4]
+ subs r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x10
+_080CBA8E:
+ strh r0, [r3, 0x22]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r3, 0x1C]
+ ldr r0, =gUnknown_02039D08
+ ldr r2, [r0]
+ movs r0, 0x30
+ ldrsh r1, [r3, r0]
+ lsls r1, 2
+ movs r4, 0xA7
+ lsls r4, 4
+ adds r0, r2, r4
+ adds r0, r1
+ str r3, [r0]
+ ldr r0, =0x00000c5e
+ adds r2, r0
+ ldrb r0, [r2]
+ subs r0, 0x1
+ strb r0, [r2]
+_080CBAB2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CBA3C
+
+ thumb_func_start sub_80CBAC4
+sub_80CBAC4: @ 80CBAC4
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldr r1, =0x00000a6c
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080CBAE2
+ bl sub_80CC314
+ ldr r0, [r4]
+ ldr r1, =0x00000a6c
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+_080CBAE2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CBAC4
+
+ thumb_func_start sub_80CBAF0
+sub_80CBAF0: @ 80CBAF0
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r6, =gUnknown_02039D08
+ lsls r0, 16
+ asrs r4, r0, 16
+ movs r5, 0x5
+ negs r5, r5
+_080CBAFE:
+ ldr r0, [r6]
+ lsls r1, r3, 2
+ movs r2, 0xA7
+ lsls r2, 4
+ adds r0, r2
+ adds r2, r0, r1
+ ldr r1, [r2]
+ cmp r1, 0
+ beq _080CBB56
+ ldrh r0, [r1, 0x22]
+ adds r0, r4, r0
+ strh r0, [r1, 0x22]
+ ldr r2, [r2]
+ ldrh r1, [r2, 0x26]
+ ldrh r0, [r2, 0x22]
+ adds r1, r0
+ adds r0, r2, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 13
+ adds r0, r1
+ lsrs r0, 16
+ cmp r0, 0xC0
+ bls _080CBB4C
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _080CBB56
+ .pool
+_080CBB4C:
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ strb r0, [r2]
+_080CBB56:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _080CBAFE
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CBAF0
+
+ thumb_func_start sub_80CBB68
+sub_80CBB68: @ 80CBB68
+ push {r4,r5,lr}
+ lsls r0, 24
+ ldr r5, =gUnknown_02039D08
+ ldr r1, [r5]
+ lsrs r4, r0, 22
+ movs r0, 0xA7
+ lsls r0, 4
+ adds r1, r0
+ adds r1, r4
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _080CBB92
+ bl sub_80CC314
+ ldr r0, [r5]
+ movs r1, 0xA7
+ lsls r1, 4
+ adds r0, r1
+ adds r0, r4
+ movs r1, 0
+ str r1, [r0]
+_080CBB92:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CBB68
+
+ thumb_func_start sub_80CBB9C
+sub_80CBB9C: @ 80CBB9C
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r6, =gUnknown_02039D08
+_080CBBA2:
+ ldr r0, [r6]
+ lsls r4, r5, 2
+ movs r1, 0xA7
+ lsls r1, 4
+ adds r0, r1
+ adds r0, r4
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080CBBC6
+ bl sub_80CC314
+ ldr r0, [r6]
+ movs r1, 0xA7
+ lsls r1, 4
+ adds r0, r1
+ adds r0, r4
+ movs r1, 0
+ str r1, [r0]
+_080CBBC6:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _080CBBA2
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CBB9C
+
+ thumb_func_start sub_80CBBDC
+sub_80CBBDC: @ 80CBBDC
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r2, r1, 24
+ ldr r1, =gUnknown_02039D08
+ ldr r1, [r1]
+ lsrs r0, 22
+ movs r3, 0xA7
+ lsls r3, 4
+ adds r1, r3
+ adds r1, r0
+ ldr r3, [r1]
+ cmp r3, 0
+ beq _080CBC0C
+ movs r0, 0x3
+ adds r1, r2, 0
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x1]
+_080CBC0C:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CBBDC
+
+ thumb_func_start sub_80CBC14
+sub_80CBC14: @ 80CBC14
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r5, r1, 0
+ cmp r4, 0
+ bne _080CBC44
+ ldr r3, =gUnknown_02039D08
+ ldr r0, [r3]
+ ldr r5, =0x00000a6c
+ adds r2, r0, r5
+ lsls r1, 2
+ adds r5, 0x4
+ adds r0, r5
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r2]
+ str r4, [r0]
+ b _080CBC60
+ .pool
+_080CBC44:
+ cmp r4, 0x1
+ bne _080CBC96
+ ldr r3, =gUnknown_02039D08
+ ldr r0, [r3]
+ ldr r1, =0x00000a6c
+ adds r2, r0, r1
+ lsls r1, r5, 2
+ ldr r4, =0x00000a88
+ adds r0, r4
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r2]
+ movs r1, 0
+ str r1, [r0]
+_080CBC60:
+ adds r5, r3, 0
+ ldr r0, [r5]
+ ldr r4, =0x00000a6c
+ adds r0, r4
+ ldr r1, [r0]
+ ldr r0, =sub_80CC100
+ str r0, [r1, 0x1C]
+ bl sub_80CAFAC
+ ldr r1, [r5]
+ adds r1, r4
+ ldr r3, [r1]
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ ldr r0, [r5]
+ adds r0, r4
+ ldr r0, [r0]
+ adds r0, 0x43
+ movs r1, 0x7
+ strb r1, [r0]
+_080CBC96:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CBC14
+
+ thumb_func_start sub_80CBCAC
+sub_80CBCAC: @ 80CBCAC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ cmp r0, 0xE
+ bne _080CBCF8
+ ldr r3, =gUnknown_02039D08
+ ldr r1, [r3]
+ lsls r5, r6, 2
+ movs r4, 0xA7
+ lsls r4, 4
+ adds r0, r1, r4
+ adds r0, r5
+ ldr r2, =0x00000a6c
+ adds r1, r2
+ ldr r2, [r1]
+ str r2, [r0]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r3]
+ adds r0, r4
+ adds r0, r5
+ ldr r0, [r0]
+ adds r0, 0x43
+ movs r1, 0xC
+ strb r1, [r0]
+ b _080CBD34
+ .pool
+_080CBCF8:
+ ldr r5, =gUnknown_02039D08
+ ldr r1, [r5]
+ lsls r4, r6, 2
+ ldr r3, =0x00000a88
+ adds r0, r1, r3
+ adds r0, r4
+ ldr r2, =0x00000a6c
+ adds r1, r2
+ ldr r2, [r1]
+ str r2, [r0]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r5]
+ adds r0, r3
+ adds r0, r4
+ ldr r4, [r0]
+ adds r0, r6, 0
+ movs r1, 0x6
+ bl __umodsi3
+ movs r1, 0x13
+ subs r1, r0
+ adds r4, 0x43
+ strb r1, [r4]
+ adds r3, r5, 0
+_080CBD34:
+ ldr r1, [r3]
+ ldr r0, =0x00000a6c
+ adds r1, r0
+ ldr r2, [r1]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+ movs r0, 0
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CBCAC
+
+ thumb_func_start sub_80CBD5C
+sub_80CBD5C: @ 80CBD5C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r0, 0xE
+ bne _080CBD80
+ ldr r3, =gUnknown_02039D08
+ ldr r1, [r3]
+ movs r0, 0xB0
+ lsls r0, 4
+ adds r2, r1, r0
+ lsls r0, r4, 2
+ movs r4, 0xA7
+ lsls r4, 4
+ b _080CBD8E
+ .pool
+_080CBD80:
+ ldr r3, =gUnknown_02039D08
+ ldr r1, [r3]
+ movs r0, 0xB0
+ lsls r0, 4
+ adds r2, r1, r0
+ lsls r0, r4, 2
+ ldr r4, =0x00000a88
+_080CBD8E:
+ adds r0, r4
+ adds r1, r0
+ str r1, [r2]
+ ldr r1, [r3]
+ ldr r2, =0x00000a6c
+ adds r0, r1, r2
+ ldr r2, [r0]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+ ldr r4, =0x00000c5d
+ adds r1, r4
+ movs r0, 0
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CBD5C
+
+ thumb_func_start sub_80CBDC4
+sub_80CBDC4: @ 80CBDC4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r6, =gUnknown_02039D08
+ ldr r0, [r6]
+ ldr r1, =0x00000c5d
+ mov r9, r1
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0x10
+ bne _080CBDE8
+ movs r0, 0
+ b _080CBEF4
+ .pool
+_080CBDE8:
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r2, [r6]
+ ldr r5, =0x00000c5d
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CBE18
+ movs r1, 0xB0
+ lsls r1, 4
+ adds r0, r2, r1
+ ldr r0, [r0]
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x22]
+ subs r0, 0x1
+ strh r0, [r1, 0x22]
+ ldr r5, =0x00000a6c
+ adds r0, r2, r5
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x22]
+ adds r0, 0x1
+ strh r0, [r1, 0x22]
+_080CBE18:
+ ldr r3, [r6]
+ movs r7, 0xB0
+ lsls r7, 4
+ adds r4, r3, r7
+ ldr r0, [r4]
+ ldr r0, [r0]
+ mov r8, r0
+ ldr r5, =gSineTable
+ mov r0, r9
+ adds r1, r3, r0
+ ldrb r0, [r1]
+ lsls r0, 4
+ adds r0, r5
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bge _080CBE3C
+ adds r0, 0xF
+_080CBE3C:
+ asrs r0, 4
+ mov r2, r8
+ strh r0, [r2, 0x24]
+ ldr r0, =0x00000a6c
+ mov r8, r0
+ add r3, r8
+ ldr r2, [r3]
+ ldrb r0, [r1]
+ lsls r0, 4
+ adds r0, r5
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r0, 0
+ bge _080CBE5A
+ adds r0, 0xF
+_080CBE5A:
+ asrs r0, 4
+ negs r0, r0
+ strh r0, [r2, 0x24]
+ ldrb r0, [r1]
+ cmp r0, 0x8
+ bne _080CBEBE
+ ldr r3, [r3]
+ ldr r0, [r4]
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ movs r5, 0x3
+ movs r1, 0xC
+ ands r1, r0
+ ldrb r2, [r3, 0x5]
+ movs r4, 0xD
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ ldr r0, [r6]
+ mov r2, r8
+ adds r1, r0, r2
+ ldr r1, [r1]
+ adds r0, r7
+ ldr r0, [r0]
+ ldr r0, [r0]
+ adds r0, 0x43
+ ldrb r0, [r0]
+ adds r1, 0x43
+ strb r0, [r1]
+ bl sub_80CAFAC
+ ldr r1, [r6]
+ adds r1, r7
+ ldr r1, [r1]
+ ldr r1, [r1]
+ ands r5, r0
+ lsls r5, 2
+ ldrb r0, [r1, 0x5]
+ ands r4, r0
+ orrs r4, r5
+ strb r4, [r1, 0x5]
+ ldr r0, [r6]
+ adds r0, r7
+ ldr r0, [r0]
+ ldr r0, [r0]
+ adds r0, 0x43
+ movs r1, 0x7
+ strb r1, [r0]
+_080CBEBE:
+ ldr r1, [r6]
+ mov r5, r9
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0x10
+ bne _080CBEF2
+ mov r0, r8
+ adds r2, r1, r0
+ ldr r3, [r2]
+ adds r1, r7
+ ldr r0, [r1]
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r1]
+ str r3, [r0]
+ ldr r1, [r6]
+ mov r2, r8
+ adds r0, r1, r2
+ ldr r2, [r0]
+ ldr r0, =sub_80CC100
+ str r0, [r2, 0x1C]
+ adds r1, r7
+ ldr r0, [r1]
+ ldr r1, [r0]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r1, 0x1C]
+_080CBEF2:
+ movs r0, 0x1
+_080CBEF4:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80CBDC4
+
+ thumb_func_start sub_80CBF14
+sub_80CBF14: @ 80CBF14
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r0, 0x1
+ beq _080CBF4C
+ cmp r0, 0x1
+ bgt _080CBF2E
+ cmp r0, 0
+ beq _080CBF34
+ b _080CBFC0
+_080CBF2E:
+ cmp r2, 0x2
+ beq _080CBF70
+ b _080CBFC0
+_080CBF34:
+ ldr r3, =gUnknown_02039D08
+ ldr r1, [r3]
+ ldr r0, =0x00000b04
+ adds r2, r1, r0
+ lsls r0, r4, 2
+ movs r4, 0xA7
+ lsls r4, 4
+ b _080CBF58
+ .pool
+_080CBF4C:
+ ldr r3, =gUnknown_02039D08
+ ldr r1, [r3]
+ ldr r0, =0x00000b04
+ adds r2, r1, r0
+ lsls r0, r4, 2
+ ldr r4, =0x00000a88
+_080CBF58:
+ adds r0, r4
+ adds r1, r0
+ str r1, [r2]
+ adds r4, r3, 0
+ b _080CBF80
+ .pool
+_080CBF70:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r3, =0x00000b04
+ adds r2, r1, r3
+ ldr r4, =0x00000a6c
+ adds r1, r4
+ str r1, [r2]
+ adds r4, r0, 0
+_080CBF80:
+ ldr r0, [r4]
+ ldr r1, =0x00000b04
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080CBFC0
+ bl InitSpriteAffineAnim
+ ldr r0, [r4]
+ ldr r3, =0x00000b04
+ adds r0, r3
+ ldr r0, [r0]
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldr r1, [r4]
+ adds r1, r3
+ ldr r0, [r1]
+ ldr r2, [r0]
+ ldr r0, =gUnknown_0857291C
+ str r0, [r2, 0x10]
+ ldr r0, [r1]
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAffineAnim
+_080CBFC0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CBF14
+
+ thumb_func_start sub_80CBFD8
+sub_80CBFD8: @ 80CBFD8
+ push {lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00000b04
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _080CBFF8
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ movs r0, 0x4
+ ands r0, r2
+ cmp r0, 0
+ beq _080CC004
+_080CBFF8:
+ movs r0, 0
+ b _080CC01A
+ .pool
+_080CC004:
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080CC018
+ movs r0, 0x4
+ orrs r0, r2
+ strb r0, [r3]
+_080CC018:
+ movs r0, 0x1
+_080CC01A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CBFD8
+
+ thumb_func_start sub_80CC020
+sub_80CC020: @ 80CC020
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldr r1, =0x00000b04
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080CC056
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldr r0, [r4]
+ ldr r1, =0x00000b04
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl sub_80CC314
+ ldr r0, [r4]
+ ldr r1, =0x00000b04
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0
+ str r0, [r1]
+_080CC056:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CC020
+
+ thumb_func_start sub_80CC064
+sub_80CC064: @ 80CC064
+ push {lr}
+ ldr r3, =gUnknown_02039D08
+ ldr r0, [r3]
+ ldr r1, =0x00000b04
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080CC094
+ adds r2, r0, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, [r3]
+ ldr r1, =0x00000b04
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080CC094:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CC064
+
+ thumb_func_start sub_80CC0A0
+sub_80CC0A0: @ 80CC0A0
+ push {lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00000b04
+ adds r2, r0, r1
+ ldr r0, [r2]
+ cmp r0, 0
+ bne _080CC0BC
+ movs r0, 0
+ b _080CC0D0
+ .pool
+_080CC0BC:
+ ldr r0, [r0]
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080CC0CE
+ movs r0, 0
+ str r0, [r2]
+_080CC0CE:
+ movs r0, 0x1
+_080CC0D0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CC0A0
+
+ thumb_func_start sub_80CC0D4
+sub_80CC0D4: @ 80CC0D4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_02039D08
+ ldr r1, [r1]
+ ldr r2, =0x00000a6c
+ adds r1, r2
+ ldr r3, [r1]
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r3, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x5]
+ bx lr
+ .pool
+ thumb_func_end sub_80CC0D4
+
+ thumb_func_start sub_80CC100
+sub_80CC100: @ 80CC100
+ ldr r1, =gUnknown_02039D08
+ ldr r1, [r1]
+ ldr r2, =0x00000cb4
+ adds r1, r2
+ ldr r2, [r1]
+ ldrh r2, [r2, 0x20]
+ strh r2, [r0, 0x20]
+ ldr r2, [r1]
+ ldrh r1, [r2, 0x26]
+ ldrh r2, [r2, 0x22]
+ adds r1, r2
+ adds r1, 0x4
+ strh r1, [r0, 0x22]
+ bx lr
+ .pool
+ thumb_func_end sub_80CC100
+
+ thumb_func_start sub_80CC124
+sub_80CC124: @ 80CC124
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r4, 0
+ ldr r1, =gUnknown_02039D08
+ ldr r0, [r1]
+ ldr r2, =0x00000b58
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, r3
+ beq _080CC158
+ adds r6, r2, 0
+ ldr r5, =0x00000b58
+_080CC140:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x27
+ bhi _080CC158
+ ldr r0, [r6]
+ lsls r1, r4, 1
+ adds r0, r5
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r3
+ bne _080CC140
+_080CC158:
+ cmp r4, 0x28
+ bne _080CC198
+ movs r4, 0
+ ldr r0, [r2]
+ ldr r5, =0x00000b58
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080CC184
+ adds r6, r2, 0
+_080CC16C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x27
+ bhi _080CC184
+ ldr r0, [r6]
+ lsls r1, r4, 1
+ adds r0, r5
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080CC16C
+_080CC184:
+ cmp r4, 0x28
+ bne _080CC198
+ ldr r0, =0x0000ffff
+ b _080CC1CA
+ .pool
+_080CC198:
+ ldr r1, [r2]
+ lsls r2, r4, 1
+ ldr r5, =0x00000b58
+ adds r0, r1, r5
+ adds r0, r2
+ strh r3, [r0]
+ ldr r0, =0x00000b08
+ adds r1, r0
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r4, 20
+ lsrs r4, 16
+ adds r0, r3, 0
+ movs r1, 0x1
+ bl GetMonIconTiles
+ lsls r1, r4, 5
+ ldr r2, =0x06010000
+ adds r1, r2
+ ldr r2, =0x04000080
+ bl CpuSet
+ adds r0, r4, 0
+_080CC1CA:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80CC124
+
+ thumb_func_start sub_80CC1E0
+sub_80CC1E0: @ 80CC1E0
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r3, 0
+ ldr r6, =gUnknown_02039D08
+_080CC1EA:
+ ldr r1, [r6]
+ lsls r2, r3, 1
+ ldr r4, =0x00000b58
+ adds r0, r1, r4
+ adds r4, r0, r2
+ ldrh r0, [r4]
+ cmp r0, r5
+ bne _080CC220
+ ldr r0, =0x00000b08
+ adds r1, r0
+ adds r1, r2
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ bne _080CC22A
+ strh r0, [r4]
+ b _080CC22A
+ .pool
+_080CC220:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x27
+ bls _080CC1EA
+_080CC22A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CC1E0
+
+ thumb_func_start sub_80CC230
+sub_80CC230: @ 80CC230
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r4, [sp, 0x3C]
+ ldr r5, [sp, 0x40]
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp, 0x18]
+ lsls r3, 16
+ lsrs r3, 16
+ mov r8, r3
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r9, r5
+ mov r2, sp
+ ldr r0, =gUnknown_085728D4
+ ldm r0!, {r3,r5,r7}
+ stm r2!, {r3,r5,r7}
+ ldm r0!, {r3,r5,r7}
+ stm r2!, {r3,r5,r7}
+ adds r0, r6, 0
+ bl mon_icon_convert_unown_species_id
+ mov r10, r0
+ mov r6, r10
+ mov r2, sp
+ ldr r1, =gMonIconPaletteIndices
+ adds r1, r6, r1
+ ldr r3, =0x0000dac0
+ adds r0, r3, 0
+ ldrb r1, [r1]
+ adds r0, r1
+ strh r0, [r2, 0x2]
+ adds r0, r6, 0
+ bl sub_80CC124
+ lsls r0, 16
+ lsrs r0, 16
+ adds r5, r0, 0
+ ldr r0, =0x0000ffff
+ cmp r5, r0
+ beq _080CC302
+ ldr r7, [sp, 0x18]
+ lsls r1, r7, 16
+ asrs r1, 16
+ mov r0, r8
+ lsls r2, r0, 16
+ asrs r2, 16
+ mov r0, sp
+ mov r3, r9
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080CC2FC
+ ldr r1, =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, =0x000003ff
+ ands r2, r5
+ ldrh r3, [r0, 0x4]
+ ldr r1, =0xfffffc00
+ ands r1, r3
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ movs r1, 0x3
+ ands r4, r1
+ lsls r3, r4, 2
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r3
+ strb r1, [r0, 0x5]
+ mov r1, r10
+ strh r1, [r0, 0x2E]
+ b _080CC304
+ .pool
+_080CC2FC:
+ adds r0, r6, 0
+ bl sub_80CC1E0
+_080CC302:
+ movs r0, 0
+_080CC304:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CC230
+
+ thumb_func_start sub_80CC314
+sub_80CC314: @ 80CC314
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ bl sub_80CC1E0
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CC314
+
+ thumb_func_start sub_80CC32C
+sub_80CC32C: @ 80CC32C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =sub_80CC370
+ movs r1, 0x2
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xC]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CC32C
+
+ thumb_func_start sub_80CC35C
+sub_80CC35C: @ 80CC35C
+ push {lr}
+ ldr r0, =sub_80CC370
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80CC35C
+
+ thumb_func_start sub_80CC370
+sub_80CC370: @ 80CC370
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bhi _080CC454
+ lsls r0, 2
+ ldr r1, =_080CC39C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080CC39C:
+ .4byte _080CC3B0
+ .4byte _080CC3E8
+ .4byte _080CC41C
+ .4byte _080CC426
+ .4byte _080CC44C
+_080CC3B0:
+ ldr r1, =gUnknown_02039D08
+ ldr r0, [r1]
+ ldr r2, =0x000002d2
+ adds r0, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r1, [r1]
+ movs r3, 0xB3
+ lsls r3, 2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldr r0, =0x00004ac4
+ adds r1, r0
+ movs r2, 0x80
+ lsls r2, 5
+ movs r0, 0
+ movs r3, 0x1
+ bl RequestDma3Fill
+ strh r0, [r4, 0xA]
+ b _080CC458
+ .pool
+_080CC3E8:
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ bl CheckForSpaceForDma3Request
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080CC45E
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r2, =0x00004ac4
+ adds r1, r2
+ movs r0, 0x2
+ bl SetBgTilemapBuffer
+ movs r0, 0x2
+ bl ShowBg
+ b _080CC458
+ .pool
+_080CC41C:
+ ldrb r0, [r4, 0xC]
+ movs r1, 0
+ bl sub_80CC7A0
+ b _080CC458
+_080CC426:
+ bl sub_80CCA00
+ cmp r0, 0
+ beq _080CC45E
+ ldrb r0, [r4, 0xC]
+ bl sub_80CCB50
+ bl sub_80CD02C
+ ldrb r0, [r4, 0xC]
+ bl sub_80CB028
+ ldr r1, =0x00005b0a
+ movs r0, 0xC
+ bl SetGpuReg
+ b _080CC458
+ .pool
+_080CC44C:
+ adds r0, r2, 0
+ bl DestroyTask
+ b _080CC458
+_080CC454:
+ movs r0, 0
+ b _080CC45C
+_080CC458:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+_080CC45C:
+ strh r0, [r4, 0x8]
+_080CC45E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CC370
+
+ thumb_func_start sub_80CC464
+sub_80CC464: @ 80CC464
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r8, r4
+ adds r0, r4, 0
+ bl sub_80CC644
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r5, =gUnknown_02039D08
+ ldr r2, [r5]
+ lsls r0, r6, 24
+ asrs r3, r0, 24
+ movs r0, 0x6
+ negs r0, r0
+ adds r1, r0, 0
+ cmp r3, 0
+ ble _080CC490
+ movs r1, 0x6
+_080CC490:
+ ldr r7, =0x000002ce
+ adds r0, r2, r7
+ strh r1, [r0]
+ movs r1, 0x2
+ cmp r3, 0
+ ble _080CC49E
+ movs r1, 0x1
+_080CC49E:
+ ldr r7, =0x000002d3
+ adds r0, r2, r7
+ strb r1, [r0]
+ ldr r2, [r5]
+ movs r0, 0xB4
+ lsls r0, 2
+ adds r1, r2, r0
+ movs r0, 0x20
+ strh r0, [r1]
+ movs r1, 0xB5
+ lsls r1, 2
+ adds r0, r2, r1
+ strb r4, [r0]
+ ldr r2, [r5]
+ movs r1, 0
+ cmp r3, 0
+ bgt _080CC4C2
+ movs r1, 0x5
+_080CC4C2:
+ ldr r4, =0x000002d6
+ adds r0, r2, r4
+ strh r1, [r0]
+ movs r7, 0xB6
+ lsls r7, 2
+ adds r0, r2, r7
+ strh r3, [r0]
+ movs r1, 0x38
+ cmp r3, 0
+ ble _080CC4DC
+ movs r0, 0x84
+ lsls r0, 1
+ adds r1, r0, 0
+_080CC4DC:
+ ldr r4, =0x000002da
+ adds r0, r2, r4
+ strh r1, [r0]
+ movs r1, 0
+ cmp r3, 0
+ bgt _080CC4EA
+ movs r1, 0x5
+_080CC4EA:
+ movs r7, 0xB7
+ lsls r7, 2
+ adds r0, r2, r7
+ strh r1, [r0]
+ ldr r0, =0x000002de
+ adds r1, r2, r0
+ movs r0, 0
+ strh r0, [r1]
+ movs r3, 0xB8
+ lsls r3, 2
+ adds r1, r2, r3
+ movs r0, 0x2
+ strh r0, [r1]
+ ldr r4, =0x00000a64
+ adds r0, r2, r4
+ mov r7, r8
+ strb r7, [r0]
+ ldr r0, [r5]
+ ldr r1, =0x00000a65
+ adds r0, r1
+ strb r6, [r0]
+ ldr r0, [r5]
+ ldr r3, =0x00000a63
+ adds r0, r3
+ movs r1, 0
+ strb r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CC464
+
+ thumb_func_start sub_80CC54C
+sub_80CC54C: @ 80CC54C
+ push {r4-r6,lr}
+ ldr r4, =gUnknown_02039D08
+ ldr r1, [r4]
+ ldr r5, =0x00000a63
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080CC594
+ cmp r0, 0x1
+ bgt _080CC570
+ cmp r0, 0
+ beq _080CC576
+ b _080CC624
+ .pool
+_080CC570:
+ cmp r0, 0x2
+ beq _080CC5E4
+ b _080CC624
+_080CC576:
+ ldr r2, =0x00000a64
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ bl sub_80CC7A0
+ ldr r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080CC594:
+ bl sub_80CCA00
+ cmp r0, 0
+ beq _080CC632
+ ldr r6, =gUnknown_02039D08
+ ldr r1, [r6]
+ ldr r4, =0x00000a64
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r5, =0x00000a65
+ adds r1, r5
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ bl sub_80CB4CC
+ ldr r1, [r6]
+ adds r4, r1, r4
+ ldrb r0, [r4]
+ adds r1, r5
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ bl sub_80CCCFC
+ ldr r0, [r6]
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ bl sub_80CD0B8
+ b _080CC624
+ .pool
+_080CC5E4:
+ bl sub_80CB584
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, [r4]
+ movs r4, 0xB4
+ lsls r4, 2
+ adds r3, r2, r4
+ ldrh r0, [r3]
+ cmp r0, 0
+ beq _080CC620
+ movs r0, 0xB3
+ lsls r0, 2
+ adds r1, r2, r0
+ subs r4, 0x2
+ adds r0, r2, r4
+ ldrh r0, [r0]
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ ldrh r0, [r3]
+ subs r0, 0x1
+ strh r0, [r3]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CC632
+ bl sub_80CCEE0
+ bl sub_80CD158
+_080CC620:
+ adds r0, r5, 0
+ b _080CC634
+_080CC624:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r4, =0x00000a63
+ adds r1, r4
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080CC632:
+ movs r0, 0x1
+_080CC634:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80CC54C
+
+ thumb_func_start sub_80CC644
+sub_80CC644: @ 80CC644
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl StorageGetCurrentBox
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0
+ cmp r1, r4
+ beq _080CC66E
+_080CC658:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xD
+ bls _080CC664
+ movs r1, 0
+_080CC664:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r1, r4
+ bne _080CC658
+_080CC66E:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, 0x6
+ bhi _080CC678
+ movs r0, 0x1
+_080CC678:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CC644
+
+ thumb_func_start sub_80CC680
+sub_80CC680: @ 80CC680
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl StorageGetCurrentBox
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ bl sub_80D2120
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00000a62
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CC680
+
+ thumb_func_start sub_80CC6B0
+sub_80CC6B0: @ 80CC6B0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, =gUnknown_02039D08
+ ldr r0, [r1]
+ ldr r2, =0x00000a62
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bhi _080CC794
+ lsls r0, 2
+ ldr r1, =_080CC6DC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080CC6DC:
+ .4byte _080CC6F0
+ .4byte _080CC718
+ .4byte _080CC732
+ .4byte _080CC76C
+ .4byte _080CC790
+_080CC6F0:
+ ldr r0, [r4]
+ movs r1, 0xE7
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, =0x0000ffff
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, [r4]
+ ldr r2, =0x00000a62
+ adds r1, r2
+ b _080CC77E
+ .pool
+_080CC718:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CC794
+ bl StorageGetCurrentBox
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_80CC7A0
+ b _080CC776
+_080CC732:
+ bl sub_80CCA00
+ cmp r0, 0x1
+ bne _080CC794
+ bl sub_80CCF9C
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ movs r1, 0xE7
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, =0x0000ffff
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, [r4]
+ ldr r2, =0x00000a62
+ adds r1, r2
+ b _080CC77E
+ .pool
+_080CC76C:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CC794
+_080CC776:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r0, =0x00000a62
+ adds r1, r0
+_080CC77E:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080CC794
+ .pool
+_080CC790:
+ movs r0, 0
+ b _080CC796
+_080CC794:
+ movs r0, 0x1
+_080CC796:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CC6B0
+
+ thumb_func_start sub_80CC7A0
+sub_80CC7A0: @ 80CC7A0
+ push {r4-r7,lr}
+ sub sp, 0x8
+ ldr r4, =gUnknown_02039D08
+ ldr r2, [r4]
+ ldr r3, =0x000006f9
+ adds r2, r3
+ movs r3, 0
+ strb r3, [r2]
+ ldr r2, [r4]
+ ldr r3, =0x000006fa
+ adds r2, r3
+ strb r0, [r2]
+ ldr r0, [r4]
+ ldr r2, =0x000006fb
+ adds r0, r2
+ strb r1, [r0]
+ ldr r1, [r4]
+ adds r2, r1, r2
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0
+ beq _080CC7E6
+ movs r3, 0
+ ldr r0, =0x000002d2
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _080CC7DA
+ movs r3, 0x1
+_080CC7DA:
+ strb r3, [r2]
+ ldr r0, [r4]
+ ldr r1, =0x00004ac4
+ adds r0, r1
+ bl sub_80CCAE0
+_080CC7E6:
+ ldr r7, =gUnknown_02039D08
+ ldr r0, [r7]
+ ldr r2, =0x000006fa
+ adds r0, r2
+ ldrb r0, [r0]
+ bl sub_80D20F8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x10
+ beq _080CC8C4
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gUnknown_085775B8
+ adds r6, r0, r1
+ ldr r0, [r6, 0x4]
+ ldr r1, [r7]
+ ldr r5, =0x00000792
+ adds r1, r5
+ bl LZ77UnCompWram
+ ldr r0, [r7]
+ adds r5, r0, r5
+ ldr r4, =0x000006fb
+ adds r1, r0, r4
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldr r3, =0x000002d2
+ adds r0, r3
+ ldrb r2, [r0]
+ adds r0, r5, 0
+ bl sub_80CCA3C
+ ldr r1, [r7]
+ adds r4, r1, r4
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0
+ beq _080CC874
+ ldr r0, [r6, 0x8]
+ ldr r2, =0x000002d2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 21
+ movs r3, 0x80
+ lsls r3, 15
+ adds r1, r3
+ lsrs r1, 16
+ movs r2, 0x40
+ bl LoadPalette
+ b _080CC888
+ .pool
+_080CC874:
+ ldr r0, [r6, 0x8]
+ ldr r2, =0x000002d2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 6
+ ldr r2, =gPlttBufferUnfaded + 0x80
+ adds r1, r2
+ movs r2, 0x20
+ bl CpuSet
+_080CC888:
+ ldr r0, [r6]
+ mov r1, sp
+ bl malloc_and_decompress
+ adds r1, r0, 0
+ ldr r0, =gUnknown_02039D08
+ ldr r3, [r0]
+ ldr r2, =0x00000a68
+ adds r0, r3, r2
+ str r1, [r0]
+ ldr r2, [sp]
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r0, =0x000002d2
+ adds r3, r0
+ ldrb r3, [r3]
+ lsls r3, 8
+ movs r0, 0x2
+ bl LoadBgTiles
+ b _080CC9DA
+ .pool
+_080CC8C4:
+ bl sub_80D24A8
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =gUnknown_0857AF44
+ adds r6, r1, r0
+ ldr r0, [r6, 0x4]
+ ldr r1, [r7]
+ ldr r4, =0x00000792
+ adds r1, r4
+ bl LZ77UnCompWram
+ ldr r2, [r7]
+ adds r0, r2, r4
+ ldr r5, =0x000006fb
+ adds r1, r2, r5
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldr r3, =0x000002d2
+ adds r2, r3
+ ldrb r2, [r2]
+ bl sub_80CCA3C
+ ldr r0, [r6, 0x8]
+ ldr r1, [r7]
+ adds r1, r4
+ movs r2, 0x20
+ bl CpuSet
+ bl sub_80D2510
+ ldr r1, [r7]
+ ldr r2, =0x00000794
+ adds r1, r2
+ movs r2, 0x2
+ bl CpuSet
+ bl sub_80D2510
+ ldr r1, [r7]
+ ldr r3, =0x000007b4
+ adds r1, r3
+ movs r2, 0x2
+ bl CpuSet
+ ldr r1, [r7]
+ adds r5, r1, r5
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ cmp r0, 0
+ beq _080CC960
+ adds r0, r1, r4
+ ldr r2, =0x000002d2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 21
+ movs r3, 0x80
+ lsls r3, 15
+ adds r1, r3
+ lsrs r1, 16
+ movs r2, 0x40
+ bl LoadPalette
+ b _080CC976
+ .pool
+_080CC960:
+ ldr r2, =0x00000792
+ adds r0, r1, r2
+ ldr r3, =0x000002d2
+ adds r1, r3
+ ldrb r1, [r1]
+ lsls r1, 6
+ ldr r2, =gPlttBufferUnfaded + 0x80
+ adds r1, r2
+ movs r2, 0x20
+ bl CpuSet
+_080CC976:
+ ldr r0, [r6]
+ mov r1, sp
+ bl malloc_and_decompress
+ ldr r6, =gUnknown_02039D08
+ ldr r1, [r6]
+ ldr r5, =0x00000a68
+ adds r1, r5
+ str r0, [r1]
+ ldr r4, =gUnknown_0857B004
+ bl sub_80D24DC
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ add r1, sp, 0x4
+ bl malloc_and_decompress
+ adds r4, r0, 0
+ ldr r0, [r6]
+ adds r0, r5
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 4
+ adds r1, r0
+ ldr r2, [sp, 0x4]
+ lsls r2, 9
+ lsrs r2, 11
+ movs r0, 0x80
+ lsls r0, 19
+ orrs r2, r0
+ adds r0, r4, 0
+ bl CpuSet
+ adds r0, r4, 0
+ bl Free
+ ldr r0, [r6]
+ adds r5, r0, r5
+ ldr r1, [r5]
+ ldr r2, [sp]
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r3, =0x000002d2
+ adds r0, r3
+ ldrb r3, [r0]
+ lsls r3, 8
+ movs r0, 0x2
+ bl LoadBgTiles
+_080CC9DA:
+ movs r0, 0x2
+ bl CopyBgTilemapBufferToVram
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CC7A0
+
+ thumb_func_start sub_80CCA00
+sub_80CCA00: @ 80CCA00
+ push {r4,r5,lr}
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080CCA12
+ movs r0, 0
+ b _080CCA2E
+_080CCA12:
+ ldr r5, =gUnknown_02039D08
+ ldr r0, [r5]
+ ldr r1, =0x00000a68
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080CCA2C
+ bl Free
+ ldr r0, [r5]
+ ldr r1, =0x00000a68
+ adds r0, r1
+ str r4, [r0]
+_080CCA2C:
+ movs r0, 0x1
+_080CCA2E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80CCA00
+
+ thumb_func_start sub_80CCA3C
+sub_80CCA3C: @ 80CCA3C
+ push {r4-r7,lr}
+ sub sp, 0x24
+ adds r5, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r4, r2, 17
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ movs r3, 0xB3
+ lsls r3, 2
+ adds r0, r3
+ ldrh r3, [r0]
+ lsrs r3, 3
+ adds r3, 0xA
+ lsls r1, 24
+ asrs r7, r1, 24
+ lsls r0, r7, 1
+ adds r0, r7
+ lsls r0, 3
+ adds r6, r3, r0
+ movs r0, 0x3F
+ ands r6, r0
+ movs r3, 0x14
+ str r3, [sp]
+ movs r1, 0x12
+ str r1, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0x2
+ str r0, [sp, 0xC]
+ str r3, [sp, 0x10]
+ str r1, [sp, 0x14]
+ movs r0, 0x11
+ str r0, [sp, 0x18]
+ lsls r2, 24
+ asrs r2, 16
+ str r2, [sp, 0x1C]
+ movs r0, 0xC0
+ lsls r0, 10
+ adds r4, r0
+ asrs r4, 16
+ str r4, [sp, 0x20]
+ movs r0, 0x2
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0
+ bl CopyRectToBgTilemapBufferRect
+ cmp r7, 0
+ beq _080CCAD2
+ cmp r7, 0
+ ble _080CCAB0
+ lsls r0, r6, 16
+ movs r1, 0xA0
+ lsls r1, 13
+ adds r0, r1
+ b _080CCAB6
+ .pool
+_080CCAB0:
+ lsls r0, r6, 16
+ ldr r3, =0xfffc0000
+ adds r0, r3
+_080CCAB6:
+ lsrs r6, r0, 16
+ lsls r2, r6, 24
+ lsrs r2, 24
+ movs r0, 0x4
+ str r0, [sp]
+ movs r0, 0x12
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0
+ movs r3, 0x2
+ bl FillBgTilemapBufferRect
+_080CCAD2:
+ add sp, 0x24
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CCA3C
+
+ thumb_func_start sub_80CCAE0
+sub_80CCAE0: @ 80CCAE0
+ push {r4-r6,lr}
+ adds r2, r0, 0
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ movs r1, 0xB3
+ lsls r1, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ lsrs r0, 3
+ adds r3, r0, 0
+ adds r3, 0x1E
+ movs r0, 0x3F
+ ands r3, r0
+ adds r0, r3, 0
+ cmp r0, 0x1F
+ bgt _080CCB10
+ lsls r0, 1
+ movs r6, 0x98
+ lsls r6, 3
+ adds r0, r6
+ b _080CCB18
+ .pool
+_080CCB10:
+ lsls r0, 1
+ movs r1, 0xC8
+ lsls r1, 4
+ adds r0, r1
+_080CCB18:
+ adds r2, r0
+ movs r0, 0
+ movs r5, 0
+ movs r4, 0x3F
+_080CCB20:
+ strh r5, [r2]
+ adds r2, 0x2
+ adds r3, 0x1
+ ands r3, r4
+ adds r1, r3, 0
+ cmp r1, 0
+ bne _080CCB32
+ ldr r6, =0xfffff7c0
+ adds r2, r6
+_080CCB32:
+ cmp r1, 0x20
+ bne _080CCB3C
+ movs r1, 0xF8
+ lsls r1, 3
+ adds r2, r1
+_080CCB3C:
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2B
+ bls _080CCB20
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CCAE0
+
+ thumb_func_start sub_80CCB50
+sub_80CCB50: @ 80CCB50
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x30
+ mov r8, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, =gUnknown_02039D08
+ mov r10, r1
+ ldr r1, [r1]
+ movs r2, 0xBE
+ lsls r2, 2
+ adds r0, r1, r2
+ str r0, [sp, 0x24]
+ mov r3, sp
+ adds r3, 0x24
+ str r3, [sp, 0x2C]
+ ldr r0, =0x00030200
+ str r0, [r3, 0x4]
+ ldr r4, =0x000006fc
+ adds r1, r4
+ str r1, [sp, 0x14]
+ add r0, sp, 0x18
+ ldr r7, =0x0000dac9
+ strh r7, [r0]
+ add r0, sp, 0x1C
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ add r1, sp, 0x14
+ add r0, sp, 0x4
+ movs r2, 0x10
+ bl memcpy
+ mov r0, r8
+ bl sub_80D20F8
+ lsls r0, 24
+ mov r5, r10
+ ldr r4, [r5]
+ ldr r2, =gUnknown_08577574
+ lsrs r0, 22
+ adds r1, r0, r2
+ ldrh r3, [r1]
+ movs r5, 0xE3
+ lsls r5, 3
+ adds r1, r4, r5
+ strh r3, [r1]
+ adds r2, 0x2
+ adds r0, r2
+ ldrh r0, [r0]
+ ldr r1, =0x0000071a
+ adds r4, r1
+ strh r0, [r4]
+ add r0, sp, 0x4
+ bl LoadSpritePalettes
+ mov r2, r10
+ ldr r0, [r2]
+ movs r6, 0xE7
+ lsls r6, 3
+ adds r0, r6
+ movs r1, 0xFC
+ lsls r1, 2
+ str r1, [r0]
+ adds r0, r7, 0
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ mov r4, r10
+ ldr r3, [r4]
+ lsls r1, r0, 4
+ movs r5, 0x87
+ lsls r5, 1
+ mov r9, r5
+ add r1, r9
+ ldr r4, =0x0000071c
+ adds r2, r3, r4
+ strh r1, [r2]
+ adds r3, r6
+ movs r5, 0x80
+ lsls r5, 9
+ adds r1, r5, 0
+ lsls r1, r0
+ ldr r0, [r3]
+ orrs r0, r1
+ str r0, [r3]
+ adds r0, r7, 0
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r10
+ ldr r4, [r1]
+ lsls r1, r0, 4
+ add r1, r9
+ ldr r3, =0x0000071e
+ adds r2, r4, r3
+ strh r1, [r2]
+ adds r6, r4, r6
+ lsls r5, r0
+ ldr r0, [r6]
+ orrs r0, r5
+ str r0, [r6]
+ ldr r5, =0x000021b8
+ adds r4, r5
+ mov r0, r8
+ bl sav3_get_box_name
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0x8
+ bl StringCopyPadded
+ mov r4, r10
+ ldr r1, [r4]
+ adds r5, r1, r5
+ movs r0, 0xBE
+ lsls r0, 2
+ adds r1, r0
+ movs r0, 0x2
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80C6D80
+ ldr r0, [sp, 0x2C]
+ bl LoadSpriteSheet
+ mov r0, r8
+ bl sav3_get_box_name
+ bl sub_80CD00C
+ movs r4, 0
+ lsls r0, 16
+ asrs r6, r0, 16
+_080CCC70:
+ lsls r1, r4, 5
+ adds r1, r6, r1
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, =gUnknown_0857B0A8
+ movs r2, 0x1C
+ movs r3, 0x18
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r5, =gUnknown_02039D08
+ ldr r2, [r5]
+ lsls r0, r4, 2
+ movs r3, 0xE4
+ lsls r3, 3
+ adds r2, r3
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ str r0, [r2]
+ lsls r1, r4, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080CCC70
+ ldr r0, [r5]
+ movs r4, 0xDF
+ lsls r4, 3
+ adds r0, r4
+ movs r1, 0
+ strb r1, [r0]
+ add sp, 0x30
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CCB50
+
+ thumb_func_start sub_80CCCFC
+sub_80CCCFC: @ 80CCCFC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x28]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ ldr r4, =gUnknown_02039D08
+ ldr r2, [r4]
+ movs r1, 0xBE
+ lsls r1, 2
+ adds r0, r2, r1
+ str r0, [sp, 0x1C]
+ add r3, sp, 0x1C
+ ldr r5, =0x0000ffff
+ mov r12, r5
+ movs r6, 0xC0
+ lsls r6, 10
+ mov r9, r6
+ ldr r0, =0x00030200
+ str r0, [r3, 0x4]
+ add r1, sp, 0x4
+ ldr r0, =gUnknown_0857B0A8
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ movs r1, 0
+ movs r5, 0xDF
+ lsls r5, 3
+ adds r2, r5
+ ldrb r0, [r2]
+ mov r8, r4
+ adds r6, r3, 0
+ cmp r0, 0
+ bne _080CCD50
+ movs r1, 0x1
+_080CCD50:
+ strb r1, [r2]
+ mov r7, r8
+ ldr r0, [r7]
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080CCD8C
+ ldr r0, [r6, 0x4]
+ mov r1, r12
+ ands r0, r1
+ mov r3, r9
+ orrs r0, r3
+ str r0, [r6, 0x4]
+ ldr r0, [r7]
+ ldr r5, =0x0000071c
+ adds r0, r5
+ ldrh r0, [r0]
+ mov r9, r0
+ b _080CCDB0
+ .pool
+_080CCD8C:
+ ldr r0, [r6, 0x4]
+ mov r7, r12
+ ands r0, r7
+ movs r1, 0x80
+ lsls r1, 11
+ orrs r0, r1
+ str r0, [r6, 0x4]
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r3, =0x0000071c
+ adds r0, r3
+ ldrh r0, [r0]
+ mov r9, r0
+ add r1, sp, 0x4
+ movs r0, 0x4
+ strh r0, [r1]
+ ldr r0, =0x0000dac9
+ strh r0, [r1, 0x2]
+_080CCDB0:
+ mov r5, r8
+ ldr r4, [r5]
+ ldr r5, =0x000021b8
+ adds r4, r5
+ ldr r0, [sp, 0x28]
+ bl sav3_get_box_name
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0x8
+ bl StringCopyPadded
+ mov r7, r8
+ ldr r1, [r7]
+ adds r5, r1, r5
+ movs r0, 0xBE
+ lsls r0, 2
+ adds r1, r0
+ movs r0, 0x2
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80C6D80
+ adds r0, r6, 0
+ bl LoadSpriteSheet
+ ldr r0, [sp, 0x28]
+ bl sub_80D20F8
+ lsls r0, 24
+ lsrs r0, 22
+ ldr r1, =gUnknown_08577574
+ adds r0, r1
+ mov r1, r9
+ movs r2, 0x4
+ bl LoadPalette
+ ldr r0, [sp, 0x28]
+ bl sav3_get_box_name
+ bl sub_80CD00C
+ lsls r0, 16
+ mov r1, r10
+ lsls r2, r1, 24
+ asrs r2, 24
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 6
+ lsrs r3, r0, 16
+ str r3, [sp, 0x24]
+ asrs r0, 16
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ movs r7, 0
+ mov r9, r8
+ negs r2, r2
+ mov r8, r2
+_080CCE2E:
+ lsls r6, r7, 5
+ mov r5, r10
+ lsls r1, r5, 16
+ asrs r1, 16
+ adds r1, r6
+ lsls r1, 16
+ asrs r1, 16
+ add r0, sp, 0x4
+ movs r2, 0x1C
+ movs r3, 0x18
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r9
+ ldr r2, [r1]
+ lsls r5, r7, 2
+ movs r3, 0xE5
+ lsls r3, 3
+ adds r2, r3
+ adds r2, r5
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =gSprites
+ adds r1, r0
+ str r1, [r2]
+ mov r0, r8
+ lsls r4, r0, 1
+ add r4, r8
+ lsls r4, 1
+ strh r4, [r1, 0x2E]
+ ldr r1, [r2]
+ ldr r3, [sp, 0x24]
+ lsls r0, r3, 16
+ asrs r0, 16
+ adds r0, r6
+ strh r0, [r1, 0x30]
+ ldr r0, [r2]
+ movs r6, 0
+ strh r6, [r0, 0x32]
+ ldr r0, [r2]
+ ldr r1, =sub_80CCF30
+ str r1, [r0, 0x1C]
+ lsls r1, r7, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ mov r1, r9
+ ldr r0, [r1]
+ movs r3, 0xE4
+ lsls r3, 3
+ adds r0, r3
+ adds r0, r5
+ ldr r1, [r0]
+ strh r4, [r1, 0x2E]
+ ldr r2, [r0]
+ movs r1, 0x1
+ strh r1, [r2, 0x30]
+ ldr r1, [r0]
+ ldr r0, =sub_80CCF64
+ str r0, [r1, 0x1C]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x1
+ bls _080CCE2E
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CCCFC
+
+ thumb_func_start sub_80CCEE0
+sub_80CCEE0: @ 80CCEE0
+ push {lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ movs r1, 0xDF
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080CCF00
+ movs r0, 0x4
+ bl FreeSpriteTilesByTag
+ b _080CCF06
+ .pool
+_080CCF00:
+ movs r0, 0x3
+ bl FreeSpriteTilesByTag
+_080CCF06:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ movs r3, 0xE4
+ lsls r3, 3
+ adds r2, r0, r3
+ adds r3, 0x8
+ adds r1, r0, r3
+ ldr r1, [r1]
+ str r1, [r2]
+ ldr r2, =0x00000724
+ adds r1, r0, r2
+ adds r3, 0x4
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CCEE0
+
+ thumb_func_start sub_80CCF30
+sub_80CCF30: @ 80CCF30
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x32]
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080CCF44
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x32]
+ b _080CCF5C
+_080CCF44:
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x30
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bne _080CCF5C
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_080CCF5C:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CCF30
+
+ thumb_func_start sub_80CCF64
+sub_80CCF64: @ 80CCF64
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x30]
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080CCF78
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x30]
+ b _080CCF96
+_080CCF78:
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xC0
+ bls _080CCF96
+ adds r0, r2, 0
+ bl DestroySprite
+_080CCF96:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CCF64
+
+ thumb_func_start sub_80CCF9C
+sub_80CCF9C: @ 80CCF9C
+ push {lr}
+ bl StorageGetCurrentBox
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80D20F8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, =gUnknown_02039D08
+ ldr r2, [r0]
+ movs r3, 0xDF
+ lsls r3, 3
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080CCFE4
+ lsls r0, r1, 2
+ ldr r1, =gUnknown_08577574
+ adds r0, r1
+ adds r3, 0x24
+ adds r1, r2, r3
+ ldrh r1, [r1]
+ lsls r1, 1
+ ldr r2, =gPlttBufferUnfaded
+ adds r1, r2
+ movs r2, 0x2
+ bl CpuSet
+ b _080CCFFC
+ .pool
+_080CCFE4:
+ lsls r0, r1, 2
+ ldr r1, =gUnknown_08577574
+ adds r0, r1
+ ldr r3, =0x0000071e
+ adds r1, r2, r3
+ ldrh r1, [r1]
+ lsls r1, 1
+ ldr r2, =gPlttBufferUnfaded
+ adds r1, r2
+ movs r2, 0x2
+ bl CpuSet
+_080CCFFC:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CCF9C
+
+ thumb_func_start sub_80CD00C
+sub_80CD00C: @ 80CD00C
+ push {lr}
+ adds r1, r0, 0
+ movs r0, 0x1
+ movs r2, 0
+ bl GetStringWidth
+ adds r1, r0, 0
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ movs r0, 0xB0
+ subs r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CD00C
+
+ thumb_func_start sub_80CD02C
+sub_80CD02C: @ 80CD02C
+ push {r4,r5,lr}
+ ldr r0, =gUnknown_0857B080
+ bl LoadSpriteSheet
+ movs r5, 0
+_080CD036:
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 19
+ movs r0, 0xB8
+ lsls r0, 15
+ adds r1, r0
+ asrs r1, 16
+ ldr r0, =gUnknown_0857B0E0
+ movs r2, 0x1C
+ movs r3, 0x16
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080CD088
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r4, r0, r1
+ lsls r1, r5, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ movs r0, 0x1
+ cmp r5, 0
+ bne _080CD076
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r1, 0
+_080CD076:
+ strh r0, [r4, 0x34]
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ movs r2, 0xE6
+ lsls r2, 3
+ adds r0, r2
+ adds r0, r1
+ str r4, [r0]
+_080CD088:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080CD036
+ bl sub_80CEADC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CD0A2
+ movs r0, 0x1
+ bl sub_80CD1A8
+_080CD0A2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CD02C
+
+ thumb_func_start sub_80CD0B8
+sub_80CD0B8: @ 80CD0B8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r2, 0
+ ldr r7, =gUnknown_02039D08
+ mov r12, r7
+ movs r6, 0xE6
+ lsls r6, 3
+ movs r4, 0
+ movs r3, 0x2
+_080CD0CC:
+ mov r0, r12
+ ldr r1, [r0]
+ lsls r0, r2, 2
+ adds r1, r6
+ adds r1, r0
+ ldr r0, [r1]
+ strh r4, [r0, 0x24]
+ ldr r0, [r1]
+ strh r3, [r0, 0x2E]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1
+ bls _080CD0CC
+ lsls r0, r5, 24
+ cmp r0, 0
+ bge _080CD114
+ ldr r1, [r7]
+ movs r2, 0xE6
+ lsls r2, 3
+ adds r3, r1, r2
+ ldr r2, [r3]
+ movs r0, 0x1D
+ strh r0, [r2, 0x30]
+ ldr r0, =0x00000734
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x5
+ strh r0, [r2, 0x30]
+ ldr r0, [r3]
+ movs r2, 0x48
+ b _080CD130
+ .pool
+_080CD114:
+ ldr r1, [r7]
+ movs r2, 0xE6
+ lsls r2, 3
+ adds r3, r1, r2
+ ldr r2, [r3]
+ movs r0, 0x5
+ strh r0, [r2, 0x30]
+ ldr r0, =0x00000734
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x1D
+ strh r0, [r2, 0x30]
+ ldr r0, [r3]
+ movs r2, 0xF8
+_080CD130:
+ strh r2, [r0, 0x32]
+ ldr r0, [r1]
+ strh r2, [r0, 0x32]
+ ldr r1, [r7]
+ movs r2, 0xE6
+ lsls r2, 3
+ adds r0, r1, r2
+ ldr r2, [r0]
+ movs r0, 0
+ strh r0, [r2, 0x3C]
+ ldr r0, =0x00000734
+ adds r1, r0
+ ldr r1, [r1]
+ movs r0, 0x1
+ strh r0, [r1, 0x3C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CD0B8
+
+ thumb_func_start sub_80CD158
+sub_80CD158: @ 80CD158
+ push {r4-r6,lr}
+ movs r3, 0
+ movs r5, 0
+ movs r6, 0x5
+ negs r6, r6
+ ldr r4, =gUnknown_02039D08
+_080CD164:
+ ldr r1, [r4]
+ lsls r0, r3, 2
+ movs r2, 0xE6
+ lsls r2, 3
+ adds r1, r2
+ adds r1, r0
+ ldr r2, [r1]
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 3
+ adds r0, 0x5C
+ strh r0, [r2, 0x20]
+ ldr r0, [r1]
+ strh r5, [r0, 0x24]
+ ldr r1, [r1]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x1
+ bls _080CD164
+ movs r0, 0x1
+ bl sub_80CD1A8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CD158
+
+ thumb_func_start sub_80CD1A8
+sub_80CD1A8: @ 80CD1A8
+ push {r4-r6,lr}
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CD1E4
+ movs r2, 0
+ ldr r6, =gUnknown_02039D08
+ movs r5, 0xE6
+ lsls r5, 3
+ movs r3, 0
+ movs r4, 0x1
+_080CD1BC:
+ ldr r1, [r6]
+ lsls r0, r2, 2
+ adds r1, r5
+ adds r1, r0
+ ldr r0, [r1]
+ strh r4, [r0, 0x2E]
+ ldr r0, [r1]
+ strh r3, [r0, 0x30]
+ ldr r0, [r1]
+ strh r3, [r0, 0x32]
+ ldr r0, [r1]
+ strh r3, [r0, 0x36]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1
+ bls _080CD1BC
+ b _080CD204
+ .pool
+_080CD1E4:
+ movs r2, 0
+ ldr r5, =gUnknown_02039D08
+ movs r4, 0xE6
+ lsls r4, 3
+ movs r3, 0
+_080CD1EE:
+ ldr r0, [r5]
+ lsls r1, r2, 2
+ adds r0, r4
+ adds r0, r1
+ ldr r0, [r0]
+ strh r3, [r0, 0x2E]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1
+ bls _080CD1EE
+_080CD204:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CD1A8
+
+ thumb_func_start sub_80CD210
+sub_80CD210: @ 80CD210
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x4
+ bhi _080CD2DC
+ lsls r0, 2
+ ldr r1, =_080CD22C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080CD22C:
+ .4byte _080CD240
+ .4byte _080CD246
+ .4byte _080CD274
+ .4byte _080CD27A
+ .4byte _080CD2CC
+_080CD240:
+ movs r0, 0
+ strh r0, [r2, 0x24]
+ b _080CD2DC
+_080CD246:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080CD2DC
+ strh r1, [r2, 0x30]
+ ldrh r0, [r2, 0x34]
+ ldrh r3, [r2, 0x24]
+ adds r0, r3
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x32]
+ adds r0, 0x1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080CD2DC
+ strh r1, [r2, 0x32]
+ strh r1, [r2, 0x24]
+ b _080CD2DC
+_080CD274:
+ movs r0, 0x3
+ strh r0, [r2, 0x2E]
+ b _080CD2DC
+_080CD27A:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r0, =0x000002ce
+ adds r1, r0
+ ldrh r0, [r2, 0x20]
+ ldrh r1, [r1]
+ subs r0, r1
+ strh r0, [r2, 0x20]
+ subs r0, 0x49
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAE
+ bls _080CD2A0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+_080CD2A0:
+ ldrh r0, [r2, 0x30]
+ subs r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CD2DC
+ ldrh r0, [r2, 0x32]
+ strh r0, [r2, 0x20]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ movs r0, 0x4
+ strh r0, [r2, 0x2E]
+ b _080CD2DC
+ .pool
+_080CD2CC:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x000002ce
+ adds r0, r1
+ ldrh r1, [r2, 0x20]
+ ldrh r0, [r0]
+ subs r1, r0
+ strh r1, [r2, 0x20]
+_080CD2DC:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CD210
+
+ thumb_func_start sub_80CD2E8
+sub_80CD2E8: @ 80CD2E8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldr r4, [sp, 0x18]
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_0857B0E0
+ lsls r5, 16
+ asrs r5, 16
+ lsls r6, 16
+ asrs r6, 16
+ adds r1, r5, 0
+ adds r2, r6, 0
+ adds r3, r4, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080CD360
+ movs r1, 0x1
+ ands r1, r7
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r5, =gSprites
+ adds r6, r4, r5
+ adds r0, r6, 0
+ bl StartSpriteAnim
+ movs r0, 0x3
+ mov r1, r8
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r6, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6, 0x5]
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r4]
+ adds r0, r6, 0
+ b _080CD362
+ .pool
+_080CD360:
+ movs r0, 0
+_080CD362:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CD2E8
+
+ thumb_func_start sub_80CD36C
+sub_80CD36C: @ 80CD36C
+ push {lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x1]
+ cmp r1, 0x1
+ beq _080CD388
+ ldr r1, =gUnknown_02039D78
+ movs r0, 0
+ strb r0, [r1]
+ b _080CD38C
+ .pool
+_080CD388:
+ ldr r0, =gUnknown_02039D78
+ strb r1, [r0]
+_080CD38C:
+ ldr r0, =gUnknown_02039D79
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, =gUnknown_02039D7A
+ strb r1, [r0]
+ ldr r0, =gUnknown_02039D7B
+ strb r1, [r0]
+ ldr r0, =gUnknown_02039D7C
+ strb r1, [r0]
+ ldr r0, =gUnknown_02039D7D
+ strb r1, [r0]
+ bl sub_80CDC0C
+ bl sub_80CFC14
+ ldr r2, =gUnknown_02039D08
+ ldr r0, [r2]
+ ldr r1, =0x00000cd6
+ adds r0, r1
+ movs r3, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r1, =0x000021ff
+ adds r0, r1
+ strb r3, [r0]
+ bl sub_80CEB40
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CD36C
+
+ thumb_func_start sub_80CD3EC
+sub_80CD3EC: @ 80CD3EC
+ push {lr}
+ bl sub_80CFC14
+ bl sub_80CEBDC
+ ldr r3, =gUnknown_02039D08
+ ldr r0, [r3]
+ ldr r1, =0x00000cd6
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r3]
+ ldr r1, =0x000021ff
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080CD426
+ ldr r0, [r3]
+ ldr r1, =0x000020a4
+ adds r0, r1
+ ldr r1, =gUnknown_02039D14
+ movs r2, 0x64
+ bl memcpy
+ bl sub_80CAFC4
+_080CD426:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CD3EC
+
+ thumb_func_start sub_80CD444
+sub_80CD444: @ 80CD444
+ push {r4-r6,lr}
+ adds r4, r2, 0
+ adds r6, r3, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r0, 0x4
+ bhi _080CD4FC
+ lsls r0, 2
+ ldr r1, =_080CD464
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080CD464:
+ .4byte _080CD478
+ .4byte _080CD4A6
+ .4byte _080CD4CE
+ .4byte _080CD4D6
+ .4byte _080CD4F4
+_080CD478:
+ adds r0, r5, 0
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, 0x64
+ strh r1, [r4]
+ adds r0, r5, 0
+ movs r1, 0x6
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, 0x20
+ strh r1, [r6]
+ b _080CD4FC
+_080CD4A6:
+ cmp r5, 0
+ bne _080CD4B2
+ movs r0, 0x68
+ strh r0, [r4]
+ movs r0, 0x34
+ b _080CD4FA
+_080CD4B2:
+ cmp r5, 0x6
+ bne _080CD4BE
+ movs r0, 0x98
+ strh r0, [r4]
+ movs r0, 0x84
+ b _080CD4FA
+_080CD4BE:
+ movs r0, 0x98
+ strh r0, [r4]
+ subs r1, r5, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x4
+ b _080CD4FA
+_080CD4CE:
+ movs r0, 0xA2
+ strh r0, [r4]
+ movs r0, 0xC
+ b _080CD4FA
+_080CD4D6:
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ movs r1, 0xE
+ cmp r0, 0
+ beq _080CD4E2
+ movs r1, 0x8
+_080CD4E2:
+ strh r1, [r6]
+ movs r0, 0x58
+ muls r0, r5
+ adds r0, 0x78
+ strh r0, [r4]
+ b _080CD4FC
+ .pool
+_080CD4F4:
+ movs r0, 0xA0
+ strh r0, [r4]
+ movs r0, 0x60
+_080CD4FA:
+ strh r0, [r6]
+_080CD4FC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CD444
+
+ thumb_func_start sub_80CD504
+sub_80CD504: @ 80CD504
+ push {lr}
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080CD538
+ cmp r0, 0x1
+ bne _080CD54C
+ ldr r0, =gUnknown_02039D79
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ b _080CD542
+ .pool
+_080CD538:
+ ldr r0, =gUnknown_02039D79
+ ldrb r0, [r0]
+ movs r1, 0xB
+ bl GetBoxMonDataFromSelectedBox
+_080CD542:
+ lsls r0, 16
+ lsrs r0, 16
+ b _080CD54E
+ .pool
+_080CD54C:
+ movs r0, 0
+_080CD54E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CD504
+
+ thumb_func_start sub_80CD554
+sub_80CD554: @ 80CD554
+ push {r4-r7,lr}
+ ldr r7, =gUnknown_02039D08
+ ldr r5, [r7]
+ movs r0, 0xCD
+ lsls r0, 4
+ adds r1, r5, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080CD57E
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0x3
+ beq _080CD574
+ movs r0, 0
+ b _080CD69A
+ .pool
+_080CD574:
+ bl sub_80D1218
+ lsls r0, 24
+ lsrs r0, 24
+ b _080CD69A
+_080CD57E:
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080CD67C
+ ldr r1, =0x00000cbc
+ adds r4, r5, r1
+ ldr r2, =0x00000cc4
+ adds r1, r5, r2
+ ldr r0, [r4]
+ ldr r1, [r1]
+ adds r0, r1
+ str r0, [r4]
+ movs r0, 0xCC
+ lsls r0, 4
+ adds r3, r5, r0
+ adds r2, 0x4
+ adds r1, r5, r2
+ ldr r0, [r3]
+ ldr r1, [r1]
+ adds r0, r1
+ str r0, [r3]
+ ldr r6, =0x00000cb4
+ adds r1, r5, r6
+ ldr r2, [r1]
+ ldr r0, [r4]
+ asrs r0, 8
+ strh r0, [r2, 0x20]
+ ldr r2, [r1]
+ ldr r0, [r3]
+ asrs r0, 8
+ strh r0, [r2, 0x22]
+ ldr r1, [r1]
+ ldrh r2, [r1, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x80
+ lsls r3, 1
+ cmp r0, r3
+ ble _080CD5DA
+ ldr r4, =0xffffff00
+ adds r0, r2, r4
+ lsls r0, 16
+ asrs r0, 16
+ adds r0, 0x40
+ strh r0, [r1, 0x20]
+_080CD5DA:
+ ldr r0, [r7]
+ adds r0, r6
+ ldr r1, [r0]
+ ldrh r2, [r1, 0x20]
+ movs r4, 0x20
+ ldrsh r0, [r1, r4]
+ cmp r0, 0x3F
+ bgt _080CD5F6
+ movs r0, 0x40
+ subs r0, r2
+ lsls r0, 16
+ asrs r0, 16
+ subs r0, r3, r0
+ strh r0, [r1, 0x20]
+_080CD5F6:
+ ldr r0, [r7]
+ adds r0, r6
+ ldr r1, [r0]
+ ldrh r2, [r1, 0x22]
+ movs r3, 0x22
+ ldrsh r0, [r1, r3]
+ cmp r0, 0xB0
+ ble _080CD612
+ adds r0, r2, 0
+ subs r0, 0xB0
+ lsls r0, 16
+ asrs r0, 16
+ subs r0, 0x10
+ strh r0, [r1, 0x22]
+_080CD612:
+ ldr r0, [r7]
+ adds r0, r6
+ ldr r2, [r0]
+ ldrh r3, [r2, 0x22]
+ movs r4, 0x22
+ ldrsh r0, [r2, r4]
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bge _080CD632
+ subs r0, r1, r3
+ movs r1, 0xB0
+ lsls r0, 16
+ asrs r0, 16
+ subs r1, r0
+ strh r1, [r2, 0x22]
+_080CD632:
+ ldr r0, [r7]
+ ldr r2, =0x00000cd7
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080CD698
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CD698
+ ldr r0, [r7]
+ adds r0, r6
+ ldr r2, [r0]
+ adds r2, 0x3F
+ ldrb r3, [r2]
+ lsrs r1, r3, 1
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 1
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ b _080CD698
+ .pool
+_080CD67C:
+ ldr r3, =0x00000cb4
+ adds r2, r5, r3
+ ldr r1, [r2]
+ ldr r4, =0x00000ccc
+ adds r0, r5, r4
+ ldrh r0, [r0]
+ strh r0, [r1, 0x20]
+ ldr r1, [r2]
+ ldr r2, =0x00000cce
+ adds r0, r5, r2
+ ldrh r0, [r0]
+ strh r0, [r1, 0x22]
+ bl sub_80CDA68
+_080CD698:
+ movs r0, 0x1
+_080CD69A:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80CD554
+
+ thumb_func_start sub_80CD6AC
+sub_80CD6AC: @ 80CD6AC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r6, sp
+ adds r6, 0x2
+ adds r0, r4, 0
+ adds r1, r5, 0
+ mov r2, sp
+ adds r3, r6, 0
+ bl sub_80CD444
+ ldr r1, =gUnknown_02039D08
+ ldr r0, [r1]
+ ldr r2, =0x00000cd4
+ adds r0, r2
+ strb r4, [r0]
+ ldr r0, [r1]
+ ldr r3, =0x00000cd5
+ adds r0, r3
+ strb r5, [r0]
+ ldr r1, [r1]
+ mov r0, sp
+ ldrh r2, [r0]
+ subs r3, 0x9
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r0, [r6]
+ ldr r2, =0x00000cce
+ adds r1, r2
+ strh r0, [r1]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CD6AC
+
+ thumb_func_start sub_80CD70C
+sub_80CD70C: @ 80CD70C
+ push {r4-r7,lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r2, [r0]
+ ldr r3, =0x00000cd2
+ adds r1, r2, r3
+ ldrh r1, [r1]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _080CD730
+ movs r0, 0xCD
+ lsls r0, 4
+ adds r1, r2, r0
+ movs r0, 0xC
+ b _080CD738
+ .pool
+_080CD730:
+ movs r3, 0xCD
+ lsls r3, 4
+ adds r1, r2, r3
+ movs r0, 0x6
+_080CD738:
+ strh r0, [r1]
+ ldr r1, [r4]
+ ldr r0, =0x00000cd7
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _080CD752
+ movs r3, 0xCD
+ lsls r3, 4
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ lsrs r0, 1
+ strb r0, [r2]
+_080CD752:
+ ldr r2, [r4]
+ ldr r1, =0x00000cd2
+ adds r0, r2, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080CD78C
+ cmp r1, 0x1
+ beq _080CD7AC
+ ldr r3, =0x00000cce
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ ldr r3, =0x00000cb4
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x22
+ ldrsh r0, [r0, r2]
+ b _080CD7C0
+ .pool
+_080CD78C:
+ ldr r3, =0x00000cce
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ ldr r3, =0x00000cb4
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x22
+ ldrsh r0, [r0, r2]
+ adds r0, 0xC0
+ b _080CD7C0
+ .pool
+_080CD7AC:
+ ldr r3, =0x00000cce
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ ldr r3, =0x00000cb4
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x22
+ ldrsh r0, [r0, r2]
+ subs r0, 0xC0
+_080CD7C0:
+ subs r7, r1, r0
+ ldr r2, [r4]
+ ldr r3, =0x00000cd3
+ adds r0, r2, r3
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080CD7FC
+ cmp r1, 0x1
+ beq _080CD81C
+ ldr r1, =0x00000ccc
+ adds r0, r2, r1
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ ldr r3, =0x00000cb4
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ b _080CD830
+ .pool
+_080CD7FC:
+ ldr r3, =0x00000ccc
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ ldr r3, =0x00000cb4
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ adds r0, 0xC0
+ b _080CD830
+ .pool
+_080CD81C:
+ ldr r3, =0x00000ccc
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ ldr r3, =0x00000cb4
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ subs r0, 0xC0
+_080CD830:
+ subs r0, r1, r0
+ lsls r7, 8
+ lsls r0, 8
+ ldr r4, [r4]
+ ldr r3, =0x00000cc4
+ adds r6, r4, r3
+ movs r1, 0xCD
+ lsls r1, 4
+ adds r5, r4, r1
+ ldrh r1, [r5]
+ bl __divsi3
+ str r0, [r6]
+ ldr r2, =0x00000cc8
+ adds r6, r4, r2
+ ldrh r1, [r5]
+ adds r0, r7, 0
+ bl __divsi3
+ str r0, [r6]
+ ldr r3, =0x00000cbc
+ adds r2, r4, r3
+ ldr r0, =0x00000cb4
+ adds r1, r4, r0
+ ldr r0, [r1]
+ movs r3, 0x20
+ ldrsh r0, [r0, r3]
+ lsls r0, 8
+ str r0, [r2]
+ movs r0, 0xCC
+ lsls r0, 4
+ adds r4, r0
+ ldr r0, [r1]
+ movs r1, 0x22
+ ldrsh r0, [r0, r1]
+ lsls r0, 8
+ str r0, [r4]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CD70C
+
+ thumb_func_start sub_80CD894
+sub_80CD894: @ 80CD894
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_80CD6AC
+ bl sub_80CD70C
+ ldr r5, =gUnknown_02039D08
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x3
+ beq _080CD8E4
+ ldr r2, =0x000021ff
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080CD8FC
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080CD8FC
+ ldr r2, =0x00000cb4
+ adds r0, r1, r2
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ b _080CD8FC
+ .pool
+_080CD8E4:
+ bl sub_80D127C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CD8FC
+ ldr r0, [r5]
+ ldr r1, =0x00000cb4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080CD8FC:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x3
+ bne _080CD95C
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bne _080CD930
+ ldr r0, =gUnknown_02039D79
+ ldrb r1, [r0]
+ movs r0, 0
+ bl sub_80D0E50
+ b _080CD93E
+ .pool
+_080CD930:
+ cmp r0, 0x1
+ bne _080CD93E
+ ldr r0, =gUnknown_02039D79
+ ldrb r1, [r0]
+ movs r0, 0x1
+ bl sub_80D0E50
+_080CD93E:
+ cmp r4, 0
+ bne _080CD950
+ movs r0, 0
+ adds r1, r6, 0
+ bl sub_80D0D8C
+ b _080CD95C
+ .pool
+_080CD950:
+ cmp r4, 0x1
+ bne _080CD988
+ movs r0, 0x1
+ adds r1, r6, 0
+ bl sub_80D0D8C
+_080CD95C:
+ cmp r4, 0x1
+ bne _080CD988
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ beq _080CD988
+ ldr r1, =gUnknown_02039D08
+ ldr r0, [r1]
+ ldr r2, =0x00000cd6
+ adds r0, r2
+ strb r4, [r0]
+ ldr r0, [r1]
+ ldr r1, =0x00000cb8
+ adds r0, r1
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+_080CD988:
+ cmp r4, 0
+ beq _080CD9E4
+ cmp r4, 0
+ blt _080CDA56
+ cmp r4, 0x3
+ bgt _080CDA56
+ ldr r5, =gUnknown_02039D08
+ ldr r0, [r5]
+ ldr r2, =0x00000cb4
+ adds r0, r2
+ ldr r4, [r0]
+ ldrb r1, [r4, 0x5]
+ movs r2, 0xD
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r1
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r4, 0x5]
+ ldr r0, [r5]
+ ldr r4, =0x00000cb8
+ adds r0, r4
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r0, r4
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x5]
+ ands r2, r0
+ orrs r2, r3
+ strb r2, [r1, 0x5]
+ b _080CDA56
+ .pool
+_080CD9E4:
+ ldr r3, =gUnknown_02039D08
+ ldr r1, [r3]
+ ldr r2, =0x000021ff
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080CDA28
+ ldr r2, =0x00000cb4
+ adds r0, r1, r2
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r3]
+ ldr r1, =0x00000cb8
+ adds r0, r1
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ b _080CDA56
+ .pool
+_080CDA28:
+ ldr r2, =0x00000cb4
+ adds r0, r1, r2
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bne _080CDA56
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080CDA56
+ movs r0, 0x2
+ bl sub_80CC0D4
+_080CDA56:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CD894
+
+ thumb_func_start sub_80CDA68
+sub_80CDA68: @ 80CDA68
+ push {r4,lr}
+ ldr r1, =gUnknown_02039D78
+ ldr r4, =gUnknown_02039D08
+ ldr r2, [r4]
+ ldr r3, =0x00000cd4
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r1, =gUnknown_02039D79
+ adds r3, 0x1
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x3
+ beq _080CDAC0
+ ldr r1, =0x000021ff
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080CDAD8
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080CDAD8
+ subs r3, 0x21
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAnim
+ b _080CDAD8
+ .pool
+_080CDAC0:
+ bl sub_80D127C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CDAD8
+ ldr r0, [r4]
+ ldr r1, =0x00000cb4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAnim
+_080CDAD8:
+ bl sub_80CEB40
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ beq _080CDB0E
+ cmp r0, 0x1
+ bgt _080CDAFC
+ cmp r0, 0
+ beq _080CDB30
+ b _080CDB8A
+ .pool
+_080CDAFC:
+ cmp r0, 0x2
+ beq _080CDB06
+ cmp r0, 0x3
+ bne _080CDB8A
+ b _080CDB1E
+_080CDB06:
+ movs r0, 0x1
+ bl sub_80CD1A8
+ b _080CDB8A
+_080CDB0E:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r2, =0x00000cb8
+ adds r0, r2
+ ldr r0, [r0]
+ adds r0, 0x43
+ movs r1, 0xD
+ strb r1, [r0]
+_080CDB1E:
+ movs r0, 0x1
+ bl sub_80CC0D4
+ b _080CDB8A
+ .pool
+_080CDB30:
+ ldr r4, =gUnknown_02039D08
+ ldr r1, [r4]
+ ldr r3, =0x000021ff
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080CDB8A
+ ldr r2, =0x00000cb4
+ adds r0, r1, r2
+ ldr r3, [r0]
+ ldrb r1, [r3, 0x5]
+ movs r2, 0xD
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ ldr r0, [r4]
+ ldr r3, =0x00000cb8
+ adds r0, r3
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x5]
+ ands r2, r0
+ movs r0, 0x8
+ orrs r2, r0
+ strb r2, [r1, 0x5]
+ ldr r0, [r4]
+ adds r0, r3
+ ldr r0, [r0]
+ adds r0, 0x43
+ movs r1, 0x15
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, r3
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ movs r0, 0x2
+ bl sub_80CC0D4
+_080CDB8A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CDA68
+
+ thumb_func_start sub_80CDBA0
+sub_80CDBA0: @ 80CDBA0
+ push {lr}
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080CDBB4
+ movs r3, 0
+ b _080CDBC2
+ .pool
+_080CDBB4:
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x5
+ bls _080CDBC2
+ movs r3, 0x5
+_080CDBC2:
+ ldr r0, =gUnknown_02039D08
+ ldr r2, [r0]
+ ldr r1, =0x00000cb4
+ adds r0, r2, r1
+ ldr r0, [r0]
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080CDBE0
+ ldr r0, =0x00000cd7
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_080CDBE0:
+ movs r0, 0x1
+ adds r1, r3, 0
+ bl sub_80CD894
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CDBA0
+
+ thumb_func_start sub_80CDBF8
+sub_80CDBF8: @ 80CDBF8
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_80CD894
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CDBF8
+
+ thumb_func_start sub_80CDC0C
+sub_80CDC0C: @ 80CDC0C
+ ldr r1, =gUnknown_02039D7E
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_80CDC0C
+
+ thumb_func_start sub_80CDC18
+sub_80CDC18: @ 80CDC18
+ ldr r0, =gUnknown_02039D7E
+ ldr r1, =gUnknown_02039D79
+ ldrb r1, [r1]
+ strb r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_80CDC18
+
+ thumb_func_start sub_80CDC2C
+sub_80CDC2C: @ 80CDC2C
+ ldr r0, =gUnknown_02039D7E
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_80CDC2C
+
+ thumb_func_start sub_80CDC38
+sub_80CDC38: @ 80CDC38
+ lsls r0, 24
+ ldr r1, =gUnknown_02039D08
+ ldr r1, [r1]
+ ldr r2, =0x00000d8c
+ adds r3, r1, r2
+ ldr r2, =gUnknown_0857B998
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r3]
+ movs r0, 0xD9
+ lsls r0, 4
+ adds r1, r0
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_80CDC38
+
+ thumb_func_start sub_80CDC64
+sub_80CDC64: @ 80CDC64
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CDC84
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r2, =0x00000d8c
+ adds r1, r2
+ ldr r2, =sub_80CDEB4
+ b _080CDC8E
+ .pool
+_080CDC84:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r2, =0x00000d8c
+ adds r1, r2
+ ldr r2, =sub_80CDEC4
+_080CDC8E:
+ str r2, [r1]
+ ldr r0, [r0]
+ movs r1, 0xD9
+ lsls r1, 4
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CDC64
+
+ thumb_func_start sub_80CDCAC
+sub_80CDCAC: @ 80CDCAC
+ push {lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00000d8c
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80CDCAC
+
+ thumb_func_start sub_80CDCCC
+sub_80CDCCC: @ 80CDCCC
+ push {r4,r5,lr}
+ ldr r4, =gUnknown_02039D08
+ ldr r1, [r4]
+ movs r5, 0xD9
+ lsls r5, 4
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080CDD1C
+ cmp r0, 0x1
+ bgt _080CDCEC
+ cmp r0, 0
+ beq _080CDCF6
+ b _080CDD54
+ .pool
+_080CDCEC:
+ cmp r0, 0x2
+ beq _080CDD40
+ cmp r0, 0x3
+ beq _080CDCFE
+ b _080CDD54
+_080CDCF6:
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080CDD08
+_080CDCFE:
+ movs r0, 0
+ b _080CDD56
+ .pool
+_080CDD08:
+ ldr r2, =0x00000cb4
+ adds r0, r1, r2
+ ldr r0, [r0]
+ movs r1, 0x2
+ bl StartSpriteAnim
+ b _080CDD4A
+ .pool
+_080CDD1C:
+ bl sub_80CDED4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CDD54
+ ldr r0, [r4]
+ ldr r1, =0x00000cb4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl StartSpriteAnim
+ bl sub_80CDF38
+ b _080CDD4A
+ .pool
+_080CDD40:
+ bl sub_80CDF08
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CDD54
+_080CDD4A:
+ ldr r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080CDD54:
+ movs r0, 0x1
+_080CDD56:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CDCCC
+
+ thumb_func_start sub_80CDD5C
+sub_80CDD5C: @ 80CDD5C
+ push {r4,r5,lr}
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ movs r5, 0xD9
+ lsls r5, 4
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080CDDA4
+ cmp r0, 0x1
+ bgt _080CDD7C
+ cmp r0, 0
+ beq _080CDD82
+ b _080CDDD0
+ .pool
+_080CDD7C:
+ cmp r0, 0x2
+ beq _080CDDCC
+ b _080CDDD0
+_080CDD82:
+ bl sub_80CDED4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CDDD0
+ ldr r0, [r4]
+ ldr r1, =0x00000cb4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ bl StartSpriteAnim
+ bl sub_80CDFAC
+ b _080CDDBC
+ .pool
+_080CDDA4:
+ bl sub_80CDF08
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CDDD0
+ ldr r0, [r4]
+ ldr r1, =0x00000cb4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAnim
+_080CDDBC:
+ ldr r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080CDDD0
+ .pool
+_080CDDCC:
+ movs r0, 0
+ b _080CDDD2
+_080CDDD0:
+ movs r0, 0x1
+_080CDDD2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CDD5C
+
+ thumb_func_start sub_80CDDD8
+sub_80CDDD8: @ 80CDDD8
+ push {r4,r5,lr}
+ ldr r4, =gUnknown_02039D08
+ ldr r1, [r4]
+ movs r5, 0xD9
+ lsls r5, 4
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080CDE68
+ cmp r0, 0x1
+ bgt _080CDDF8
+ cmp r0, 0
+ beq _080CDDFE
+ b _080CDEAC
+ .pool
+_080CDDF8:
+ cmp r0, 0x2
+ beq _080CDEA8
+ b _080CDEAC
+_080CDDFE:
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080CDE20
+ cmp r0, 0x1
+ bne _080CDEA8
+ ldr r0, =0x00000d91
+ adds r1, r0
+ movs r0, 0xE
+ b _080CDE2A
+ .pool
+_080CDE20:
+ bl StorageGetCurrentBox
+ ldr r1, [r4]
+ ldr r2, =0x00000d91
+ adds r1, r2
+_080CDE2A:
+ strb r0, [r1]
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldr r1, =0x00000cb4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ bl StartSpriteAnim
+ ldr r0, [r4]
+ ldr r2, =0x00000d91
+ adds r0, r2
+ ldrb r0, [r0]
+ ldr r1, =gUnknown_02039D79
+ ldrb r1, [r1]
+ bl sub_80CBD5C
+ ldr r1, [r4]
+ movs r0, 0xD9
+ lsls r0, 4
+ adds r1, r0
+ b _080CDE94
+ .pool
+_080CDE68:
+ bl sub_80CBDC4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CDEAC
+ ldr r0, [r4]
+ ldr r1, =0x00000cb4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl StartSpriteAnim
+ ldr r0, [r4]
+ ldr r2, =0x00000d91
+ adds r0, r2
+ ldrb r0, [r0]
+ ldr r1, =gUnknown_02039D79
+ ldrb r1, [r1]
+ bl diegohint1
+ ldr r1, [r4]
+ adds r1, r5
+_080CDE94:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080CDEAC
+ .pool
+_080CDEA8:
+ movs r0, 0
+ b _080CDEAE
+_080CDEAC:
+ movs r0, 0x1
+_080CDEAE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CDDD8
+
+ thumb_func_start sub_80CDEB4
+sub_80CDEB4: @ 80CDEB4
+ push {lr}
+ bl sub_80CDED4
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CDEB4
+
+ thumb_func_start sub_80CDEC4
+sub_80CDEC4: @ 80CDEC4
+ push {lr}
+ bl sub_80CDF08
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CDEC4
+
+ thumb_func_start sub_80CDED4
+sub_80CDED4: @ 80CDED4
+ push {lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00000cb4
+ adds r0, r1
+ ldr r1, [r0]
+ movs r2, 0x26
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080CDEEC
+ cmp r0, 0x8
+ beq _080CDEFC
+_080CDEEC:
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _080CDF00
+ .pool
+_080CDEFC:
+ movs r0, 0
+ b _080CDF02
+_080CDF00:
+ movs r0, 0x1
+_080CDF02:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CDED4
+
+ thumb_func_start sub_80CDF08
+sub_80CDF08: @ 80CDF08
+ push {lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00000cb4
+ adds r0, r1
+ ldr r1, [r0]
+ movs r2, 0x26
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080CDF30
+ ldrh r0, [r1, 0x26]
+ subs r0, 0x1
+ strh r0, [r1, 0x26]
+ movs r0, 0x1
+ b _080CDF32
+ .pool
+_080CDF30:
+ movs r0, 0
+_080CDF32:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CDF08
+
+ thumb_func_start sub_80CDF38
+sub_80CDF38: @ 80CDF38
+ push {r4,lr}
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080CDF68
+ cmp r0, 0x1
+ bne _080CDF94
+ ldr r4, =gUnknown_02039D79
+ ldrb r1, [r4]
+ movs r0, 0xE
+ bl sub_80CE018
+ ldrb r1, [r4]
+ movs r0, 0
+ bl sub_80CBC14
+ b _080CDF8E
+ .pool
+_080CDF68:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x000021ff
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080CDF8E
+ bl StorageGetCurrentBox
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, =gUnknown_02039D79
+ ldrb r1, [r4]
+ bl sub_80CE018
+ ldrb r1, [r4]
+ movs r0, 0x1
+ bl sub_80CBC14
+_080CDF8E:
+ ldr r1, =gUnknown_02039D7A
+ movs r0, 0x1
+ strb r0, [r1]
+_080CDF94:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CDF38
+
+ thumb_func_start sub_80CDFAC
+sub_80CDFAC: @ 80CDFAC
+ push {r4,r5,lr}
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080CDFDC
+ cmp r0, 0x1
+ bne _080CDFFE
+ ldr r4, =gUnknown_02039D79
+ ldrb r1, [r4]
+ movs r0, 0xE
+ bl diegohint2
+ ldrb r1, [r4]
+ movs r0, 0xE
+ bl sub_80CBCAC
+ b _080CDFF8
+ .pool
+_080CDFDC:
+ bl StorageGetCurrentBox
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, =gUnknown_02039D79
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl diegohint2
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_80CBCAC
+_080CDFF8:
+ ldr r1, =gUnknown_02039D7A
+ movs r0, 0
+ strb r0, [r1]
+_080CDFFE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CDFAC
+
+ thumb_func_start sub_80CE00C
+sub_80CE00C: @ 80CE00C
+ push {lr}
+ bl sub_80CEB40
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CE00C
+
+ thumb_func_start sub_80CE018
+sub_80CE018: @ 80CE018
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r4, 0xE
+ bne _080CE054
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x000020a4
+ adds r0, r1
+ ldr r3, =gPlayerParty
+ ldr r1, =gUnknown_02039D79
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ movs r1, 0x64
+ muls r1, r2
+ adds r1, r3
+ movs r2, 0x64
+ bl memcpy
+ b _080CE064
+ .pool
+_080CE054:
+ ldr r0, =gUnknown_02039D08
+ ldr r2, [r0]
+ ldr r0, =0x000020a4
+ adds r2, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80D2054
+_080CE064:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80CE0E8
+ ldr r0, =gUnknown_02039D7B
+ strb r4, [r0]
+ ldr r0, =gUnknown_02039D7C
+ strb r5, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CE018
+
+ thumb_func_start diegohint2
+diegohint2: @ 80CE08C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ cmp r6, 0xE
+ bne _080CE0C0
+ ldr r1, =gPlayerParty
+ movs r0, 0x64
+ muls r0, r7
+ adds r0, r1
+ ldr r1, =gUnknown_02039D08
+ ldr r1, [r1]
+ ldr r2, =0x000020a4
+ adds r1, r2
+ movs r2, 0x64
+ bl memcpy
+ b _080CE0D8
+ .pool
+_080CE0C0:
+ ldr r5, =gUnknown_02039D08
+ ldr r0, [r5]
+ ldr r4, =0x000020a4
+ adds r0, r4
+ bl BoxMonRestorePP
+ ldr r2, [r5]
+ adds r2, r4
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl CopyBoxMonFromAnyBox
+_080CE0D8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end diegohint2
+
+ thumb_func_start sub_80CE0E8
+sub_80CE0E8: @ 80CE0E8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r0, 0xE
+ bne _080CE108
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ bl ZeroMonData
+ b _080CE10C
+ .pool
+_080CE108:
+ bl sub_80D2018
+_080CE10C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CE0E8
+
+ thumb_func_start diegohint1
+diegohint1: @ 80CE110
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ cmp r6, 0xE
+ bne _080CE144
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00002108
+ adds r0, r1
+ ldr r2, =gPlayerParty
+ movs r1, 0x64
+ muls r1, r7
+ adds r1, r2
+ movs r2, 0x64
+ bl memcpy
+ b _080CE154
+ .pool
+_080CE144:
+ ldr r0, =gUnknown_02039D08
+ ldr r2, [r0]
+ ldr r0, =0x00002108
+ adds r2, r0
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl sub_80D2054
+_080CE154:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl diegohint2
+ ldr r5, =gUnknown_02039D08
+ ldr r1, [r5]
+ ldr r4, =0x000020a4
+ adds r0, r1, r4
+ ldr r2, =0x00002108
+ adds r1, r2
+ movs r2, 0x64
+ bl memcpy
+ ldr r0, [r5]
+ adds r0, r4
+ movs r1, 0
+ bl sub_80CEC00
+ ldr r0, =gUnknown_02039D7B
+ strb r6, [r0]
+ ldr r0, =gUnknown_02039D7C
+ strb r7, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end diegohint1
+
+ thumb_func_start sub_80CE19C
+sub_80CE19C: @ 80CE19C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r6, 0
+ bl sub_80C6FD4
+ lsls r0, 16
+ lsrs r4, r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080CE1BA
+ movs r0, 0
+ b _080CE21A
+_080CE1BA:
+ ldr r5, =gUnknown_02039D7A
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080CE1DC
+ lsls r4, 24
+ lsrs r1, r4, 24
+ adds r0, r6, 0
+ bl diegohint2
+ bl sub_80CBAC4
+ movs r0, 0
+ strb r0, [r5]
+ b _080CE1F6
+ .pool
+_080CE1DC:
+ ldr r5, =gUnknown_02039D79
+ ldrb r1, [r5]
+ movs r0, 0xE
+ bl sub_80CE018
+ lsls r4, 24
+ lsrs r1, r4, 24
+ adds r0, r6, 0
+ bl diegohint2
+ ldrb r0, [r5]
+ bl sub_80CBB68
+_080CE1F6:
+ bl StorageGetCurrentBox
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r6, r0
+ bne _080CE208
+ lsrs r0, r4, 24
+ bl sub_80CB140
+_080CE208:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00000cb4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0x1
+_080CE21A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80CE19C
+
+ thumb_func_start sub_80CE22C
+sub_80CE22C: @ 80CE22C
+ push {lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00000cb4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAnim
+ bl sub_80CEB40
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CE22C
+
+ thumb_func_start sub_80CE250
+sub_80CE250: @ 80CE250
+ push {lr}
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080CE264
+ movs r2, 0x2
+ b _080CE274
+ .pool
+_080CE264:
+ ldr r0, =gUnknown_02039D78
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r2, 0x1
+ eors r1, r2
+ negs r0, r1
+ orrs r0, r1
+ lsrs r2, r0, 31
+_080CE274:
+ ldr r0, =gUnknown_02039D79
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ bl sub_80CBF14
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r2, =0x000021e0
+ adds r0, r1, r2
+ ldr r2, =0x00000cee
+ adds r1, r2
+ bl StringCopy
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CE250
+
+ thumb_func_start sub_80CE2A8
+sub_80CE2A8: @ 80CE2A8
+ push {lr}
+ bl sub_80CBFD8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CE2B8
+ movs r0, 0x1
+ b _080CE2CA
+_080CE2B8:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00000cb4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartSpriteAnim
+ movs r0, 0
+_080CE2CA:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80CE2A8
+
+ thumb_func_start sub_80CE2D8
+sub_80CE2D8: @ 80CE2D8
+ push {lr}
+ bl sub_80CC020
+ ldr r1, =gUnknown_02039D7A
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080CE2F0
+ movs r0, 0
+ strb r0, [r1]
+ b _080CE316
+ .pool
+_080CE2F0:
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _080CE304
+ movs r2, 0xE
+ b _080CE30C
+ .pool
+_080CE304:
+ bl StorageGetCurrentBox
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080CE30C:
+ ldr r0, =gUnknown_02039D79
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ bl sub_80CE0E8
+_080CE316:
+ bl sub_80CEB40
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CE2D8
+
+ thumb_func_start sub_80CE324
+sub_80CE324: @ 80CE324
+ push {lr}
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080CE33E
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00000cb4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl StartSpriteAnim
+_080CE33E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CE324
+
+ thumb_func_start sub_80CE350
+sub_80CE350: @ 80CE350
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ movs r5, 0
+ ldr r4, =gUnknown_0857B9A4
+_080CE358:
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ cmp r1, 0x22
+ beq _080CE378
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ movs r0, 0x4
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ bne _080CE37E
+ movs r1, 0x1
+ ldrsb r1, [r4, r1]
+ movs r0, 0x5
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ bne _080CE37E
+_080CE378:
+ ldrh r0, [r4, 0x2]
+ strh r0, [r3]
+ adds r3, 0x2
+_080CE37E:
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, 0x5
+ bls _080CE358
+ ldr r1, =0x00000163
+ adds r0, r1, 0
+ strh r0, [r3]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CE350
+
+ thumb_func_start sub_80CE3A0
+sub_80CE3A0: @ 80CE3A0
+ push {r4,r5,lr}
+ bl sub_80CE51C
+ adds r3, r0, 0
+ cmp r3, 0
+ bne _080CE3D0
+ ldr r2, =gUnknown_02039D08
+ ldr r0, [r2]
+ ldr r1, =0x0000216d
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r2, =0x0000216c
+ adds r0, r2
+ strb r3, [r0]
+ b _080CE504
+ .pool
+_080CE3D0:
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080CE418
+ ldr r4, =gUnknown_02039D08
+ ldr r1, [r4]
+ ldr r3, =0x00002108
+ adds r0, r1, r3
+ ldr r2, =0x000020a4
+ adds r1, r2
+ movs r2, 0x64
+ bl memcpy
+ ldr r0, [r4]
+ ldr r3, =0x00002170
+ adds r0, r3
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r1, =0x00002171
+ adds r0, r1
+ movs r1, 0x1
+ negs r1, r1
+ b _080CE494
+ .pool
+_080CE418:
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _080CE464
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldr r2, =0x00002108
+ adds r0, r2
+ ldr r3, =gPlayerParty
+ ldr r1, =gUnknown_02039D79
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ movs r1, 0x64
+ muls r1, r2
+ adds r1, r3
+ movs r2, 0x64
+ bl memcpy
+ ldr r0, [r4]
+ ldr r3, =0x00002170
+ adds r0, r3
+ movs r1, 0xE
+ strb r1, [r0]
+ b _080CE488
+ .pool
+_080CE464:
+ bl StorageGetCurrentBox
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_02039D79
+ ldrb r1, [r1]
+ ldr r4, =gUnknown_02039D08
+ ldr r2, [r4]
+ ldr r3, =0x00002108
+ adds r2, r3
+ bl sub_80D2054
+ bl StorageGetCurrentBox
+ ldr r1, [r4]
+ ldr r2, =0x00002170
+ adds r1, r2
+ strb r0, [r1]
+_080CE488:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =gUnknown_02039D79
+ ldrb r1, [r1]
+ ldr r3, =0x00002171
+ adds r0, r3
+_080CE494:
+ strb r1, [r0]
+ ldr r5, =gUnknown_02039D08
+ ldr r0, [r5]
+ ldr r4, =0x00002176
+ adds r0, r4
+ bl sub_80CE350
+ ldr r2, [r5]
+ ldr r1, =0x00002108
+ adds r0, r2, r1
+ adds r2, r4
+ movs r1, 0x51
+ bl GetMonData
+ ldr r2, [r5]
+ ldr r3, =0x00002174
+ adds r1, r2, r3
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080CE4E8
+ ldr r0, =0x0000216d
+ adds r1, r2, r0
+ movs r0, 0
+ strb r0, [r1]
+ b _080CE4F8
+ .pool
+_080CE4E8:
+ ldr r1, =0x0000216d
+ adds r0, r2, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r5]
+ ldr r2, =0x0000216c
+ adds r0, r2
+ strb r1, [r0]
+_080CE4F8:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r3, =0x00002172
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0]
+_080CE504:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CE3A0
+
+ thumb_func_start sub_80CE51C
+sub_80CE51C: @ 80CE51C
+ push {r4-r6,lr}
+ ldr r0, =gUnknown_02039D7A
+ ldrb r1, [r0]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r5, r0, 31
+ movs r4, 0
+_080CE52A:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x5
+ bl GetMonData
+ cmp r0, 0
+ beq _080CE53E
+ adds r5, 0x1
+_080CE53E:
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _080CE52A
+ cmp r5, 0x2
+ ble _080CE554
+_080CE548:
+ movs r0, 0x1
+ b _080CE578
+ .pool
+_080CE554:
+ movs r6, 0
+_080CE556:
+ movs r4, 0
+_080CE558:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80D2270
+ cmp r0, 0
+ beq _080CE56A
+ adds r5, 0x1
+ cmp r5, 0x2
+ bgt _080CE548
+_080CE56A:
+ adds r4, 0x1
+ cmp r4, 0x1D
+ ble _080CE558
+ adds r6, 0x1
+ cmp r6, 0xD
+ ble _080CE556
+ movs r0, 0
+_080CE578:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CE51C
+
+ thumb_func_start sub_80CE580
+sub_80CE580: @ 80CE580
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, =gUnknown_02039D08
+ ldr r2, [r0]
+ ldr r3, =0x0000216d
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ adds r5, r0, 0
+ cmp r1, 0
+ beq _080CE5B0
+ ldr r1, =0x0000216c
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ b _080CE736
+ .pool
+_080CE5B0:
+ ldr r3, =0x00002172
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080CE5C4
+ cmp r0, 0x1
+ beq _080CE690
+ b _080CE732
+ .pool
+_080CE5C4:
+ movs r6, 0
+_080CE5C6:
+ ldr r2, [r5]
+ ldr r1, =0x00002170
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xE
+ bne _080CE5E4
+ ldr r3, =0x00002171
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, r6
+ beq _080CE606
+_080CE5E4:
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =0x00002176
+ adds r2, r1
+ movs r1, 0x51
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, [r5]
+ ldr r2, =0x00002174
+ adds r1, r2
+ ldrh r0, [r1]
+ bics r0, r4
+ strh r0, [r1]
+_080CE606:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _080CE5C6
+ ldr r2, =gUnknown_02039D08
+ ldr r1, [r2]
+ ldr r3, =0x00002174
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080CE64C
+ subs r3, 0x7
+ adds r0, r1, r3
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r2, =0x0000216c
+ adds r0, r2
+ strb r1, [r0]
+ b _080CE732
+ .pool
+_080CE64C:
+ ldr r3, =0x0000216e
+ adds r0, r1, r3
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r3, 0x1
+ adds r0, r3
+ strb r1, [r0]
+ ldr r1, [r2]
+ ldr r0, =0x00002172
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080CE732
+ .pool
+_080CE674:
+ ldr r1, =0x0000216d
+ adds r0, r5, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ mov r2, r8
+ ldr r0, [r2]
+ ldr r3, =0x0000216c
+ adds r0, r3
+ strb r1, [r0]
+ b _080CE732
+ .pool
+_080CE690:
+ movs r6, 0
+ mov r8, r5
+ ldr r7, =0x0000ffff
+_080CE696:
+ mov r0, r8
+ ldr r3, [r0]
+ ldr r1, =0x0000216e
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ ldr r2, =0x0000216f
+ adds r1, r3, r2
+ ldrb r1, [r1]
+ adds r2, 0x7
+ adds r3, r2
+ movs r2, 0x51
+ bl GetAndCopyBoxMonDataFromAnyBox
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _080CE6E0
+ ldr r5, [r5]
+ ldr r3, =0x00002170
+ adds r0, r5, r3
+ ldrh r2, [r0]
+ ldr r1, =0x0000216e
+ adds r0, r5, r1
+ ldrh r3, [r0]
+ adds r1, r7, 0
+ ands r1, r2
+ adds r0, r7, 0
+ ands r0, r3
+ cmp r1, r0
+ beq _080CE6E0
+ ldr r2, =0x00002174
+ adds r1, r5, r2
+ ldrh r0, [r1]
+ bics r0, r4
+ strh r0, [r1]
+ cmp r0, 0
+ beq _080CE674
+_080CE6E0:
+ ldr r2, =gUnknown_02039D08
+ ldr r1, [r2]
+ ldr r3, =0x0000216f
+ adds r1, r3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r3, 0
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ adds r5, r2, 0
+ cmp r0, 0x1D
+ ble _080CE728
+ ldr r0, [r2]
+ ldr r1, =0x0000216f
+ adds r0, r1
+ strb r3, [r0]
+ ldr r1, [r2]
+ ldr r0, =0x0000216e
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xD
+ ble _080CE728
+ ldr r0, [r2]
+ ldr r1, =0x0000216d
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r2, =0x0000216c
+ adds r0, r2
+ strb r3, [r0]
+_080CE728:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x1D
+ bls _080CE696
+_080CE732:
+ movs r0, 0x1
+ negs r0, r0
+_080CE736:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80CE580
+
+ thumb_func_start sub_80CE760
+sub_80CE760: @ 80CE760
+ push {lr}
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080CE77A
+ ldr r0, =gUnknown_02039D14
+ ldr r1, =gUnknown_02039D08
+ ldr r1, [r1]
+ ldr r2, =0x000020a4
+ adds r1, r2
+ movs r2, 0x64
+ bl memcpy
+_080CE77A:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CE760
+
+ thumb_func_start sub_80CE790
+sub_80CE790: @ 80CE790
+ push {lr}
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080CE7D8
+ ldr r0, =gUnknown_02039D7B
+ ldrb r0, [r0]
+ cmp r0, 0xE
+ bne _080CE7C8
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x000020a4
+ adds r0, r1
+ ldr r1, =gUnknown_02039D14
+ movs r2, 0x64
+ bl memcpy
+ b _080CE7D8
+ .pool
+_080CE7C8:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x000020a4
+ adds r0, r1
+ ldr r1, =gUnknown_02039D14
+ movs r2, 0x50
+ bl memcpy
+_080CE7D8:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CE790
+
+ thumb_func_start sub_80CE7E8
+sub_80CE7E8: @ 80CE7E8
+ push {r4,r5,lr}
+ ldr r0, =gUnknown_02039D7A
+ ldrb r5, [r0]
+ cmp r5, 0
+ beq _080CE838
+ bl sub_80CE760
+ ldr r3, =gUnknown_02039D08
+ ldr r1, [r3]
+ ldr r0, =0x0000218c
+ adds r2, r1, r0
+ ldr r0, =gUnknown_02039D14
+ str r0, [r2]
+ ldr r2, =0x00002187
+ adds r1, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r0, [r3]
+ ldr r4, =0x00002186
+ adds r0, r4
+ strb r2, [r0]
+ ldr r0, [r3]
+ ldr r1, =0x00002188
+ adds r0, r1
+ strb r2, [r0]
+ b _080CE8CA
+ .pool
+_080CE838:
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _080CE894
+ ldr r4, =gUnknown_02039D08
+ ldr r1, [r4]
+ ldr r0, =0x0000218c
+ adds r2, r1, r0
+ ldr r0, =gPlayerParty
+ str r0, [r2]
+ ldr r0, =gUnknown_02039D79
+ ldrb r0, [r0]
+ ldr r2, =0x00002187
+ adds r1, r2
+ strb r0, [r1]
+ bl sub_80C70C4
+ ldr r1, [r4]
+ subs r0, 0x1
+ ldr r2, =0x00002186
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, [r4]
+ ldr r4, =0x00002188
+ adds r0, r4
+ strb r5, [r0]
+ b _080CE8CA
+ .pool
+_080CE894:
+ bl StorageGetCurrentBox
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl GetBoxedMonPtr
+ ldr r3, =gUnknown_02039D08
+ ldr r2, [r3]
+ ldr r4, =0x0000218c
+ adds r1, r2, r4
+ str r0, [r1]
+ ldr r0, =gUnknown_02039D79
+ ldrb r0, [r0]
+ ldr r1, =0x00002187
+ adds r2, r1
+ strb r0, [r2]
+ ldr r0, [r3]
+ ldr r2, =0x00002186
+ adds r0, r2
+ movs r1, 0x1D
+ strb r1, [r0]
+ ldr r0, [r3]
+ subs r4, 0x4
+ adds r0, r4
+ movs r1, 0x2
+ strb r1, [r0]
+_080CE8CA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CE7E8
+
+ thumb_func_start sub_80CE8E4
+sub_80CE8E4: @ 80CE8E4
+ push {lr}
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080CE8F8
+ bl sub_80CE790
+ b _080CE900
+ .pool
+_080CE8F8:
+ ldr r0, =gUnknown_02039D79
+ ldr r1, =gUnknown_0203CF20
+ ldrb r1, [r1]
+ strb r1, [r0]
+_080CE900:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CE8E4
+
+ thumb_func_start party_compaction
+party_compaction: @ 80CE90C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r7, =0x0000ffff
+ movs r6, 0
+ movs r5, 0
+ movs r0, 0x64
+ mov r9, r0
+ ldr r1, =gPlayerParty
+ mov r8, r1
+ subs r0, 0x65
+ mov r10, r0
+_080CE928:
+ mov r0, r9
+ muls r0, r6
+ mov r1, r8
+ adds r4, r0, r1
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ cmp r0, 0
+ beq _080CE960
+ cmp r6, r5
+ beq _080CE950
+ mov r0, r9
+ muls r0, r5
+ add r0, r8
+ adds r1, r4, 0
+ movs r2, 0x64
+ bl memcpy
+_080CE950:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _080CE96A
+ .pool
+_080CE960:
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r0, r10
+ bne _080CE96A
+ adds r7, r6, 0
+_080CE96A:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _080CE928
+ lsls r7, 16
+ cmp r5, 0x5
+ bhi _080CE992
+ movs r6, 0x64
+ ldr r4, =gPlayerParty
+_080CE97E:
+ adds r0, r5, 0
+ muls r0, r6
+ adds r0, r4
+ bl ZeroMonData
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _080CE97E
+_080CE992:
+ asrs r0, r7, 16
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end party_compaction
+
+ thumb_func_start sub_80CE9A8
+sub_80CE9A8: @ 80CE9A8
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ strb r0, [r1]
+ ldr r2, =gUnknown_02039D08
+ ldr r1, [r2]
+ ldr r3, =0x00000ceb
+ adds r1, r3
+ strb r0, [r1]
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080CE9E8
+ ldr r0, [r2]
+ ldr r1, =0x000020a4
+ adds r0, r1
+ movs r1, 0x8
+ mov r2, sp
+ bl SetMonData
+ b _080CEA1C
+ .pool
+_080CE9E8:
+ ldr r4, =gUnknown_02039D78
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0x1
+ bne _080CEA08
+ ldr r0, =gUnknown_02039D79
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x8
+ mov r2, sp
+ bl SetMonData
+_080CEA08:
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0
+ bne _080CEA1C
+ ldr r0, =gUnknown_02039D79
+ ldrb r0, [r0]
+ movs r1, 0x8
+ mov r2, sp
+ bl SetBoxMonDataFromSelectedBox
+_080CEA1C:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CE9A8
+
+ thumb_func_start sub_80CEA30
+sub_80CEA30: @ 80CEA30
+ push {lr}
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _080CEA64
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080CEA64
+ ldr r0, =gUnknown_02039D79
+ ldrb r0, [r0]
+ bl sub_80C7050
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CEA64
+ movs r0, 0x1
+ b _080CEA66
+ .pool
+_080CEA64:
+ movs r0, 0
+_080CEA66:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CEA30
+
+ thumb_func_start sub_80CEA6C
+sub_80CEA6C: @ 80CEA6C
+ push {lr}
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080CEAC8
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _080CEAAC
+ ldr r0, =gUnknown_02039D79
+ ldrb r0, [r0]
+ bl sub_80C7050
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CEAAC
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r2, =0x00000ced
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080CEAC8
+ ldr r2, =0x000020a4
+ adds r0, r1, r2
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080CEAC8
+_080CEAAC:
+ movs r0, 0x1
+ b _080CEACA
+ .pool
+_080CEAC8:
+ movs r0, 0
+_080CEACA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CEA6C
+
+ thumb_func_start sub_80CEAD0
+sub_80CEAD0: @ 80CEAD0
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_80CEAD0
+
+ thumb_func_start sub_80CEADC
+sub_80CEADC: @ 80CEADC
+ push {lr}
+ movs r1, 0
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ bne _080CEAEE
+ movs r1, 0x1
+_080CEAEE:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80CEADC
+
+ thumb_func_start sub_80CEAF8
+sub_80CEAF8: @ 80CEAF8
+ push {lr}
+ movs r1, 0
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ bne _080CEB16
+ ldr r0, =gUnknown_02039D79
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _080CEB16
+ movs r1, 0x1
+_080CEB16:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80CEAF8
+
+ thumb_func_start sub_80CEB24
+sub_80CEB24: @ 80CEB24
+ push {lr}
+ movs r1, 0
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bne _080CEB36
+ movs r1, 0x1
+_080CEB36:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80CEB24
+
+ thumb_func_start sub_80CEB40
+sub_80CEB40: @ 80CEB40
+ push {r4,lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ movs r2, 0
+ ldr r3, =gUnknown_02039D7A
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _080CEB52
+ movs r2, 0x1
+_080CEB52:
+ ldr r4, =0x00000cea
+ adds r0, r1, r4
+ strb r2, [r0]
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _080CEBD0
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ beq _080CEB8A
+ cmp r0, 0x1
+ bgt _080CEB84
+ cmp r0, 0
+ beq _080CEBBA
+ b _080CEBD0
+ .pool
+_080CEB84:
+ cmp r0, 0x3
+ bgt _080CEBD0
+ b _080CEBB0
+_080CEB8A:
+ ldr r1, =gUnknown_02039D79
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x5
+ bgt _080CEBB0
+ adds r1, r0, 0
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0
+ bl sub_80CEC00
+ b _080CEBD0
+ .pool
+_080CEBB0:
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_80CEC00
+ b _080CEBD0
+_080CEBBA:
+ bl StorageGetCurrentBox
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_02039D79
+ ldrb r1, [r1]
+ bl GetBoxedMonPtr
+ movs r1, 0x1
+ bl sub_80CEC00
+_080CEBD0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CEB40
+
+ thumb_func_start sub_80CEBDC
+sub_80CEBDC: @ 80CEBDC
+ push {lr}
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080CEBF8
+ ldr r0, =gUnknown_02039D14
+ movs r1, 0
+ bl sub_80CEC00
+ b _080CEBFC
+ .pool
+_080CEBF8:
+ bl sub_80CEB40
+_080CEBFC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CEBDC
+
+ thumb_func_start sub_80CEC00
+sub_80CEC00: @ 80CEC00
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r5, r1, 0
+ ldr r0, =gUnknown_02039D08
+ mov r8, r0
+ ldr r1, [r0]
+ ldr r3, =0x00000ce6
+ adds r2, r1, r3
+ movs r0, 0
+ strh r0, [r2]
+ mov r9, r0
+ mov r10, r0
+ cmp r5, 0
+ bne _080CED18
+ adds r6, r4, 0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ mov r2, r8
+ ldr r1, [r2]
+ ldr r3, =0x00000ce4
+ adds r1, r3
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CEC44
+ b _080CEE34
+_080CEC44:
+ adds r0, r4, 0
+ movs r1, 0x4
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ cmp r0, 0
+ beq _080CEC74
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r2, =0x00000ced
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0]
+ b _080CEC86
+ .pool
+_080CEC74:
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ mov r3, r8
+ ldr r1, [r3]
+ ldr r2, =0x00000ced
+ adds r1, r2
+ strb r0, [r1]
+_080CEC86:
+ ldr r4, =gUnknown_02039D08
+ ldr r2, [r4]
+ ldr r5, =0x00000cee
+ adds r2, r5
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl GetMonData
+ ldr r0, [r4]
+ adds r0, r5
+ bl StringGetEnd10
+ adds r0, r6, 0
+ movs r1, 0x38
+ bl GetMonData
+ ldr r1, [r4]
+ ldr r3, =0x00000cec
+ adds r1, r3
+ strb r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0x8
+ bl GetMonData
+ ldr r1, [r4]
+ ldr r2, =0x00000ceb
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0
+ bl GetMonData
+ ldr r1, [r4]
+ movs r3, 0xCE
+ lsls r3, 4
+ adds r1, r3
+ str r0, [r1]
+ adds r0, r6, 0
+ bl pokemon_get_pal
+ ldr r1, [r4]
+ ldr r2, =0x00000cdc
+ adds r1, r2
+ str r0, [r1]
+ adds r0, r6, 0
+ bl GetMonGender
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ adds r0, r6, 0
+ movs r1, 0xC
+ bl GetMonData
+ ldr r1, [r4]
+ ldr r3, =0x00000ce6
+ adds r1, r3
+ strh r0, [r1]
+ b _080CEE26
+ .pool
+_080CED18:
+ cmp r5, 0x1
+ beq _080CED1E
+ b _080CEE1C
+_080CED1E:
+ adds r7, r4, 0
+ adds r0, r7, 0
+ movs r1, 0x41
+ bl GetBoxMonData
+ mov r2, r8
+ ldr r1, [r2]
+ ldr r3, =0x00000ce4
+ adds r1, r3
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CED3A
+ b _080CEE34
+_080CED3A:
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl GetBoxMonData
+ mov r9, r0
+ adds r0, r7, 0
+ movs r1, 0x4
+ bl GetBoxMonData
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ cmp r0, 0
+ beq _080CED6C
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r2, =0x00000ced
+ adds r0, r2
+ strb r5, [r0]
+ b _080CED7E
+ .pool
+_080CED6C:
+ adds r0, r7, 0
+ movs r1, 0x2D
+ bl GetBoxMonData
+ mov r3, r8
+ ldr r1, [r3]
+ ldr r2, =0x00000ced
+ adds r1, r2
+ strb r0, [r1]
+_080CED7E:
+ ldr r5, =gUnknown_02039D08
+ ldr r2, [r5]
+ ldr r4, =0x00000cee
+ adds r2, r4
+ adds r0, r7, 0
+ movs r1, 0x2
+ bl GetBoxMonData
+ ldr r0, [r5]
+ adds r0, r4
+ bl StringGetEnd10
+ adds r0, r7, 0
+ bl GetLevelFromBoxMonExp
+ ldr r1, [r5]
+ ldr r3, =0x00000cec
+ adds r1, r3
+ strb r0, [r1]
+ adds r0, r7, 0
+ movs r1, 0x8
+ bl GetBoxMonData
+ ldr r1, [r5]
+ ldr r2, =0x00000ceb
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r7, 0
+ movs r1, 0
+ bl GetBoxMonData
+ adds r2, r0, 0
+ ldr r1, [r5]
+ movs r6, 0xCE
+ lsls r6, 4
+ adds r0, r1, r6
+ str r2, [r0]
+ subs r4, 0xA
+ adds r1, r4
+ ldrh r0, [r1]
+ mov r1, r9
+ bl species_and_otid_get_pal
+ ldr r1, [r5]
+ ldr r3, =0x00000cdc
+ adds r2, r1, r3
+ str r0, [r2]
+ adds r4, r1, r4
+ ldrh r0, [r4]
+ adds r1, r6
+ ldr r1, [r1]
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ adds r0, r7, 0
+ movs r1, 0xC
+ bl GetBoxMonData
+ ldr r1, [r5]
+ ldr r2, =0x00000ce6
+ adds r1, r2
+ strh r0, [r1]
+ b _080CEE26
+ .pool
+_080CEE1C:
+ ldr r3, =0x00000ce4
+ adds r0, r1, r3
+ mov r1, r9
+ strh r1, [r0]
+ strh r1, [r2]
+_080CEE26:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r2, =0x00000ce4
+ adds r0, r1, r2
+ ldrh r2, [r0]
+ cmp r2, 0
+ bne _080CEE94
+_080CEE34:
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldr r3, =0x00000cee
+ adds r0, r3
+ movs r1, 0
+ movs r2, 0x5
+ bl StringFill
+ ldr r0, [r4]
+ ldr r1, =0x00000cf9
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0x8
+ bl StringFill
+ ldr r0, [r4]
+ ldr r2, =0x00000d1d
+ adds r0, r2
+ movs r1, 0
+ movs r2, 0x8
+ bl StringFill
+ ldr r0, [r4]
+ ldr r3, =0x00000d41
+ adds r0, r3
+ movs r1, 0
+ movs r2, 0x8
+ bl StringFill
+ ldr r0, [r4]
+ ldr r1, =0x00000d65
+ adds r0, r1
+ b _080CEEF2
+ .pool
+_080CEE94:
+ ldr r3, =0x00000ced
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080CEF14
+ mov r0, r10
+ cmp r0, 0
+ beq _080CEEC0
+ ldr r2, =0x00000cf9
+ adds r0, r1, r2
+ adds r3, 0x1
+ adds r1, r3
+ movs r2, 0
+ movs r3, 0x5
+ bl StringCopyPadded
+ b _080CEECE
+ .pool
+_080CEEC0:
+ ldr r2, =0x00000cf9
+ adds r0, r1, r2
+ ldr r1, =gText_EggNickname
+ movs r2, 0
+ movs r3, 0x8
+ bl StringCopyPadded
+_080CEECE:
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldr r3, =0x00000d1d
+ adds r0, r3
+ movs r1, 0
+ movs r2, 0x8
+ bl StringFill
+ ldr r0, [r4]
+ ldr r1, =0x00000d41
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0x8
+ bl StringFill
+ ldr r0, [r4]
+ ldr r2, =0x00000d65
+ adds r0, r2
+_080CEEF2:
+ movs r1, 0
+ movs r2, 0x8
+ bl StringFill
+ b _080CF0B8
+ .pool
+_080CEF14:
+ cmp r2, 0x1D
+ beq _080CEF1C
+ cmp r2, 0x20
+ bne _080CEF20
+_080CEF1C:
+ movs r3, 0xFF
+ mov r9, r3
+_080CEF20:
+ ldr r4, =gUnknown_02039D08
+ ldr r1, [r4]
+ ldr r2, =0x00000cf9
+ adds r0, r1, r2
+ ldr r3, =0x00000cee
+ adds r1, r3
+ movs r2, 0
+ movs r3, 0x5
+ bl StringCopyPadded
+ ldr r1, [r4]
+ ldr r0, =0x00000d1d
+ adds r2, r1, r0
+ movs r0, 0xBA
+ strb r0, [r2]
+ ldr r3, =0x00000d1e
+ adds r2, r1, r3
+ ldr r0, [r4]
+ ldr r1, =0x00000ce4
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, =gSpeciesNames
+ adds r1, r0
+ adds r0, r2, 0
+ movs r2, 0
+ movs r3, 0x5
+ bl StringCopyPadded
+ ldr r4, [r4]
+ ldr r3, =0x00000d41
+ adds r2, r4, r3
+ movs r0, 0xFC
+ strb r0, [r2]
+ ldr r0, =0x00000d42
+ adds r2, r4, r0
+ movs r0, 0x4
+ strb r0, [r2]
+ ldr r1, =0x00000d43
+ adds r2, r4, r1
+ mov r3, r9
+ cmp r3, 0
+ beq _080CEFD4
+ cmp r3, 0xFE
+ beq _080CF000
+ movs r0, 0x2
+ strb r0, [r2]
+ ldr r0, =0x00000d44
+ adds r2, r4, r0
+ movs r0, 0x1
+ strb r0, [r2]
+ adds r1, 0x2
+ adds r2, r4, r1
+ movs r0, 0x3
+ strb r0, [r2]
+ ldr r3, =0x00000d46
+ adds r2, r4, r3
+ movs r0, 0x77
+ strb r0, [r2]
+ ldr r0, =0x00000d47
+ adds r2, r4, r0
+ b _080CF020
+ .pool
+_080CEFD4:
+ strb r0, [r2]
+ ldr r1, =0x00000d44
+ adds r2, r4, r1
+ movs r0, 0x1
+ strb r0, [r2]
+ ldr r3, =0x00000d45
+ adds r2, r4, r3
+ movs r0, 0x5
+ strb r0, [r2]
+ ldr r0, =0x00000d46
+ adds r2, r4, r0
+ movs r0, 0xB5
+ strb r0, [r2]
+ adds r1, 0x3
+ adds r2, r4, r1
+ b _080CF020
+ .pool
+_080CF000:
+ movs r0, 0x6
+ strb r0, [r2]
+ ldr r3, =0x00000d44
+ adds r2, r4, r3
+ movs r0, 0x1
+ strb r0, [r2]
+ ldr r0, =0x00000d45
+ adds r2, r4, r0
+ movs r0, 0x7
+ strb r0, [r2]
+ ldr r1, =0x00000d46
+ adds r2, r4, r1
+ movs r0, 0xB6
+ strb r0, [r2]
+ adds r3, 0x3
+ adds r2, r4, r3
+_080CF020:
+ movs r0, 0xFC
+ strb r0, [r2]
+ adds r2, 0x1
+ movs r0, 0x4
+ strb r0, [r2]
+ adds r2, 0x1
+ movs r0, 0x2
+ strb r0, [r2]
+ adds r2, 0x1
+ movs r0, 0x1
+ strb r0, [r2]
+ adds r2, 0x1
+ movs r0, 0x3
+ strb r0, [r2]
+ adds r2, 0x1
+ movs r5, 0
+ strb r5, [r2]
+ adds r2, 0x1
+ movs r0, 0xF9
+ strb r0, [r2]
+ adds r2, 0x1
+ movs r0, 0x5
+ strb r0, [r2]
+ adds r2, 0x1
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldr r1, =0x00000cec
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r2, r0, 0
+ strb r5, [r2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x1]
+ ldr r4, [r4]
+ ldr r2, =0x00000ce6
+ adds r1, r4, r2
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _080CF0AC
+ ldr r3, =0x00000d65
+ adds r4, r3
+ bl ItemId_GetItem
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0x8
+ bl StringCopyPadded
+ b _080CF0B8
+ .pool
+_080CF0AC:
+ ldr r1, =0x00000d65
+ adds r0, r4, r1
+ movs r1, 0
+ movs r2, 0x8
+ bl StringFill
+_080CF0B8:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CEC00
+
+ thumb_func_start sub_80CF0CC
+sub_80CF0CC: @ 80CF0CC
+ push {lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x000021ff
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080CF0F4
+ cmp r0, 0x1
+ ble _080CF0E4
+ cmp r0, 0x2
+ beq _080CF0FA
+_080CF0E4:
+ bl sub_80CF108
+ b _080CF0FE
+ .pool
+_080CF0F4:
+ bl sub_80CF374
+ b _080CF0FE
+_080CF0FA:
+ bl sub_80CF4B0
+_080CF0FE:
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CF0CC
+
+ thumb_func_start sub_80CF108
+sub_80CF108: @ 80CF108
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ mov r8, r0
+ ldr r2, =gUnknown_02039D79
+ ldrb r4, [r2]
+ ldr r5, =gUnknown_02039D08
+ ldr r0, [r5]
+ ldr r1, =0x00000cd2
+ mov r10, r1
+ add r0, r10
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r5]
+ ldr r7, =0x00000cd3
+ adds r0, r7
+ strb r1, [r0]
+ ldr r0, [r5]
+ ldr r3, =0x00000cd7
+ mov r9, r3
+ add r0, r9
+ strb r1, [r0]
+ ldr r6, =gMain
+ ldrh r1, [r6, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ adds r3, r2, 0
+ cmp r0, 0
+ beq _080CF14C
+ b _080CF33C
+_080CF14C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF1A8
+ movs r6, 0x1
+ lsls r0, r4, 24
+ movs r1, 0xC0
+ lsls r1, 19
+ adds r0, r1
+ lsrs r4, r0, 24
+ asrs r0, 24
+ cmp r0, 0x1D
+ bgt _080CF168
+ b _080CF358
+_080CF168:
+ movs r2, 0x3
+ mov r8, r2
+ subs r0, 0x1E
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, [r5]
+ add r0, r10
+ strb r6, [r0]
+ ldr r0, [r5]
+ add r0, r9
+ strb r6, [r0]
+ b _080CF358
+ .pool
+_080CF1A8:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF1DE
+ movs r6, 0x1
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ movs r1, 0x6
+ bl __modsi3
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF1CA
+ lsls r0, r4, 24
+ movs r3, 0xFF
+ lsls r3, 24
+ b _080CF34C
+_080CF1CA:
+ ldr r0, [r5]
+ adds r0, r7
+ movs r1, 0xFF
+ strb r1, [r0]
+ lsls r0, r4, 24
+ movs r1, 0xA0
+ lsls r1, 19
+ adds r0, r1
+ lsrs r4, r0, 24
+ b _080CF358
+_080CF1DE:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF212
+ movs r6, 0x1
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ adds r0, 0x1
+ movs r1, 0x6
+ bl __modsi3
+ cmp r0, 0
+ beq _080CF204
+ lsls r0, r4, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r4, r0, 24
+ b _080CF358
+_080CF204:
+ ldr r0, [r5]
+ adds r0, r7
+ strb r6, [r0]
+ lsls r0, r4, 24
+ movs r3, 0xFB
+ lsls r3, 24
+ b _080CF34C
+_080CF212:
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF220
+ movs r6, 0x1
+ b _080CF352
+_080CF220:
+ movs r4, 0x1
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF2E4
+ bl sub_80CFA5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF2E4
+ ldr r0, =gUnknown_02039D7D
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080CF244
+ movs r0, 0x8
+ b _080CF366
+ .pool
+_080CF244:
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x2
+ bne _080CF254
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080CF2D4
+_080CF254:
+ movs r0, 0
+ bl sub_80CFF98
+ subs r0, 0x1
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xE
+ bhi _080CF2E4
+ lsls r0, 2
+ ldr r1, =_080CF278
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080CF278:
+ .4byte _080CF2B4
+ .4byte _080CF2B8
+ .4byte _080CF2BC
+ .4byte _080CF2C0
+ .4byte _080CF2C4
+ .4byte _080CF2E4
+ .4byte _080CF2E4
+ .4byte _080CF2E4
+ .4byte _080CF2E4
+ .4byte _080CF2E4
+ .4byte _080CF2E4
+ .4byte _080CF2C8
+ .4byte _080CF2CC
+ .4byte _080CF2E4
+ .4byte _080CF2D0
+_080CF2B4:
+ movs r0, 0xB
+ b _080CF366
+_080CF2B8:
+ movs r0, 0xC
+ b _080CF366
+_080CF2BC:
+ movs r0, 0xD
+ b _080CF366
+_080CF2C0:
+ movs r0, 0xE
+ b _080CF366
+_080CF2C4:
+ movs r0, 0xF
+ b _080CF366
+_080CF2C8:
+ movs r0, 0x10
+ b _080CF366
+_080CF2CC:
+ movs r0, 0x11
+ b _080CF366
+_080CF2D0:
+ movs r0, 0x12
+ b _080CF366
+_080CF2D4:
+ ldr r2, =0x000021ff
+ adds r0, r1, r2
+ strb r4, [r0]
+ movs r0, 0x14
+ b _080CF366
+ .pool
+_080CF2E4:
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF2F8
+ movs r0, 0x13
+ b _080CF366
+ .pool
+_080CF2F8:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _080CF326
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF318
+ movs r0, 0xA
+ b _080CF366
+ .pool
+_080CF318:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF326
+ movs r0, 0x9
+ b _080CF366
+_080CF326:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF338
+ bl sub_80CFDC4
+ movs r0, 0
+ b _080CF366
+_080CF338:
+ movs r6, 0
+ b _080CF364
+_080CF33C:
+ movs r6, 0x1
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0x5
+ ble _080CF352
+ lsls r0, r4, 24
+ movs r3, 0xFA
+ lsls r3, 24
+_080CF34C:
+ adds r0, r3
+ lsrs r4, r0, 24
+ b _080CF358
+_080CF352:
+ movs r0, 0x2
+ mov r8, r0
+ movs r4, 0
+_080CF358:
+ cmp r6, 0
+ beq _080CF364
+ mov r0, r8
+ adds r1, r4, 0
+ bl sub_80CD894
+_080CF364:
+ adds r0, r6, 0
+_080CF366:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CF108
+
+ thumb_func_start sub_80CF374
+sub_80CF374: @ 80CF374
+ push {r4,lr}
+ ldr r1, =gMain
+ ldrh r0, [r1, 0x2C]
+ movs r4, 0x1
+ ands r4, r0
+ cmp r4, 0
+ beq _080CF428
+ ldrh r1, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF3AC
+ ldr r4, =gUnknown_02039D79
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ movs r1, 0x6
+ bl __divsi3
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF420
+ ldrb r1, [r4]
+ subs r1, 0x6
+ b _080CF40E
+ .pool
+_080CF3AC:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF3CC
+ ldr r1, =gUnknown_02039D79
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ adds r0, 0x6
+ cmp r0, 0x1D
+ bgt _080CF420
+ ldrb r1, [r1]
+ adds r1, 0x6
+ b _080CF40E
+ .pool
+_080CF3CC:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF3F0
+ ldr r4, =gUnknown_02039D79
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ movs r1, 0x6
+ bl __modsi3
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF420
+ ldrb r1, [r4]
+ subs r1, 0x1
+ b _080CF40E
+ .pool
+_080CF3F0:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF424
+ ldr r4, =gUnknown_02039D79
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ adds r0, 0x1
+ movs r1, 0x6
+ bl __modsi3
+ cmp r0, 0
+ beq _080CF420
+ ldrb r1, [r4]
+ adds r1, 0x1
+_080CF40E:
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_80CD894
+ movs r0, 0x15
+ b _080CF49C
+ .pool
+_080CF420:
+ movs r0, 0x18
+ b _080CF49C
+_080CF424:
+ movs r0, 0
+ b _080CF49C
+_080CF428:
+ bl sub_80D0BA4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_02039D79
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ cmp r0, r1
+ beq _080CF47C
+ ldr r2, =gUnknown_02039D7A
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r3, =0x00000ce4
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ negs r0, r0
+ lsrs r0, 31
+ strb r0, [r2]
+ ldr r0, =0x000021ff
+ adds r1, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ bl StorageGetCurrentBox
+ ldr r1, =gUnknown_02039D7B
+ strb r0, [r1]
+ movs r0, 0x17
+ b _080CF49C
+ .pool
+_080CF47C:
+ ldr r1, =gUnknown_02039D08
+ ldr r0, [r1]
+ ldr r2, =0x000021ff
+ adds r0, r2
+ strb r4, [r0]
+ ldr r0, [r1]
+ ldr r3, =0x00000cb8
+ adds r0, r3
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ movs r0, 0x16
+_080CF49C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80CF374
+
+ thumb_func_start sub_80CF4B0
+sub_80CF4B0: @ 80CF4B0
+ push {r4,lr}
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF4DC
+ movs r0, 0
+ bl sub_80D0580
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF588
+ ldr r0, =gUnknown_02039D79
+ ldrb r1, [r0]
+ subs r1, 0x6
+ b _080CF53A
+ .pool
+_080CF4DC:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF4FC
+ movs r0, 0x1
+ bl sub_80D0580
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF588
+ ldr r0, =gUnknown_02039D79
+ ldrb r1, [r0]
+ adds r1, 0x6
+ b _080CF53A
+ .pool
+_080CF4FC:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF51C
+ movs r0, 0x2
+ bl sub_80D0580
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF5A2
+ ldr r0, =gUnknown_02039D79
+ ldrb r1, [r0]
+ subs r1, 0x1
+ b _080CF53A
+ .pool
+_080CF51C:
+ movs r0, 0x10
+ ands r0, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _080CF54C
+ movs r0, 0x3
+ bl sub_80D0580
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF5B6
+ ldr r0, =gUnknown_02039D79
+ ldrb r1, [r0]
+ adds r1, 0x1
+_080CF53A:
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_80CD894
+ movs r0, 0x19
+ b _080CF5BC
+ .pool
+_080CF54C:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF580
+ bl sub_80D0BC0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF588
+ ldr r0, =gUnknown_02039D7A
+ strb r4, [r0]
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x000021ff
+ adds r0, r1
+ strb r4, [r0]
+ movs r0, 0x1A
+ b _080CF5BC
+ .pool
+_080CF580:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF58C
+_080CF588:
+ movs r0, 0x18
+ b _080CF5BC
+_080CF58C:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _080CF5BA
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF5AC
+_080CF5A2:
+ movs r0, 0xA
+ b _080CF5BC
+ .pool
+_080CF5AC:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF5BA
+_080CF5B6:
+ movs r0, 0x9
+ b _080CF5BC
+_080CF5BA:
+ movs r0, 0
+_080CF5BC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CF4B0
+
+ thumb_func_start sub_80CF5C4
+sub_80CF5C4: @ 80CF5C4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ mov r9, r0
+ ldr r6, =gUnknown_02039D79
+ ldrb r4, [r6]
+ ldr r2, =gUnknown_02039D08
+ ldr r0, [r2]
+ ldr r1, =0x00000cd3
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r3, =0x00000cd2
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r3, 0x5
+ adds r0, r3
+ strb r1, [r0]
+ mov r8, r1
+ movs r7, 0
+ ldr r1, =gMain
+ ldrh r3, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r3
+ adds r5, r6, 0
+ mov r12, r1
+ cmp r0, 0
+ beq _080CF608
+ b _080CF7A8
+_080CF608:
+ movs r0, 0x80
+ ands r0, r3
+ cmp r0, 0
+ beq _080CF64C
+ lsls r0, r4, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r4, r0, 24
+ asrs r0, 24
+ cmp r0, 0x6
+ ble _080CF622
+ movs r4, 0
+_080CF622:
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ cmp r0, r1
+ bne _080CF630
+ b _080CF7C6
+_080CF630:
+ movs r7, 0x1
+ b _080CF7CA
+ .pool
+_080CF64C:
+ movs r0, 0x20
+ ands r0, r3
+ cmp r0, 0
+ beq _080CF670
+ ldrb r1, [r5]
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ cmp r0, 0
+ beq _080CF670
+ movs r7, 0x1
+ ldr r0, [r2]
+ ldr r2, =0x00000cd6
+ adds r0, r2
+ strb r1, [r0]
+ movs r4, 0
+ b _080CF7C6
+ .pool
+_080CF670:
+ mov r3, r12
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF69E
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ cmp r0, 0
+ bne _080CF694
+ movs r7, 0x1
+ ldr r0, [r2]
+ ldr r1, =0x00000cd6
+ adds r0, r1
+ ldrb r4, [r0]
+ b _080CF7C6
+ .pool
+_080CF694:
+ movs r7, 0x6
+ movs r2, 0
+ mov r9, r2
+ movs r4, 0
+ b _080CF7C6
+_080CF69E:
+ mov r3, r12
+ ldrh r1, [r3, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF75C
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ cmp r0, 0x6
+ bne _080CF6C4
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _080CF6BE
+ movs r0, 0x4
+ b _080CF7D8
+_080CF6BE:
+ movs r0, 0x1
+ mov r8, r0
+ b _080CF75C
+_080CF6C4:
+ bl sub_80CFA5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF75C
+ ldr r0, =gUnknown_02039D7D
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080CF6E0
+ movs r0, 0x8
+ b _080CF7D8
+ .pool
+_080CF6E0:
+ movs r0, 0
+ bl sub_80CFF98
+ subs r0, 0x1
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xE
+ bhi _080CF75C
+ lsls r0, 2
+ ldr r1, =_080CF700
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080CF700:
+ .4byte _080CF73C
+ .4byte _080CF740
+ .4byte _080CF744
+ .4byte _080CF748
+ .4byte _080CF74C
+ .4byte _080CF75C
+ .4byte _080CF75C
+ .4byte _080CF75C
+ .4byte _080CF75C
+ .4byte _080CF75C
+ .4byte _080CF75C
+ .4byte _080CF750
+ .4byte _080CF754
+ .4byte _080CF75C
+ .4byte _080CF758
+_080CF73C:
+ movs r0, 0xB
+ b _080CF7D8
+_080CF740:
+ movs r0, 0xC
+ b _080CF7D8
+_080CF744:
+ movs r0, 0xD
+ b _080CF7D8
+_080CF748:
+ movs r0, 0xE
+ b _080CF7D8
+_080CF74C:
+ movs r0, 0xF
+ b _080CF7D8
+_080CF750:
+ movs r0, 0x10
+ b _080CF7D8
+_080CF754:
+ movs r0, 0x11
+ b _080CF7D8
+_080CF758:
+ movs r0, 0x12
+ b _080CF7D8
+_080CF75C:
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ mov r12, r2
+ cmp r0, 0
+ beq _080CF784
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _080CF780
+ movs r0, 0x13
+ b _080CF7D8
+ .pool
+_080CF780:
+ movs r1, 0x1
+ mov r8, r1
+_080CF784:
+ mov r2, r8
+ cmp r2, 0
+ beq _080CF794
+ movs r7, 0x6
+ movs r3, 0
+ mov r9, r3
+ movs r4, 0
+ b _080CF7C6
+_080CF794:
+ mov r0, r12
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF7C6
+ bl sub_80CFDC4
+ movs r0, 0
+ b _080CF7D8
+_080CF7A8:
+ lsls r0, r4, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r4, r0, 24
+ cmp r0, 0
+ bge _080CF7B8
+ movs r4, 0x6
+_080CF7B8:
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r6, r1]
+ cmp r0, r1
+ beq _080CF7C6
+ movs r7, 0x1
+_080CF7C6:
+ cmp r7, 0
+ beq _080CF7D6
+_080CF7CA:
+ cmp r7, 0x6
+ beq _080CF7D6
+ mov r0, r9
+ adds r1, r4, 0
+ bl sub_80CD894
+_080CF7D6:
+ adds r0, r7, 0
+_080CF7D8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CF5C4
+
+ thumb_func_start sub_80CF7E4
+sub_80CF7E4: @ 80CF7E4
+ push {r4-r6,lr}
+ ldr r3, =gUnknown_02039D08
+ ldr r0, [r3]
+ ldr r1, =0x00000cd3
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r3]
+ ldr r2, =0x00000cd2
+ adds r0, r2
+ strb r1, [r0]
+ ldr r0, [r3]
+ ldr r5, =0x00000cd7
+ adds r0, r5
+ strb r1, [r0]
+ ldr r1, =gMain
+ ldrh r2, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ bne _080CF8AA
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _080CF834
+ movs r4, 0x1
+ movs r1, 0
+ movs r6, 0x2
+ b _080CF8B6
+ .pool
+_080CF834:
+ ldrh r2, [r1, 0x2C]
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ bne _080CF85A
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ bne _080CF86E
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _080CF872
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r2
+ cmp r0, 0
+ beq _080CF864
+_080CF85A:
+ movs r0, 0xA
+ b _080CF8D2
+ .pool
+_080CF864:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r2
+ cmp r0, 0
+ beq _080CF872
+_080CF86E:
+ movs r0, 0x9
+ b _080CF8D2
+_080CF872:
+ ldrh r1, [r1, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF88A
+ movs r0, 0
+ bl sub_80CD1A8
+ bl sub_80CFA38
+ movs r0, 0x7
+ b _080CF8D2
+_080CF88A:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF896
+ movs r0, 0x13
+ b _080CF8D2
+_080CF896:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF8A6
+ bl sub_80CFDC4
+ movs r0, 0
+ b _080CF8D2
+_080CF8A6:
+ movs r4, 0
+ b _080CF8D0
+_080CF8AA:
+ movs r4, 0x1
+ movs r1, 0x3
+ movs r6, 0
+ ldr r0, [r3]
+ adds r0, r5
+ strb r4, [r0]
+_080CF8B6:
+ cmp r4, 0
+ beq _080CF8D0
+ lsls r5, r1, 24
+ cmp r1, 0x2
+ beq _080CF8C6
+ movs r0, 0
+ bl sub_80CD1A8
+_080CF8C6:
+ lsrs r0, r5, 24
+ lsls r1, r6, 24
+ lsrs r1, 24
+ bl sub_80CD894
+_080CF8D0:
+ adds r0, r4, 0
+_080CF8D2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CF7E4
+
+ thumb_func_start sub_80CF8D8
+sub_80CF8D8: @ 80CF8D8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ mov r8, r0
+ ldr r0, =gUnknown_02039D79
+ mov r12, r0
+ ldrb r2, [r0]
+ ldr r3, =gUnknown_02039D08
+ ldr r0, [r3]
+ ldr r1, =0x00000cd3
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r3]
+ ldr r6, =0x00000cd2
+ adds r0, r6
+ strb r1, [r0]
+ ldr r0, [r3]
+ ldr r5, =0x00000cd7
+ adds r0, r5
+ strb r1, [r0]
+ ldr r7, =gMain
+ ldrh r1, [r7, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ adds r4, r3, 0
+ cmp r0, 0
+ bne _080CF9B2
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF944
+ movs r7, 0x1
+ movs r0, 0x2
+ mov r8, r0
+ movs r2, 0
+ ldr r0, [r4]
+ b _080CF9D0
+ .pool
+_080CF944:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF960
+ movs r7, 0x1
+ lsls r0, r2, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r2, r0, 24
+ cmp r0, 0
+ bge _080CF9D4
+ movs r2, 0x1
+ b _080CF9D4
+_080CF960:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF97E
+ movs r7, 0x1
+ lsls r0, r2, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ ble _080CF9D4
+ movs r2, 0
+ b _080CF9D4
+_080CF97E:
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF992
+ movs r0, 0x4
+ cmp r2, 0
+ bne _080CF9E2
+ movs r0, 0x5
+ b _080CF9E2
+_080CF992:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF99E
+ movs r0, 0x13
+ b _080CF9E2
+_080CF99E:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF9AE
+ bl sub_80CFDC4
+ movs r0, 0
+ b _080CF9E2
+_080CF9AE:
+ movs r7, 0
+ b _080CF9E0
+_080CF9B2:
+ movs r7, 0x1
+ movs r0, 0
+ mov r8, r0
+ ldr r0, [r3]
+ adds r0, r6
+ movs r1, 0xFF
+ strb r1, [r0]
+ mov r1, r12
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ movs r2, 0x1D
+ cmp r0, 0
+ bne _080CF9CE
+ movs r2, 0x18
+_080CF9CE:
+ ldr r0, [r3]
+_080CF9D0:
+ adds r0, r5
+ strb r7, [r0]
+_080CF9D4:
+ cmp r7, 0
+ beq _080CF9E0
+ mov r0, r8
+ adds r1, r2, 0
+ bl sub_80CD894
+_080CF9E0:
+ adds r0, r7, 0
+_080CF9E2:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CF8D8
+
+ thumb_func_start sub_80CF9EC
+sub_80CF9EC: @ 80CF9EC
+ push {r4,r5,lr}
+ movs r3, 0
+ ldr r0, =gUnknown_0857B9BC
+ ldr r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _080CFA30
+ ldr r5, =gUnknown_02039D78
+_080CF9FC:
+ lsls r0, r3, 3
+ adds r2, r0, r4
+ movs r1, 0x4
+ ldrsb r1, [r2, r1]
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ cmp r1, r0
+ bne _080CFA20
+ ldr r0, [r2]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ b _080CFA32
+ .pool
+_080CFA20:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r0, r3, 3
+ adds r0, r4
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080CF9FC
+_080CFA30:
+ movs r0, 0
+_080CFA32:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CF9EC
+
+ thumb_func_start sub_80CFA38
+sub_80CFA38: @ 80CFA38
+ push {lr}
+ bl sub_80CFEF0
+ movs r0, 0x9
+ bl sub_80CFF34
+ movs r0, 0xA
+ bl sub_80CFF34
+ movs r0, 0xB
+ bl sub_80CFF34
+ movs r0, 0
+ bl sub_80CFF34
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CFA38
+
+ thumb_func_start sub_80CFA5C
+sub_80CFA5C: @ 80CFA5C
+ push {lr}
+ bl sub_80CFEF0
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x3
+ bne _080CFA78
+ bl sub_80CFB44
+ b _080CFA7C
+ .pool
+_080CFA78:
+ bl sub_80CFA84
+_080CFA7C:
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CFA5C
+
+ thumb_func_start sub_80CFA84
+sub_80CFA84: @ 80CFA84
+ push {lr}
+ bl sub_80CD504
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ beq _080CFAAE
+ cmp r0, 0x1
+ bgt _080CFAA8
+ cmp r0, 0
+ beq _080CFABA
+ b _080CFAF4
+ .pool
+_080CFAA8:
+ cmp r0, 0x2
+ beq _080CFAC6
+ b _080CFAF4
+_080CFAAE:
+ cmp r1, 0
+ beq _080CFAF4
+ movs r0, 0x1
+ bl sub_80CFF34
+ b _080CFAF8
+_080CFABA:
+ cmp r1, 0
+ beq _080CFAF4
+ movs r0, 0x2
+ bl sub_80CFF34
+ b _080CFAF8
+_080CFAC6:
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080CFAE8
+ cmp r1, 0
+ beq _080CFAE0
+ movs r0, 0x4
+ bl sub_80CFF34
+ b _080CFAF8
+ .pool
+_080CFAE0:
+ movs r0, 0x5
+ bl sub_80CFF34
+ b _080CFAF8
+_080CFAE8:
+ cmp r1, 0
+ beq _080CFAF4
+ movs r0, 0x3
+ bl sub_80CFF34
+ b _080CFAF8
+_080CFAF4:
+ movs r0, 0
+ b _080CFB3E
+_080CFAF8:
+ movs r0, 0x6
+ bl sub_80CFF34
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x2
+ bne _080CFB2A
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bne _080CFB24
+ movs r0, 0x2
+ bl sub_80CFF34
+ b _080CFB2A
+ .pool
+_080CFB24:
+ movs r0, 0x1
+ bl sub_80CFF34
+_080CFB2A:
+ movs r0, 0x8
+ bl sub_80CFF34
+ movs r0, 0x7
+ bl sub_80CFF34
+ movs r0, 0
+ bl sub_80CFF34
+ movs r0, 0x1
+_080CFB3E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CFA84
+
+ thumb_func_start sub_80CFB44
+sub_80CFB44: @ 80CFB44
+ push {r4,r5,lr}
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ ldr r5, =0x00000ce4
+ adds r0, r5
+ ldrh r1, [r0]
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ beq _080CFBDA
+ bl sub_80D127C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CFBAC
+ ldr r2, [r4]
+ ldr r0, =0x00000ce6
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080CFB8C
+ adds r0, r2, r5
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080CFBDA
+ movs r0, 0xE
+ bl sub_80CFF34
+ b _080CFBE4
+ .pool
+_080CFB8C:
+ ldrh r0, [r1]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CFBA4
+ movs r0, 0xC
+ bl sub_80CFF34
+ movs r0, 0x10
+ bl sub_80CFF34
+_080CFBA4:
+ movs r0, 0x11
+ bl sub_80CFF34
+ b _080CFBE4
+_080CFBAC:
+ ldr r2, [r4]
+ ldr r0, =0x00000ce6
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080CFBCC
+ adds r0, r2, r5
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080CFBDA
+ movs r0, 0xD
+ bl sub_80CFF34
+ b _080CFBE4
+ .pool
+_080CFBCC:
+ ldrh r0, [r1]
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CFBDE
+_080CFBDA:
+ movs r0, 0
+ b _080CFBEC
+_080CFBDE:
+ movs r0, 0xF
+ bl sub_80CFF34
+_080CFBE4:
+ movs r0, 0
+ bl sub_80CFF34
+ movs r0, 0x1
+_080CFBEC:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CFB44
+
+ thumb_func_start sub_80CFBF4
+sub_80CFBF4: @ 80CFBF4
+ ldr r1, =gUnknown_02039D08
+ ldr r1, [r1]
+ ldr r2, =0x00000cb4
+ adds r1, r2
+ ldr r2, [r1]
+ ldrh r2, [r2, 0x20]
+ strh r2, [r0, 0x20]
+ ldr r1, [r1]
+ ldrh r1, [r1, 0x22]
+ adds r1, 0x14
+ strh r1, [r0, 0x22]
+ bx lr
+ .pool
+ thumb_func_end sub_80CFBF4
+
+ thumb_func_start sub_80CFC14
+sub_80CFC14: @ 80CFC14
+ push {r4-r6,lr}
+ sub sp, 0x2C
+ mov r1, sp
+ ldr r0, =gUnknown_0857B9E4
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ add r4, sp, 0x18
+ adds r1, r4, 0
+ ldr r0, =gUnknown_0857B9FC
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldr r0, [r0]
+ str r0, [r1]
+ mov r0, sp
+ bl LoadSpriteSheets
+ adds r0, r4, 0
+ bl LoadSpritePalettes
+ ldr r0, =0x0000daca
+ bl IndexOfSpritePaletteTag
+ ldr r6, =gUnknown_02039D08
+ ldr r1, [r6]
+ ldr r4, =0x00000cd8
+ adds r1, r4
+ strb r0, [r1]
+ ldr r0, =0x0000dac7
+ bl IndexOfSpritePaletteTag
+ ldr r1, [r6]
+ ldr r5, =0x00000cd9
+ adds r1, r5
+ strb r0, [r1]
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ ldr r1, =gUnknown_02039D79
+ ldrb r1, [r1]
+ add r4, sp, 0x28
+ mov r5, sp
+ adds r5, 0x2A
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_80CD444
+ ldr r0, =gUnknown_0857BA50
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0
+ ldrsh r2, [r5, r3]
+ movs r3, 0x6
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080CFD18
+ ldr r2, [r6]
+ ldr r4, =0x00000cb4
+ adds r3, r2, r4
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =gSprites
+ adds r1, r0
+ str r1, [r3]
+ ldr r0, =gUnknown_02039D7D
+ ldr r5, =0x00000cd8
+ adds r2, r5
+ ldrb r0, [r0]
+ adds r2, r0
+ ldrb r2, [r2]
+ lsls r2, 4
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ ldr r0, [r6]
+ adds r0, r4
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, =gUnknown_02039D7A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080CFD22
+ ldr r0, [r6]
+ adds r0, r4
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl StartSpriteAnim
+ b _080CFD22
+ .pool
+_080CFD18:
+ ldr r0, [r6]
+ ldr r1, =0x00000cb4
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+_080CFD22:
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _080CFD3C
+ movs r3, 0xD
+ movs r4, 0x1
+ b _080CFD40
+ .pool
+_080CFD3C:
+ movs r3, 0x15
+ movs r4, 0x2
+_080CFD40:
+ ldr r0, =gUnknown_0857BA68
+ movs r1, 0
+ movs r2, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080CFDA8
+ ldr r5, =gUnknown_02039D08
+ ldr r2, [r5]
+ ldr r3, =0x00000cb8
+ adds r2, r3
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =gSprites
+ adds r1, r0
+ str r1, [r2]
+ lsls r3, r4, 2
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080CFDB4
+ ldr r0, [r5]
+ ldr r4, =0x00000cb8
+ adds r0, r4
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ b _080CFDB4
+ .pool
+_080CFDA8:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r5, =0x00000cb8
+ adds r0, r5
+ movs r1, 0
+ str r1, [r0]
+_080CFDB4:
+ add sp, 0x2C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CFC14
+
+ thumb_func_start sub_80CFDC4
+sub_80CFDC4: @ 80CFDC4
+ push {lr}
+ ldr r2, =gUnknown_02039D7D
+ movs r1, 0
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _080CFDD2
+ movs r1, 0x1
+_080CFDD2:
+ strb r1, [r2]
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r3, =0x00000cb4
+ adds r1, r0, r3
+ ldr r3, [r1]
+ ldr r1, =0x00000cd8
+ adds r0, r1
+ ldrb r2, [r2]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r1, 4
+ ldrb r2, [r3, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CFDC4
+
+ thumb_func_start sub_80CFE08
+sub_80CFE08: @ 80CFE08
+ ldr r0, =gUnknown_02039D79
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_80CFE08
+
+ thumb_func_start sub_80CFE14
+sub_80CFE14: @ 80CFE14
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bne _080CFE48
+ ldr r4, =gUnknown_02039D79
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ movs r1, 0x6
+ bl __modsi3
+ strb r0, [r5]
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ movs r1, 0x6
+ bl __divsi3
+ b _080CFE4C
+ .pool
+_080CFE48:
+ movs r0, 0
+ strb r0, [r5]
+_080CFE4C:
+ strb r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CFE14
+
+ thumb_func_start sub_80CFE54
+sub_80CFE54: @ 80CFE54
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r2, =0x00000cb4
+ adds r0, r2
+ ldr r0, [r0]
+ bl StartSpriteAnim
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CFE54
+
+ thumb_func_start sub_80CFE78
+sub_80CFE78: @ 80CFE78
+ ldr r0, =gUnknown_02039D7B
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_80CFE78
+
+ thumb_func_start sub_80CFE84
+sub_80CFE84: @ 80CFE84
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00000cb4
+ adds r0, r1
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ bx lr
+ .pool
+ thumb_func_end sub_80CFE84
+
+ thumb_func_start sub_80CFEA8
+sub_80CFEA8: @ 80CFEA8
+ push {lr}
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bne _080CFEC0
+ ldr r0, =gUnknown_02039D79
+ ldrb r1, [r0]
+ movs r0, 0
+ bl sub_80D0E50
+_080CFEC0:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CFEA8
+
+ thumb_func_start sub_80CFECC
+sub_80CFECC: @ 80CFECC
+ push {lr}
+ ldr r0, =gUnknown_02039D78
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bne _080CFEE4
+ ldr r0, =gUnknown_02039D79
+ ldrb r1, [r0]
+ movs r0, 0
+ bl sub_80D0D8C
+_080CFEE4:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CFECC
+
+ thumb_func_start sub_80CFEF0
+sub_80CFEF0: @ 80CFEF0
+ ldr r2, =gUnknown_02039D08
+ ldr r0, [r2]
+ ldr r1, =0x00000cac
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r3, =0x00000cad
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r2]
+ subs r3, 0x41
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r1, =0x00000c71
+ adds r0, r1
+ movs r1, 0xF
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r3, 0x6
+ adds r0, r3
+ movs r1, 0x5C
+ strh r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_80CFEF0
+
+ thumb_func_start sub_80CFF34
+sub_80CFF34: @ 80CFF34
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r4, =gUnknown_02039D08
+ ldr r2, [r4]
+ ldr r5, =0x00000cac
+ adds r1, r2, r5
+ ldrb r0, [r1]
+ cmp r0, 0x6
+ bhi _080CFF7E
+ adds r1, r0, 0
+ lsls r1, 3
+ ldr r0, =0x00000c74
+ adds r1, r0
+ adds r1, r2, r1
+ ldr r2, =gUnknown_0857BA80
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ bl StringLength
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, [r4]
+ ldr r2, =0x00000cad
+ adds r0, r2
+ ldrb r2, [r0]
+ cmp r1, r2
+ bls _080CFF74
+ strb r1, [r0]
+_080CFF74:
+ ldr r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080CFF7E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CFF34
+
+ thumb_func_start sub_80CFF98
+sub_80CFF98: @ 80CFF98
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldr r3, =0x00000cac
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080CFFC8
+ lsls r0, r2, 3
+ ldr r2, =0x00000c78
+ adds r1, r2
+ adds r1, r0
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ b _080CFFCC
+ .pool
+_080CFFC8:
+ movs r0, 0x1
+ negs r0, r0
+_080CFFCC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CFF98
+
+ thumb_func_start sub_80CFFD0
+sub_80CFFD0: @ 80CFFD0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r5, =gUnknown_02039D08
+ ldr r1, [r5]
+ ldr r2, =0x00000cad
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r0, 0x2
+ subs r2, 0x3E
+ adds r1, r2
+ strb r0, [r1]
+ ldr r1, [r5]
+ ldr r6, =0x00000cac
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ lsls r0, 1
+ movs r3, 0xC7
+ lsls r3, 4
+ adds r1, r3
+ strb r0, [r1]
+ ldr r1, [r5]
+ adds r2, r1, r2
+ ldrb r2, [r2]
+ movs r0, 0x1D
+ subs r0, r2
+ ldr r2, =0x00000c6d
+ adds r1, r2
+ strb r0, [r1]
+ ldr r1, [r5]
+ adds r3, r1, r3
+ ldrb r2, [r3]
+ movs r0, 0xF
+ subs r0, r2
+ ldr r3, =0x00000c6e
+ adds r1, r3
+ strb r0, [r1]
+ ldr r0, [r5]
+ ldr r1, =0x00000c6c
+ adds r0, r1
+ bl AddWindow
+ ldr r1, [r5]
+ movs r4, 0xCB
+ lsls r4, 4
+ adds r1, r4
+ movs r2, 0
+ mov r8, r2
+ strh r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ bl ClearWindowTilemap
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0
+ movs r2, 0xB
+ movs r3, 0xE
+ bl SetWindowBorderStyle
+ ldr r2, [r5]
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ ldr r3, =0x00000c74
+ adds r2, r3
+ bl PrintMenuTable
+ ldr r1, [r5]
+ adds r4, r1, r4
+ ldrb r0, [r4]
+ adds r1, r6
+ ldrb r1, [r1]
+ movs r2, 0
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r0, [r5]
+ ldr r1, =0x00000cae
+ adds r0, r1
+ mov r2, r8
+ strb r2, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80CFFD0
+
+ thumb_func_start sub_80D00A8
+sub_80D00A8: @ 80D00A8
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80D00A8
+
+ thumb_func_start sub_80D00AC
+sub_80D00AC: @ 80D00AC
+ push {r4,r5,lr}
+ movs r5, 0x2
+ negs r5, r5
+ ldr r4, =gMain
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080D0102
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D00CE
+ movs r0, 0x5
+ bl PlaySE
+ adds r5, 0x1
+_080D00CE:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080D00EC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _080D010A
+ .pool
+_080D00EC:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080D010A
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _080D010A
+_080D0102:
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080D010A:
+ movs r0, 0x2
+ negs r0, r0
+ cmp r5, r0
+ beq _080D0116
+ bl sub_80D013C
+_080D0116:
+ cmp r5, 0
+ blt _080D0128
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ lsls r1, r5, 3
+ ldr r2, =0x00000c78
+ adds r0, r2
+ adds r0, r1
+ ldr r5, [r0]
+_080D0128:
+ lsls r0, r5, 16
+ asrs r0, 16
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80D00AC
+
+ thumb_func_start sub_80D013C
+sub_80D013C: @ 80D013C
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_02039D08
+ ldr r0, [r5]
+ movs r4, 0xCB
+ lsls r4, 4
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8198070
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl RemoveWindow
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D013C
+
+ thumb_func_start sub_80D0164
+sub_80D0164: @ 80D0164
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D80
+ ldr r0, =0x00000974
+ bl Alloc
+ str r0, [r4]
+ cmp r0, 0
+ beq _080D01B0
+ ldr r0, =gUnknown_0857BB1C
+ bl AddWindow8Bit
+ adds r1, r0, 0
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ movs r2, 0x88
+ lsls r2, 6
+ adds r0, r2
+ strh r1, [r0]
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, 0xFF
+ beq _080D01B0
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x1
+ b _080D01B2
+ .pool
+_080D01B0:
+ movs r0, 0
+_080D01B2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D0164
+
+ thumb_func_start sub_80D01B8
+sub_80D01B8: @ 80D01B8
+ push {lr}
+ ldr r0, =gUnknown_02039D80
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080D01C6
+ bl Free
+_080D01C6:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D01B8
+
+ thumb_func_start sub_80D01D0
+sub_80D01D0: @ 80D01D0
+ ldr r2, =gUnknown_02039D80
+ ldr r1, [r2]
+ movs r3, 0
+ strb r0, [r1]
+ ldr r0, [r2]
+ strb r3, [r0, 0x1]
+ bx lr
+ .pool
+ thumb_func_end sub_80D01D0
+
+ thumb_func_start sub_80D01E4
+sub_80D01E4: @ 80D01E4
+ push {lr}
+ ldr r0, =gUnknown_02039D80
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bhi _080D0244
+ lsls r0, 2
+ ldr r1, =_080D0204
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080D0204:
+ .4byte _080D021C
+ .4byte _080D0222
+ .4byte _080D0228
+ .4byte _080D022E
+ .4byte _080D0234
+ .4byte _080D023A
+_080D021C:
+ bl sub_80D024C
+ b _080D023E
+_080D0222:
+ bl sub_80D0344
+ b _080D023E
+_080D0228:
+ bl sub_80D03B0
+ b _080D023E
+_080D022E:
+ bl sub_80D0420
+ b _080D023E
+_080D0234:
+ bl sub_80D04A0
+ b _080D023E
+_080D023A:
+ bl sub_80D04C8
+_080D023E:
+ lsls r0, 24
+ lsrs r0, 24
+ b _080D0246
+_080D0244:
+ movs r0, 0
+_080D0246:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D01E4
+
+ thumb_func_start sub_80D024C
+sub_80D024C: @ 80D024C
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r6, =gUnknown_02039D80
+ ldr r1, [r6]
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x1
+ beq _080D027C
+ cmp r0, 0x1
+ bgt _080D0268
+ cmp r0, 0
+ beq _080D026E
+ b _080D0338
+ .pool
+_080D0268:
+ cmp r0, 0x2
+ beq _080D0324
+ b _080D0338
+_080D026E:
+ movs r0, 0
+ bl HideBg
+ movs r0, 0x80
+ bl sub_80D304C
+ b _080D030E
+_080D027C:
+ adds r0, r1, 0x2
+ adds r1, 0x3
+ bl sub_80CFE14
+ ldr r1, [r6]
+ ldrb r0, [r1, 0x2]
+ strb r0, [r1, 0x4]
+ ldr r1, [r6]
+ ldrb r0, [r1, 0x3]
+ strb r0, [r1, 0x5]
+ ldr r4, =0xfffffc00
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x20
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ ldr r5, =gUnknown_02039D08
+ ldr r0, [r5]
+ movs r4, 0x88
+ lsls r4, 6
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0
+ bl FillWindowPixelBuffer8Bit
+ ldr r1, [r6]
+ ldrb r0, [r1, 0x2]
+ ldrb r1, [r1, 0x3]
+ bl sub_80D07B0
+ movs r0, 0
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetBgAttribute
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl PutWindowTilemap
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl CopyWindowToVram8Bit
+ movs r0, 0xFC
+ lsls r0, 6
+ ldr r2, =0x00007fff
+ movs r1, 0x8
+ bl BlendPalettes
+ movs r0, 0x2
+ bl sub_80CFE54
+ movs r0, 0x8
+ movs r1, 0x80
+ bl SetGpuRegBits
+_080D030E:
+ ldr r1, [r6]
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x1
+ strb r0, [r1, 0x1]
+ b _080D0338
+ .pool
+_080D0324:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0338
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0
+ b _080D033A
+_080D0338:
+ movs r0, 0x1
+_080D033A:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D024C
+
+ thumb_func_start sub_80D0344
+sub_80D0344: @ 80D0344
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D80
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ beq _080D036E
+ cmp r0, 0x1
+ bgt _080D0360
+ cmp r0, 0
+ beq _080D0366
+ b _080D03A8
+ .pool
+_080D0360:
+ cmp r0, 0x2
+ beq _080D0382
+ b _080D03A8
+_080D0366:
+ movs r0, 0
+ bl HideBg
+ b _080D0378
+_080D036E:
+ bl sub_80D0B5C
+ movs r0, 0
+ bl sub_80CFE54
+_080D0378:
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x1
+ strb r0, [r1, 0x1]
+ b _080D03A8
+_080D0382:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D03A8
+ bl sub_80CFE84
+ movs r0, 0x3
+ bl stdpal_get
+ movs r1, 0xD0
+ movs r2, 0x20
+ bl LoadPalette
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0
+ b _080D03AA
+_080D03A8:
+ movs r0, 0x1
+_080D03AA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D0344
+
+ thumb_func_start sub_80D03B0
+sub_80D03B0: @ 80D03B0
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D80
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _080D03C8
+ cmp r0, 0x1
+ beq _080D040C
+ b _080D0416
+ .pool
+_080D03C8:
+ bl sub_80CD554
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0416
+ ldr r1, [r4]
+ adds r0, r1, 0x6
+ adds r1, 0x7
+ bl sub_80CFE14
+ bl sub_80D062C
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x6]
+ strb r0, [r1, 0x4]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x7]
+ strb r0, [r1, 0x5]
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ movs r1, 0x88
+ lsls r1, 6
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl CopyWindowToVram8Bit
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x1
+ strb r0, [r1, 0x1]
+ b _080D0416
+ .pool
+_080D040C:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _080D0418
+_080D0416:
+ movs r0, 0x1
+_080D0418:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D03B0
+
+ thumb_func_start sub_80D0420
+sub_80D0420: @ 80D0420
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D80
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ beq _080D044E
+ cmp r0, 0x1
+ bgt _080D043C
+ cmp r0, 0
+ beq _080D0442
+ b _080D0498
+ .pool
+_080D043C:
+ cmp r0, 0x2
+ beq _080D047A
+ b _080D0498
+_080D0442:
+ bl sub_80D08CC
+ bl sub_80D09A4
+ movs r0, 0
+ b _080D046C
+_080D044E:
+ bl sub_80CDCAC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0498
+ movs r0, 0x3
+ bl sub_80CFE54
+ movs r1, 0x80
+ lsls r1, 1
+ movs r0, 0
+ movs r2, 0x8
+ bl sub_80D0884
+ movs r0, 0x1
+_080D046C:
+ bl sub_80CDC64
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x1
+ strb r0, [r1, 0x1]
+ b _080D0498
+_080D047A:
+ bl sub_80D0894
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80CDCAC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, 0
+ bne _080D0498
+ cmp r0, 0
+ bne _080D0498
+ movs r0, 0
+ b _080D049A
+_080D0498:
+ movs r0, 0x1
+_080D049A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D0420
+
+ thumb_func_start sub_80D04A0
+sub_80D04A0: @ 80D04A0
+ push {r4,lr}
+ bl sub_80CD554
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80D0894
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, 0
+ bne _080D04C0
+ cmp r0, 0
+ bne _080D04C0
+ movs r0, 0
+ b _080D04C2
+_080D04C0:
+ movs r0, 0x1
+_080D04C2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D04A0
+
+ thumb_func_start sub_80D04C8
+sub_80D04C8: @ 80D04C8
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D80
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ beq _080D0506
+ cmp r0, 0x1
+ bgt _080D04E4
+ cmp r0, 0
+ beq _080D04EE
+ b _080D0576
+ .pool
+_080D04E4:
+ cmp r0, 0x2
+ beq _080D0532
+ cmp r0, 0x3
+ beq _080D0550
+ b _080D0576
+_080D04EE:
+ bl sub_80D0AAC
+ movs r1, 0xFF
+ lsls r1, 8
+ movs r0, 0
+ movs r2, 0x8
+ bl sub_80D0884
+ movs r0, 0
+ bl sub_80CDC64
+ b _080D0546
+_080D0506:
+ bl sub_80CDCAC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0576
+ bl sub_80D0894
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0576
+ bl sub_80D0A1C
+ movs r0, 0x2
+ bl sub_80CFE54
+ movs r0, 0x1
+ bl sub_80CDC64
+ movs r0, 0
+ bl HideBg
+ b _080D0546
+_080D0532:
+ bl sub_80CDCAC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0576
+ movs r0, 0
+ bl sub_80CFE54
+ bl sub_80D0B5C
+_080D0546:
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x1
+ strb r0, [r1, 0x1]
+ b _080D0576
+_080D0550:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0576
+ movs r0, 0x3
+ bl stdpal_get
+ movs r1, 0xD0
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_80CFE84
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0
+ b _080D0578
+_080D0576:
+ movs r0, 0x1
+_080D0578:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D04C8
+
+ thumb_func_start sub_80D0580
+sub_80D0580: @ 80D0580
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x1
+ beq _080D05BC
+ cmp r0, 0x1
+ bgt _080D0596
+ cmp r0, 0
+ beq _080D05A0
+ b _080D0624
+_080D0596:
+ cmp r1, 0x2
+ beq _080D05DC
+ cmp r1, 0x3
+ beq _080D05FC
+ b _080D0624
+_080D05A0:
+ ldr r0, =gUnknown_02039D80
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0
+ beq _080D060A
+ subs r0, 0x1
+ strb r0, [r1, 0x9]
+ movs r1, 0x80
+ lsls r1, 3
+ movs r0, 0
+ b _080D05F0
+ .pool
+_080D05BC:
+ ldr r0, =gUnknown_02039D80
+ ldr r1, [r0]
+ ldrb r2, [r1, 0x9]
+ ldrb r0, [r1, 0xB]
+ adds r0, r2, r0
+ cmp r0, 0x4
+ bgt _080D060A
+ adds r0, r2, 0x1
+ strb r0, [r1, 0x9]
+ movs r1, 0xFC
+ lsls r1, 8
+ movs r0, 0
+ b _080D05F0
+ .pool
+_080D05DC:
+ ldr r0, =gUnknown_02039D80
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0
+ beq _080D060A
+ subs r0, 0x1
+ strb r0, [r1, 0x8]
+ movs r0, 0x80
+ lsls r0, 3
+ movs r1, 0
+_080D05F0:
+ movs r2, 0x6
+ bl sub_80D0884
+ b _080D0624
+ .pool
+_080D05FC:
+ ldr r0, =gUnknown_02039D80
+ ldr r1, [r0]
+ ldrb r2, [r1, 0x8]
+ ldrb r0, [r1, 0xA]
+ adds r0, r2, r0
+ cmp r0, 0x5
+ ble _080D0614
+_080D060A:
+ movs r0, 0
+ b _080D0626
+ .pool
+_080D0614:
+ adds r0, r2, 0x1
+ strb r0, [r1, 0x8]
+ movs r0, 0xFC
+ lsls r0, 8
+ movs r1, 0
+ movs r2, 0x6
+ bl sub_80D0884
+_080D0624:
+ movs r0, 0x1
+_080D0626:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D0580
+
+ thumb_func_start sub_80D062C
+sub_80D062C: @ 80D062C
+ push {r4-r7,lr}
+ ldr r6, =gUnknown_02039D80
+ ldr r2, [r6]
+ ldrb r3, [r2, 0x2]
+ ldrb r5, [r2, 0x6]
+ subs r1, r3, r5
+ cmp r1, 0
+ bge _080D063E
+ negs r1, r1
+_080D063E:
+ ldrb r0, [r2, 0x4]
+ subs r0, r3, r0
+ cmp r0, 0
+ bge _080D0648
+ negs r0, r0
+_080D0648:
+ subs r0, r1, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x7]
+ subs r3, r1, r0
+ cmp r3, 0
+ bge _080D065A
+ negs r3, r3
+_080D065A:
+ ldrb r2, [r2, 0x5]
+ subs r0, r1, r2
+ cmp r0, 0
+ bge _080D0664
+ negs r0, r0
+_080D0664:
+ subs r0, r3, r0
+ lsls r0, 16
+ lsrs r7, r0, 16
+ lsls r0, r4, 16
+ asrs r4, r0, 16
+ cmp r4, 0
+ ble _080D0678
+ adds r0, r5, 0
+ bl sub_80D06D0
+_080D0678:
+ cmp r4, 0
+ bge _080D0694
+ ldr r2, [r6]
+ ldrb r0, [r2, 0x4]
+ ldrb r1, [r2, 0x3]
+ ldrb r2, [r2, 0x5]
+ bl sub_80D0740
+ ldr r2, [r6]
+ ldrb r0, [r2, 0x6]
+ ldrb r1, [r2, 0x3]
+ ldrb r2, [r2, 0x5]
+ bl sub_80D06D0
+_080D0694:
+ lsls r0, r7, 16
+ asrs r4, r0, 16
+ cmp r4, 0
+ ble _080D06A8
+ ldr r2, [r6]
+ ldrb r0, [r2, 0x7]
+ ldrb r1, [r2, 0x2]
+ ldrb r2, [r2, 0x4]
+ bl sub_80D0708
+_080D06A8:
+ cmp r4, 0
+ bge _080D06C4
+ ldr r2, [r6]
+ ldrb r0, [r2, 0x5]
+ ldrb r1, [r2, 0x2]
+ ldrb r2, [r2, 0x4]
+ bl sub_80D0778
+ ldr r2, [r6]
+ ldrb r0, [r2, 0x7]
+ ldrb r1, [r2, 0x2]
+ ldrb r2, [r2, 0x4]
+ bl sub_80D0708
+_080D06C4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D062C
+
+ thumb_func_start sub_80D06D0
+sub_80D06D0: @ 80D06D0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r1, r4, 0
+ lsls r2, 24
+ lsrs r5, r2, 24
+ adds r0, r5, 0
+ cmp r4, r5
+ bls _080D06EE
+ adds r4, r5, 0
+ adds r5, r1, 0
+ cmp r0, r5
+ bhi _080D0700
+_080D06EE:
+ adds r1, r4, 0
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0
+ bl sub_80D07B0
+ cmp r4, r5
+ bls _080D06EE
+_080D0700:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D06D0
+
+ thumb_func_start sub_80D0708
+sub_80D0708: @ 80D0708
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r1, r4, 0
+ lsls r2, 24
+ lsrs r5, r2, 24
+ adds r0, r5, 0
+ cmp r4, r5
+ bls _080D0726
+ adds r4, r5, 0
+ adds r5, r1, 0
+ cmp r0, r5
+ bhi _080D0738
+_080D0726:
+ adds r0, r4, 0
+ adds r1, r0, 0x1
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r1, r6, 0
+ bl sub_80D07B0
+ cmp r4, r5
+ bls _080D0726
+_080D0738:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D0708
+
+ thumb_func_start sub_80D0740
+sub_80D0740: @ 80D0740
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r1, r4, 0
+ lsls r2, 24
+ lsrs r5, r2, 24
+ adds r0, r5, 0
+ cmp r4, r5
+ bls _080D075E
+ adds r4, r5, 0
+ adds r5, r1, 0
+ cmp r0, r5
+ bhi _080D0770
+_080D075E:
+ adds r1, r4, 0
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0
+ bl sub_80D0834
+ cmp r4, r5
+ bls _080D075E
+_080D0770:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D0740
+
+ thumb_func_start sub_80D0778
+sub_80D0778: @ 80D0778
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r1, r4, 0
+ lsls r2, 24
+ lsrs r5, r2, 24
+ adds r0, r5, 0
+ cmp r4, r5
+ bls _080D0796
+ adds r4, r5, 0
+ adds r5, r1, 0
+ cmp r0, r5
+ bhi _080D07A8
+_080D0796:
+ adds r0, r4, 0
+ adds r1, r0, 0x1
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r1, r6, 0
+ bl sub_80D0834
+ cmp r4, r5
+ bls _080D0796
+_080D07A8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D0778
+
+ thumb_func_start sub_80D07B0
+sub_80D07B0: @ 80D07B0
+ push {r4-r7,lr}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r7, r0, r1
+ lsls r4, r7, 1
+ adds r4, r6, r4
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetBoxMonDataFromSelectedBox
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetBoxMonDataFromSelectedBox
+ adds r1, r0, 0
+ cmp r5, 0
+ beq _080D0828
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_80D2EDC
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl sub_80D3080
+ adds r0, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_02039D08
+ ldr r1, [r1]
+ movs r2, 0x88
+ lsls r2, 6
+ adds r1, r2
+ ldrb r3, [r1]
+ movs r2, 0x20
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ lsls r1, r6, 1
+ adds r1, r6
+ lsls r1, 3
+ str r1, [sp, 0x8]
+ lsls r1, r7, 3
+ str r1, [sp, 0xC]
+ str r2, [sp, 0x10]
+ str r2, [sp, 0x14]
+ str r0, [sp, 0x18]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl BlitBitmapRectToWindow4BitTo8Bit
+_080D0828:
+ add sp, 0x1C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D07B0
+
+ thumb_func_start sub_80D0834
+sub_80D0834: @ 80D0834
+ push {r4,r5,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r5, r0, r1
+ lsls r0, r5, 1
+ adds r0, r4, r0
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x41
+ bl GetBoxMonDataFromSelectedBox
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D0878
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ movs r1, 0x88
+ lsls r1, 6
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r2, r4, 1
+ adds r2, r4
+ lsls r2, 3
+ lsls r3, r5, 3
+ movs r1, 0x20
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0
+ bl FillWindowPixelRect8Bit
+_080D0878:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D0834
+
+ thumb_func_start sub_80D0884
+sub_80D0884: @ 80D0884
+ ldr r3, =gUnknown_02039D80
+ ldr r3, [r3]
+ strh r0, [r3, 0xC]
+ strh r1, [r3, 0xE]
+ strh r2, [r3, 0x10]
+ bx lr
+ .pool
+ thumb_func_end sub_80D0884
+
+ thumb_func_start sub_80D0894
+sub_80D0894: @ 80D0894
+ push {r4,lr}
+ ldr r4, =gUnknown_02039D80
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x10]
+ cmp r0, 0
+ beq _080D08BE
+ ldrh r1, [r1, 0xC]
+ movs r0, 0
+ movs r2, 0x1
+ bl ChangeBgX
+ ldr r0, [r4]
+ ldrh r1, [r0, 0xE]
+ movs r0, 0
+ movs r2, 0x1
+ bl ChangeBgY
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x10]
+ subs r0, 0x1
+ strh r0, [r1, 0x10]
+_080D08BE:
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x10]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80D0894
+
+ thumb_func_start sub_80D08CC
+sub_80D08CC: @ 80D08CC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, =gUnknown_02039D80
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x4]
+ ldrb r2, [r1, 0x2]
+ cmp r0, r2
+ bls _080D08E4
+ adds r0, r2, 0
+_080D08E4:
+ strb r0, [r1, 0x8]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x5]
+ ldrb r2, [r1, 0x3]
+ cmp r0, r2
+ bls _080D08F2
+ adds r0, r2, 0
+_080D08F2:
+ strb r0, [r1, 0x9]
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x4]
+ subs r0, r1, r0
+ cmp r0, 0
+ bge _080D0902
+ negs r0, r0
+_080D0902:
+ adds r0, 0x1
+ strb r0, [r2, 0xA]
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x5]
+ subs r0, r1, r0
+ cmp r0, 0
+ bge _080D0914
+ negs r0, r0
+_080D0914:
+ adds r0, 0x1
+ strb r0, [r2, 0xB]
+ bl StorageGetCurrentBox
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ movs r6, 0
+ ldr r0, [r4]
+ ldrb r2, [r0, 0x8]
+ ldrb r1, [r0, 0xA]
+ adds r2, r1
+ mov r8, r2
+ ldrb r1, [r0, 0x9]
+ ldrb r0, [r0, 0xB]
+ adds r0, r1
+ mov r9, r0
+ adds r2, r1, 0
+ cmp r2, r9
+ bge _080D0990
+_080D093C:
+ lsls r0, r2, 1
+ adds r0, r2
+ ldr r3, =gUnknown_02039D80
+ ldr r1, [r3]
+ lsls r0, 1
+ ldrb r3, [r1, 0x8]
+ adds r0, r3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r4, [r1, 0x8]
+ adds r7, r2, 0x1
+ cmp r4, r8
+ bge _080D098A
+ mov r0, r8
+ subs r4, r0, r4
+_080D095A:
+ mov r0, r10
+ adds r1, r5, 0
+ bl GetBoxedMonPtr
+ adds r1, r0, 0
+ ldr r2, =gUnknown_02039D80
+ ldr r0, [r2]
+ lsls r2, r6, 2
+ adds r2, r6
+ lsls r2, 4
+ adds r0, r2
+ adds r0, 0x14
+ movs r2, 0x50
+ bl memcpy
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ subs r4, 0x1
+ cmp r4, 0
+ bne _080D095A
+_080D098A:
+ adds r2, r7, 0
+ cmp r2, r9
+ blt _080D093C
+_080D0990:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D08CC
+
+ thumb_func_start sub_80D09A4
+sub_80D09A4: @ 80D09A4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r4, =gUnknown_02039D80
+ ldr r0, [r4]
+ ldrb r2, [r0, 0x8]
+ ldrb r1, [r0, 0xA]
+ adds r7, r2, r1
+ ldrb r1, [r0, 0x9]
+ ldrb r0, [r0, 0xB]
+ adds r1, r0
+ mov r9, r1
+ bl StorageGetCurrentBox
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, [r4]
+ ldrb r2, [r0, 0x9]
+ cmp r2, r9
+ bge _080D0A0C
+_080D09D0:
+ lsls r0, r2, 1
+ adds r0, r2
+ ldr r1, =gUnknown_02039D80
+ ldr r1, [r1]
+ lsls r0, 1
+ ldrb r3, [r1, 0x8]
+ adds r0, r3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r4, [r1, 0x8]
+ adds r6, r2, 0x1
+ cmp r4, r7
+ bge _080D0A06
+ subs r4, r7, r4
+_080D09EC:
+ adds r0, r5, 0
+ bl sub_80CB778
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_80D2018
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ subs r4, 0x1
+ cmp r4, 0
+ bne _080D09EC
+_080D0A06:
+ adds r2, r6, 0
+ cmp r2, r9
+ blt _080D09D0
+_080D0A0C:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D09A4
+
+ thumb_func_start sub_80D0A1C
+sub_80D0A1C: @ 80D0A1C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, =gUnknown_02039D80
+ ldr r0, [r0]
+ ldrb r2, [r0, 0x8]
+ ldrb r1, [r0, 0xA]
+ adds r2, r1
+ mov r8, r2
+ ldrb r1, [r0, 0x9]
+ ldrb r0, [r0, 0xB]
+ adds r0, r1
+ mov r10, r0
+ movs r6, 0
+ adds r2, r1, 0
+ cmp r2, r10
+ bge _080D0A98
+_080D0A42:
+ lsls r0, r2, 1
+ adds r0, r2
+ ldr r3, =gUnknown_02039D80
+ ldr r1, [r3]
+ lsls r0, 1
+ ldrb r4, [r1, 0x8]
+ adds r0, r4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r4, [r1, 0x8]
+ adds r7, r2, 0x1
+ cmp r4, r8
+ bge _080D0A92
+ mov r9, r3
+ mov r0, r8
+ subs r4, r0, r4
+_080D0A62:
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 4
+ adds r1, 0x14
+ mov r2, r9
+ ldr r0, [r2]
+ adds r0, r1
+ movs r1, 0x5
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _080D0A80
+ adds r0, r5, 0
+ bl sub_80CB140
+_080D0A80:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ subs r4, 0x1
+ cmp r4, 0
+ bne _080D0A62
+_080D0A92:
+ adds r2, r7, 0
+ cmp r2, r10
+ blt _080D0A42
+_080D0A98:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D0A1C
+
+ thumb_func_start sub_80D0AAC
+sub_80D0AAC: @ 80D0AAC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r4, =gUnknown_02039D80
+ ldr r0, [r4]
+ ldrb r2, [r0, 0x8]
+ ldrb r1, [r0, 0xA]
+ adds r2, r1
+ mov r10, r2
+ ldrb r1, [r0, 0x9]
+ ldrb r0, [r0, 0xB]
+ adds r1, r0
+ str r1, [sp]
+ bl StorageGetCurrentBox
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r7, 0
+ ldr r0, [r4]
+ ldrb r3, [r0, 0x9]
+ ldr r0, [sp]
+ cmp r3, r0
+ bge _080D0B46
+_080D0AE2:
+ lsls r0, r3, 1
+ adds r0, r3
+ ldr r2, =gUnknown_02039D80
+ ldr r1, [r2]
+ lsls r0, 1
+ ldrb r4, [r1, 0x8]
+ adds r0, r4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r5, [r1, 0x8]
+ adds r3, 0x1
+ mov r9, r3
+ cmp r5, r10
+ bge _080D0B3E
+ mov r8, r2
+ mov r0, r10
+ subs r5, r0, r5
+_080D0B04:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 4
+ adds r4, r0, 0
+ adds r4, 0x14
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r4
+ movs r1, 0x5
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _080D0B2C
+ mov r0, r8
+ ldr r2, [r0]
+ adds r2, r4
+ ldr r0, [sp, 0x4]
+ adds r1, r6, 0
+ bl CopyBoxMonFromAnyBox
+_080D0B2C:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ subs r5, 0x1
+ cmp r5, 0
+ bne _080D0B04
+_080D0B3E:
+ mov r3, r9
+ ldr r1, [sp]
+ cmp r3, r1
+ blt _080D0AE2
+_080D0B46:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D0AAC
+
+ thumb_func_start sub_80D0B5C
+sub_80D0B5C: @ 80D0B5C
+ push {lr}
+ sub sp, 0x8
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0
+ movs r1, 0x4
+ movs r2, 0
+ bl SetBgAttribute
+ movs r0, 0x8
+ movs r1, 0x80
+ bl ClearGpuRegBits
+ movs r0, 0x20
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D0B5C
+
+ thumb_func_start sub_80D0BA4
+sub_80D0BA4: @ 80D0BA4
+ ldr r0, =gUnknown_02039D80
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x3]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ ldrb r2, [r2, 0x2]
+ adds r0, r2
+ lsls r0, 24
+ lsrs r0, 24
+ bx lr
+ .pool
+ thumb_func_end sub_80D0BA4
+
+ thumb_func_start sub_80D0BC0
+sub_80D0BC0: @ 80D0BC0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, =gUnknown_02039D80
+ ldr r0, [r0]
+ ldrb r2, [r0, 0x8]
+ ldrb r1, [r0, 0xA]
+ adds r2, r1
+ mov r9, r2
+ ldrb r1, [r0, 0x9]
+ ldrb r0, [r0, 0xB]
+ adds r0, r1, r0
+ str r0, [sp]
+ movs r7, 0
+ adds r6, r1, 0
+ cmp r6, r0
+ bge _080D0C4E
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 1
+ mov r8, r0
+_080D0BF0:
+ ldr r2, =gUnknown_02039D80
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x8]
+ add r0, r8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r4, [r1, 0x8]
+ cmp r4, r9
+ bge _080D0C42
+ mov r10, r2
+_080D0C04:
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 4
+ adds r1, 0x14
+ mov r2, r10
+ ldr r0, [r2]
+ adds r0, r1
+ movs r1, 0x5
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _080D0C30
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl GetBoxMonDataFromSelectedBox
+ cmp r0, 0
+ beq _080D0C30
+ movs r0, 0
+ b _080D0C50
+ .pool
+_080D0C30:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x1
+ cmp r4, r9
+ blt _080D0C04
+_080D0C42:
+ movs r0, 0x6
+ add r8, r0
+ adds r6, 0x1
+ ldr r2, [sp]
+ cmp r6, r2
+ blt _080D0BF0
+_080D0C4E:
+ movs r0, 0x1
+_080D0C50:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D0BC0
+
+ thumb_func_start sub_80D0C60
+sub_80D0C60: @ 80D0C60
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ ldr r3, =gUnknown_02039D08
+ ldr r0, [r3]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x3
+ bne _080D0D3E
+ ldr r0, =gUnknown_03000F78
+ str r0, [sp, 0x18]
+ ldr r1, =0xffff0000
+ add r2, sp, 0x18
+ ldr r0, [r2, 0x4]
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 2
+ orrs r0, r1
+ str r0, [r2, 0x4]
+ mov r1, sp
+ ldr r0, =gUnknown_0857BC70
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ movs r7, 0
+ mov r9, r2
+ mov r8, r3
+ movs r0, 0
+ mov r10, r0
+_080D0CA0:
+ adds r6, r7, 0x7
+ lsls r1, r6, 16
+ mov r2, r9
+ ldrh r0, [r2, 0x4]
+ orrs r0, r1
+ str r0, [r2, 0x4]
+ mov r0, r9
+ bl LoadCompressedObjectPic
+ mov r4, r9
+ ldrh r0, [r4, 0x6]
+ bl GetSpriteTileStartByTag
+ mov r5, r8
+ ldr r1, [r5]
+ lsls r5, r7, 4
+ ldr r2, =0x00002208
+ adds r1, r2
+ adds r1, r5
+ lsls r0, 16
+ lsrs r0, 11
+ ldr r4, =0x06010000
+ adds r0, r4
+ str r0, [r1]
+ ldr r0, =0xffffdacb
+ adds r4, r7, r0
+ lsls r0, r4, 16
+ lsrs r0, 16
+ bl AllocSpritePalette
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, r5
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =0x0000220c
+ adds r1, r2
+ strh r0, [r1]
+ ldrh r0, [r1]
+ lsls r0, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2
+ strh r0, [r1]
+ mov r0, sp
+ strh r6, [r0]
+ strh r4, [r0, 0x2]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0xB
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r4, r8
+ ldr r2, [r4]
+ ldr r6, =0x00002204
+ adds r2, r6
+ adds r2, r5
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =gSprites
+ adds r1, r0
+ str r1, [r2]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, r5
+ ldr r1, =0x00002210
+ adds r0, r1
+ mov r2, r10
+ strb r2, [r0]
+ adds r7, 0x1
+ cmp r7, 0x2
+ ble _080D0CA0
+_080D0D3E:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r4, =0x00002234
+ adds r0, r4
+ movs r1, 0
+ strh r1, [r0]
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D0C60
+
+ thumb_func_start sub_80D0D8C
+sub_80D0D8C: @ 80D0D8C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x3
+ bne _080D0E42
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_80D1324
+ cmp r0, 0
+ bne _080D0E42
+ mov r0, r8
+ cmp r0, 0
+ beq _080D0DC4
+ cmp r0, 0x1
+ beq _080D0DDA
+ b _080D0E42
+ .pool
+_080D0DC4:
+ adds r0, r7, 0
+ movs r1, 0x5
+ bl GetBoxMonDataFromSelectedBox
+ cmp r0, 0
+ beq _080D0E42
+ adds r0, r7, 0
+ movs r1, 0xC
+ bl GetBoxMonDataFromSelectedBox
+ b _080D0DFC
+_080D0DDA:
+ cmp r7, 0x5
+ bhi _080D0E42
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl GetMonData
+ cmp r0, 0
+ beq _080D0E42
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+_080D0DFC:
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _080D0E42
+ adds r0, r4, 0
+ bl GetItemIconPic
+ adds r6, r0, 0
+ adds r0, r4, 0
+ bl GetItemIconPalette
+ adds r5, r0, 0
+ bl sub_80D12E8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ mov r1, r8
+ adds r2, r7, 0
+ bl sub_80D140C
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80D1524
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80D15D4
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80D1740
+_080D0E42:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D0D8C
+
+ thumb_func_start sub_80D0E50
+sub_80D0E50: @ 80D0E50
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x3
+ bne _080D0E86
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_80D1370
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_80D15D4
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r6, 0
+ adds r3, r5, 0
+ bl sub_80D1604
+_080D0E86:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D0E50
+
+ thumb_func_start sub_80D0E90
+sub_80D0E90: @ 80D0E90
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ adds r7, r5, 0
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x3
+ bne _080D0F20
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_80D1370
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r1, 0
+ mov r0, sp
+ strh r1, [r0]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_80D15D4
+ adds r0, r4, 0
+ movs r1, 0x1
+ adds r2, r6, 0
+ adds r3, r5, 0
+ bl sub_80D1604
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0
+ bl sub_80D140C
+ cmp r6, 0
+ bne _080D0EF8
+ adds r0, r5, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetBoxMonDataFromSelectedBox
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80CB7AC
+ b _080D0F10
+ .pool
+_080D0EF8:
+ movs r0, 0x64
+ muls r0, r7
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_80CBBDC
+_080D0F10:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r2, =0x00000ce6
+ adds r1, r0, r2
+ ldrh r1, [r1]
+ ldr r2, =0x00002234
+ adds r0, r2
+ strh r1, [r0]
+_080D0F20:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D0E90
+
+ thumb_func_start sub_80D0F38
+sub_80D0F38: @ 80D0F38
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r5, 0
+ bl GetItemIconPic
+ mov r8, r0
+ adds r0, r5, 0
+ bl GetItemIconPalette
+ adds r6, r0, 0
+ bl sub_80D12E8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ mov r1, r8
+ adds r2, r6, 0
+ bl sub_80D1524
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl sub_80D15D4
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl sub_80D1604
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0
+ bl sub_80D140C
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80D1740
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00002234
+ adds r0, r1
+ strh r5, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D0F38
+
+ thumb_func_start sub_80D0FAC
+sub_80D0FAC: @ 80D0FAC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r0, =gUnknown_02039D08
+ mov r8, r0
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x3
+ bne _080D106A
+ mov r0, r9
+ adds r1, r7, 0
+ bl sub_80D1370
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_80D15D4
+ adds r0, r4, 0
+ movs r1, 0x3
+ movs r2, 0x2
+ movs r3, 0
+ bl sub_80D1604
+ mov r1, r9
+ cmp r1, 0
+ bne _080D101C
+ adds r0, r7, 0
+ movs r1, 0xC
+ bl GetBoxMonDataFromSelectedBox
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r0, r8
+ ldr r2, [r0]
+ ldr r4, =0x00002234
+ adds r2, r4
+ adds r0, r7, 0
+ movs r1, 0xC
+ bl SetBoxMonDataFromSelectedBox
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r4
+ b _080D1048
+ .pool
+_080D101C:
+ movs r0, 0x64
+ adds r4, r7, 0
+ muls r4, r0
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r0, r8
+ ldr r2, [r0]
+ ldr r5, =0x00002234
+ adds r2, r5
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r5
+_080D1048:
+ strh r6, [r0]
+ movs r0, 0x2
+ movs r1, 0
+ bl sub_80D1370
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ movs r1, 0x4
+ bl sub_80D15D4
+ adds r0, r4, 0
+ movs r1, 0x4
+ mov r2, r9
+ adds r3, r7, 0
+ bl sub_80D1604
+_080D106A:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D0FAC
+
+ thumb_func_start sub_80D1080
+sub_80D1080: @ 80D1080
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ mov r8, r5
+ ldr r6, =gUnknown_02039D08
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x3
+ bne _080D1100
+ movs r0, 0x2
+ movs r1, 0
+ bl sub_80D1370
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x4
+ bl sub_80D15D4
+ adds r0, r4, 0
+ movs r1, 0x2
+ adds r2, r7, 0
+ adds r3, r5, 0
+ bl sub_80D1604
+ cmp r7, 0
+ bne _080D10E0
+ ldr r2, [r6]
+ ldr r0, =0x00002234
+ adds r2, r0
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl SetBoxMonDataFromSelectedBox
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80CB7AC
+ b _080D1100
+ .pool
+_080D10E0:
+ movs r0, 0x64
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r2, [r6]
+ ldr r1, =0x00002234
+ adds r2, r1
+ movs r1, 0xC
+ bl SetMonData
+ mov r0, r8
+ movs r1, 0
+ bl sub_80CBBDC
+_080D1100:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D1080
+
+ thumb_func_start sub_80D1114
+sub_80D1114: @ 80D1114
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ adds r7, r5, 0
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x3
+ bne _080D1188
+ movs r1, 0
+ mov r0, sp
+ strh r1, [r0]
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_80D1370
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_80D15D4
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r6, 0
+ adds r3, r5, 0
+ bl sub_80D1604
+ cmp r6, 0
+ bne _080D1170
+ adds r0, r5, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetBoxMonDataFromSelectedBox
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80CB7AC
+ b _080D1188
+ .pool
+_080D1170:
+ movs r0, 0x64
+ muls r0, r7
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_80CBBDC
+_080D1188:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D1114
+
+ thumb_func_start sub_80D1194
+sub_80D1194: @ 80D1194
+ push {r4,lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x3
+ bne _080D11C2
+ movs r0, 0x2
+ movs r1, 0
+ bl sub_80D1370
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl sub_80D15D4
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0
+ bl sub_80D1604
+_080D11C2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D1194
+
+ thumb_func_start sub_80D11CC
+sub_80D11CC: @ 80D11CC
+ push {r4,lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x3
+ bne _080D120A
+ movs r4, 0
+_080D11DA:
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ lsls r0, r4, 4
+ adds r1, r0
+ ldr r2, =0x00002210
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080D1204
+ subs r2, 0x2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080D1204
+ lsls r0, r4, 24
+ lsrs r0, 24
+ movs r1, 0x7
+ movs r2, 0x2
+ movs r3, 0
+ bl sub_80D1604
+_080D1204:
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _080D11DA
+_080D120A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D11CC
+
+ thumb_func_start sub_80D1218
+sub_80D1218: @ 80D1218
+ push {r4,r5,lr}
+ movs r5, 0
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00002204
+ adds r4, r0, r1
+ adds r3, r0, 0
+_080D1226:
+ ldr r1, =0x00002210
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080D1268
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x28
+ ands r0, r1
+ cmp r0, 0x8
+ beq _080D124E
+ ldr r1, [r2, 0x1C]
+ ldr r0, =SpriteCallbackDummy
+ cmp r1, r0
+ beq _080D1268
+ ldr r0, =sub_80D1AD8
+ cmp r1, r0
+ beq _080D1268
+_080D124E:
+ movs r0, 0x1
+ b _080D1274
+ .pool
+_080D1268:
+ adds r4, 0x10
+ adds r3, 0x10
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _080D1226
+ movs r0, 0
+_080D1274:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D1218
+
+ thumb_func_start sub_80D127C
+sub_80D127C: @ 80D127C
+ push {lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x3
+ bne _080D12B0
+ movs r2, 0
+ ldr r0, =0x0000220e
+ adds r1, r0
+_080D128E:
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ beq _080D12A8
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bne _080D12A8
+ movs r0, 0x1
+ b _080D12B2
+ .pool
+_080D12A8:
+ adds r1, 0x10
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _080D128E
+_080D12B0:
+ movs r0, 0
+_080D12B2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D127C
+
+ thumb_func_start sub_80D12B8
+sub_80D12B8: @ 80D12B8
+ push {lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00002234
+ adds r0, r1
+ ldrh r0, [r0]
+ bl ItemId_GetItem
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80D12B8
+
+ thumb_func_start sub_80D12D4
+sub_80D12D4: @ 80D12D4
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00002234
+ adds r0, r1
+ ldrh r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_80D12D4
+
+ thumb_func_start sub_80D12E8
+sub_80D12E8: @ 80D12E8
+ push {r4,r5,lr}
+ movs r2, 0
+ ldr r5, =gUnknown_02039D08
+ ldr r3, =0x00002210
+ movs r4, 0x1
+_080D12F2:
+ ldr r0, [r5]
+ lsls r1, r2, 4
+ adds r0, r1
+ adds r1, r0, r3
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080D1310
+ strb r4, [r1]
+ adds r0, r2, 0
+ b _080D131C
+ .pool
+_080D1310:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _080D12F2
+ movs r0, 0x3
+_080D131C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D12E8
+
+ thumb_func_start sub_80D1324
+sub_80D1324: @ 80D1324
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0
+ ldr r0, =gUnknown_02039D08
+ ldr r2, [r0]
+_080D1334:
+ ldr r5, =0x00002210
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080D1360
+ subs r5, 0x2
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ cmp r0, r4
+ bne _080D1360
+ adds r5, 0x1
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _080D1360
+ movs r0, 0x1
+ b _080D136A
+ .pool
+_080D1360:
+ adds r2, 0x10
+ adds r3, 0x1
+ cmp r3, 0x2
+ ble _080D1334
+ movs r0, 0
+_080D136A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D1324
+
+ thumb_func_start sub_80D1370
+sub_80D1370: @ 80D1370
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ movs r3, 0
+ ldr r0, =gUnknown_02039D08
+ ldr r1, [r0]
+_080D1380:
+ lsls r0, r3, 4
+ adds r2, r1, r0
+ ldr r6, =0x00002210
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080D13B0
+ subs r6, 0x2
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ cmp r0, r5
+ bne _080D13B0
+ adds r6, 0x1
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ cmp r0, r4
+ bne _080D13B0
+ adds r0, r3, 0
+ b _080D13BC
+ .pool
+_080D13B0:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x2
+ bls _080D1380
+ movs r0, 0x3
+_080D13BC:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D1370
+
+ thumb_func_start sub_80D13C4
+sub_80D13C4: @ 80D13C4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r2, 0
+ ldr r0, =gUnknown_02039D08
+ ldr r3, [r0]
+ ldr r0, =0x00002204
+ adds r4, r3, r0
+ ldr r6, =0x00002210
+_080D13D4:
+ lsls r1, r2, 4
+ adds r0, r3, r1
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080D13F8
+ adds r0, r4, r1
+ ldr r0, [r0]
+ cmp r0, r5
+ bne _080D13F8
+ adds r0, r2, 0
+ b _080D1404
+ .pool
+_080D13F8:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _080D13D4
+ movs r0, 0x3
+_080D1404:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D13C4
+
+ thumb_func_start sub_80D140C
+sub_80D140C: @ 80D140C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r2, 24
+ lsrs r7, r2, 24
+ cmp r5, 0x2
+ bhi _080D150A
+ cmp r1, 0
+ beq _080D1438
+ cmp r1, 0x1
+ beq _080D1494
+ ldr r4, =gUnknown_02039D08
+ lsls r3, r5, 4
+ b _080D14F4
+ .pool
+_080D1438:
+ adds r0, r7, 0
+ movs r1, 0x6
+ bl __umodsi3
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r7, 0
+ movs r1, 0x6
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r6, =gUnknown_02039D08
+ ldr r2, [r6]
+ lsls r5, 4
+ ldr r1, =0x00002204
+ adds r2, r1
+ adds r2, r5
+ ldr r3, [r2]
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 3
+ adds r1, 0x70
+ strh r1, [r3, 0x20]
+ ldr r3, [r2]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, 0x38
+ strh r1, [r3, 0x22]
+ ldr r2, [r2]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ adds r4, r6, 0
+ adds r3, r5, 0
+ b _080D14F4
+ .pool
+_080D1494:
+ cmp r7, 0
+ bne _080D14BC
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ lsls r3, r5, 4
+ ldr r1, =0x00002204
+ adds r0, r1
+ adds r0, r3
+ ldr r2, [r0]
+ movs r1, 0x74
+ strh r1, [r2, 0x20]
+ ldr r1, [r0]
+ movs r0, 0x4C
+ strh r0, [r1, 0x22]
+ b _080D14DC
+ .pool
+_080D14BC:
+ ldr r4, =gUnknown_02039D08
+ ldr r0, [r4]
+ lsls r3, r5, 4
+ ldr r1, =0x00002204
+ adds r0, r1
+ adds r0, r3
+ ldr r2, [r0]
+ movs r1, 0xA4
+ strh r1, [r2, 0x20]
+ ldr r2, [r0]
+ subs r1, r7, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x1C
+ strh r0, [r2, 0x22]
+_080D14DC:
+ ldr r0, [r4]
+ ldr r1, =0x00002204
+ adds r0, r1
+ adds r0, r3
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+_080D14F4:
+ ldr r0, [r4]
+ adds r0, r3
+ ldr r1, =0x0000220e
+ adds r0, r1
+ mov r1, r8
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, r3
+ ldr r1, =0x0000220f
+ adds r0, r1
+ strb r7, [r0]
+_080D150A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D140C
+
+ thumb_func_start sub_80D1524
+sub_80D1524: @ 80D1524
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ mov r8, r1
+ mov r9, r2
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x2
+ bhi _080D15AC
+ movs r0, 0
+ str r0, [sp]
+ ldr r4, =gUnknown_02039D08
+ ldr r1, [r4]
+ ldr r6, =0x000042c4
+ adds r1, r6
+ ldr r2, =0x01000080
+ mov r0, sp
+ bl CpuFastSet
+ ldr r1, [r4]
+ ldr r5, =0x000022c4
+ adds r1, r5
+ mov r0, r8
+ bl LZ77UnCompWram
+ lsls r7, 4
+ mov r8, r7
+ adds r7, r4, 0
+ movs r4, 0x2
+_080D1562:
+ ldr r1, [r7]
+ adds r0, r1, r5
+ adds r1, r6
+ movs r2, 0x18
+ bl CpuFastSet
+ adds r6, 0x80
+ adds r5, 0x60
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080D1562
+ ldr r5, =gUnknown_02039D08
+ ldr r1, [r5]
+ ldr r4, =0x000042c4
+ adds r0, r1, r4
+ ldr r2, =0x00002208
+ adds r1, r2
+ add r1, r8
+ ldr r1, [r1]
+ movs r2, 0x80
+ bl CpuFastSet
+ ldr r1, [r5]
+ adds r1, r4
+ mov r0, r9
+ bl LZ77UnCompWram
+ ldr r0, [r5]
+ adds r4, r0, r4
+ add r0, r8
+ ldr r1, =0x0000220c
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+_080D15AC:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D1524
+
+ thumb_func_start sub_80D15D4
+sub_80D15D4: @ 80D15D4
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ cmp r2, 0x2
+ bhi _080D15F6
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ lsls r1, r2, 4
+ ldr r2, =0x00002204
+ adds r0, r2
+ adds r0, r1
+ ldr r0, [r0]
+ adds r1, r3, 0
+ bl StartSpriteAffineAnim
+_080D15F6:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D15D4
+
+ thumb_func_start sub_80D1604
+sub_80D1604: @ 80D1604
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r0, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ cmp r4, 0x2
+ bls _080D161C
+ b _080D172E
+_080D161C:
+ cmp r0, 0x7
+ bls _080D1622
+ b _080D172E
+_080D1622:
+ lsls r0, 2
+ ldr r1, =_080D1630
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080D1630:
+ .4byte _080D1650
+ .4byte _080D1674
+ .4byte _080D1698
+ .4byte _080D16C4
+ .4byte _080D16F0
+ .4byte _080D172E
+ .4byte _080D172E
+ .4byte _080D171C
+_080D1650:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ lsls r1, r4, 4
+ ldr r2, =0x00002204
+ adds r0, r2
+ adds r0, r1
+ ldr r1, [r0]
+ strh r4, [r1, 0x2E]
+ ldr r1, [r0]
+ ldr r0, =sub_80D1A48
+ b _080D172C
+ .pool
+_080D1674:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ lsls r1, r4, 4
+ ldr r2, =0x00002204
+ adds r0, r2
+ adds r0, r1
+ ldr r2, [r0]
+ movs r1, 0
+ strh r1, [r2, 0x2E]
+ ldr r1, [r0]
+ ldr r0, =sub_80D1A74
+ b _080D172C
+ .pool
+_080D1698:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ lsls r1, r4, 4
+ ldr r2, =0x00002204
+ adds r0, r2
+ adds r0, r1
+ ldr r2, [r0]
+ movs r1, 0
+ strh r1, [r2, 0x2E]
+ ldr r1, [r0]
+ strh r5, [r1, 0x3A]
+ ldr r1, [r0]
+ strh r3, [r1, 0x3C]
+ ldr r1, [r0]
+ ldr r0, =sub_80D1B14
+ b _080D172C
+ .pool
+_080D16C4:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ lsls r1, r4, 4
+ ldr r2, =0x00002204
+ adds r0, r2
+ adds r0, r1
+ ldr r2, [r0]
+ movs r1, 0
+ strh r1, [r2, 0x2E]
+ ldr r2, [r0]
+ ldr r1, =sub_80D1B94
+ str r1, [r2, 0x1C]
+ strh r5, [r2, 0x3A]
+ ldr r0, [r0]
+ strh r3, [r0, 0x3C]
+ b _080D172E
+ .pool
+_080D16F0:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ lsls r1, r4, 4
+ ldr r2, =0x00002204
+ adds r0, r2
+ adds r0, r1
+ ldr r2, [r0]
+ movs r1, 0
+ strh r1, [r2, 0x2E]
+ ldr r1, [r0]
+ strh r5, [r1, 0x3A]
+ ldr r1, [r0]
+ strh r3, [r1, 0x3C]
+ ldr r1, [r0]
+ ldr r0, =sub_80D1C30
+ b _080D172C
+ .pool
+_080D171C:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ lsls r1, r4, 4
+ ldr r2, =0x00002204
+ adds r0, r2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, =sub_80D1CCC
+_080D172C:
+ str r0, [r1, 0x1C]
+_080D172E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D1604
+
+ thumb_func_start sub_80D1740
+sub_80D1740: @ 80D1740
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r2, 0x2
+ bhi _080D1780
+ ldr r1, =gUnknown_02039D08
+ ldr r0, [r1]
+ lsls r2, 4
+ adds r0, r2
+ ldr r3, =0x00002210
+ adds r0, r3
+ strb r4, [r0]
+ ldr r0, [r1]
+ ldr r1, =0x00002204
+ adds r0, r1
+ adds r0, r2
+ ldr r0, [r0]
+ movs r3, 0
+ cmp r4, 0
+ bne _080D176E
+ movs r3, 0x1
+_080D176E:
+ adds r2, r0, 0
+ adds r2, 0x3E
+ lsls r3, 2
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+_080D1780:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D1740
+
+ thumb_func_start GetItemIconPic
+GetItemIconPic: @ 80D1794
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl GetItemIconPicOrPalette
+ pop {r1}
+ bx r1
+ thumb_func_end GetItemIconPic
+
+ thumb_func_start GetItemIconPalette
+GetItemIconPalette: @ 80D17A4
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl GetItemIconPicOrPalette
+ pop {r1}
+ bx r1
+ thumb_func_end GetItemIconPalette
+
+ thumb_func_start sub_80D17B4
+sub_80D17B4: @ 80D17B4
+ push {r4,lr}
+ sub sp, 0x14
+ bl sub_80D127C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D17D4
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00002234
+ b _080D17DA
+ .pool
+_080D17D4:
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00000ce6
+_080D17DA:
+ adds r0, r1
+ ldrh r0, [r0]
+ bl ItemId_GetDescription
+ adds r4, r0, 0
+ movs r0, 0x2
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ movs r0, 0x1
+ str r0, [sp, 0x10]
+ movs r0, 0x2
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0x4
+ bl sub_8199F74
+ add sp, 0x14
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D17B4
+
+ thumb_func_start sub_80D1818
+sub_80D1818: @ 80D1818
+ push {lr}
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00002236
+ adds r0, r1
+ movs r1, 0x15
+ strh r1, [r0]
+ ldr r1, =gUnknown_0857BB24
+ movs r3, 0x9D
+ lsls r3, 1
+ movs r0, 0
+ movs r2, 0x80
+ bl LoadBgTiles
+ movs r0, 0
+ bl sub_80D19B4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D1818
+
+ thumb_func_start sub_80D184C
+sub_80D184C: @ 80D184C
+ push {r4,r5,lr}
+ sub sp, 0x10
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r2, =0x00002236
+ adds r1, r0, r2
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080D186C
+ movs r0, 0
+ b _080D18D2
+ .pool
+_080D186C:
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrh r1, [r1]
+ movs r0, 0x15
+ subs r5, r0, r1
+ movs r4, 0
+ cmp r4, r5
+ bge _080D18BC
+_080D187C:
+ movs r0, 0
+ movs r1, 0xA
+ bl GetBgAttribute
+ adds r1, r0, 0
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r2, =0x00002236
+ adds r0, r2
+ adds r1, 0x14
+ ldrh r0, [r0]
+ adds r1, r0
+ adds r1, r4
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, r4, 24
+ lsrs r2, 24
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x7
+ str r0, [sp, 0x4]
+ movs r0, 0xF
+ str r0, [sp, 0x8]
+ movs r0, 0x15
+ str r0, [sp, 0xC]
+ movs r0, 0
+ movs r3, 0xD
+ bl WriteSequenceToBgTilemapBuffer
+ adds r4, 0x1
+ cmp r4, r5
+ blt _080D187C
+_080D18BC:
+ adds r0, r5, 0
+ bl sub_80D19B4
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r1, =0x00002236
+ adds r0, r1
+ ldrh r1, [r0]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+_080D18D2:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80D184C
+
+ thumb_func_start sub_80D18E4
+sub_80D18E4: @ 80D18E4
+ push {r4,r5,lr}
+ sub sp, 0x10
+ ldr r5, =gUnknown_02039D08
+ ldr r0, [r5]
+ ldr r4, =0x00002236
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, 0x16
+ bne _080D1904
+ movs r0, 0
+ b _080D19A4
+ .pool
+_080D1904:
+ cmp r0, 0
+ bne _080D1920
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x15
+ movs r3, 0xC
+ bl FillBgTilemapBufferRect
+_080D1920:
+ ldr r1, [r5]
+ adds r1, r4
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ ldrh r1, [r1]
+ movs r0, 0x15
+ subs r5, r0, r1
+ movs r4, 0
+ cmp r4, r5
+ bge _080D1976
+_080D1936:
+ movs r0, 0
+ movs r1, 0xA
+ bl GetBgAttribute
+ adds r1, r0, 0
+ ldr r0, =gUnknown_02039D08
+ ldr r0, [r0]
+ ldr r2, =0x00002236
+ adds r0, r2
+ adds r1, 0x14
+ ldrh r0, [r0]
+ adds r1, r0
+ adds r1, r4
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, r4, 24
+ lsrs r2, 24
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x7
+ str r0, [sp, 0x4]
+ movs r0, 0xF
+ str r0, [sp, 0x8]
+ movs r0, 0x15
+ str r0, [sp, 0xC]
+ movs r0, 0
+ movs r3, 0xD
+ bl WriteSequenceToBgTilemapBuffer
+ adds r4, 0x1
+ cmp r4, r5
+ blt _080D1936
+_080D1976:
+ cmp r5, 0
+ blt _080D1980
+ adds r0, r5, 0
+ bl sub_80D19B4
+_080D1980:
+ adds r2, r5, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0xC
+ bl FillBgTilemapBufferRect
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0x1
+_080D19A4:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80D18E4
+
+ thumb_func_start sub_80D19B4
+sub_80D19B4: @ 80D19B4
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r7, r0, 0
+ cmp r7, 0
+ beq _080D19EC
+ movs r1, 0x9D
+ lsls r1, 1
+ lsls r4, r7, 24
+ lsrs r4, 24
+ str r4, [sp]
+ movs r6, 0x1
+ str r6, [sp, 0x4]
+ movs r5, 0xF
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0xC
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x0000093a
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x14
+ bl FillBgTilemapBufferRect
+_080D19EC:
+ ldr r1, =0x0000013b
+ lsls r5, r7, 24
+ lsrs r5, 24
+ movs r4, 0x1
+ str r4, [sp]
+ movs r0, 0x7
+ str r0, [sp, 0x4]
+ movs r6, 0xF
+ str r6, [sp, 0x8]
+ movs r0, 0
+ adds r2, r5, 0
+ movs r3, 0xD
+ bl FillBgTilemapBufferRect
+ movs r1, 0x9E
+ lsls r1, 1
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0
+ adds r2, r5, 0
+ movs r3, 0xC
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x0000013d
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0
+ adds r2, r5, 0
+ movs r3, 0x14
+ bl FillBgTilemapBufferRect
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D19B4
+
+ thumb_func_start sub_80D1A48
+sub_80D1A48: @ 80D1A48
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080D1A68
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_80D1740
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+_080D1A68:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D1A48
+
+ thumb_func_start sub_80D1A74
+sub_80D1A74: @ 80D1A74
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ cmp r1, 0
+ beq _080D1A86
+ cmp r1, 0x1
+ beq _080D1AA2
+ b _080D1AD0
+_080D1A86:
+ ldrh r0, [r3, 0x20]
+ lsls r0, 4
+ strh r0, [r3, 0x30]
+ ldrh r0, [r3, 0x22]
+ lsls r0, 4
+ strh r0, [r3, 0x32]
+ movs r0, 0xA
+ strh r0, [r3, 0x34]
+ movs r0, 0x15
+ strh r0, [r3, 0x36]
+ strh r1, [r3, 0x38]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+_080D1AA2:
+ ldrh r1, [r3, 0x30]
+ ldrh r0, [r3, 0x34]
+ subs r1, r0
+ strh r1, [r3, 0x30]
+ ldrh r0, [r3, 0x32]
+ ldrh r2, [r3, 0x36]
+ subs r0, r2
+ strh r0, [r3, 0x32]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r3, 0x20]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r3, 0x22]
+ ldrh r0, [r3, 0x38]
+ adds r0, 0x1
+ strh r0, [r3, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ ble _080D1AD0
+ ldr r0, =sub_80D1AD8
+ str r0, [r3, 0x1C]
+_080D1AD0:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D1A74
+
+ thumb_func_start sub_80D1AD8
+sub_80D1AD8: @ 80D1AD8
+ ldr r1, =gUnknown_02039D08
+ ldr r3, [r1]
+ ldr r1, =0x00000cb4
+ adds r3, r1
+ ldr r1, [r3]
+ ldrh r1, [r1, 0x20]
+ adds r1, 0x4
+ strh r1, [r0, 0x20]
+ ldr r2, [r3]
+ ldrh r1, [r2, 0x26]
+ ldrh r2, [r2, 0x22]
+ adds r1, r2
+ adds r1, 0x8
+ strh r1, [r0, 0x22]
+ ldr r1, [r3]
+ ldrb r1, [r1, 0x5]
+ movs r2, 0xC
+ ands r2, r1
+ ldrb r3, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ bx lr
+ .pool
+ thumb_func_end sub_80D1AD8
+
+ thumb_func_start sub_80D1B14
+sub_80D1B14: @ 80D1B14
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ beq _080D1B26
+ cmp r1, 0x1
+ beq _080D1B42
+ b _080D1B8A
+_080D1B26:
+ ldrh r0, [r4, 0x20]
+ lsls r0, 4
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ lsls r0, 4
+ strh r0, [r4, 0x32]
+ movs r0, 0xA
+ strh r0, [r4, 0x34]
+ movs r0, 0x15
+ strh r0, [r4, 0x36]
+ strh r1, [r4, 0x38]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_080D1B42:
+ ldrh r0, [r4, 0x34]
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x36]
+ ldrh r2, [r4, 0x32]
+ adds r1, r2
+ strh r1, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r4, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r4, 0x22]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ ble _080D1B8A
+ adds r0, r4, 0
+ bl sub_80D13C4
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x3A]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x3C]
+ lsls r2, 24
+ lsrs r2, 24
+ bl sub_80D140C
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+_080D1B8A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D1B14
+
+ thumb_func_start sub_80D1B94
+sub_80D1B94: @ 80D1B94
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ beq _080D1BA6
+ cmp r1, 0x1
+ beq _080D1BC2
+ b _080D1C20
+_080D1BA6:
+ ldrh r0, [r4, 0x20]
+ lsls r0, 4
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ lsls r0, 4
+ strh r0, [r4, 0x32]
+ movs r0, 0xA
+ strh r0, [r4, 0x34]
+ movs r0, 0x15
+ strh r0, [r4, 0x36]
+ strh r1, [r4, 0x38]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_080D1BC2:
+ ldrh r1, [r4, 0x30]
+ ldrh r0, [r4, 0x34]
+ subs r1, r0
+ strh r1, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ subs r0, r2
+ strh r0, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r4, 0x22]
+ ldr r1, =gSineTable
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ lsls r0, 4
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ ble _080D1C20
+ adds r0, r4, 0
+ bl sub_80D13C4
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x3A]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x3C]
+ lsls r2, 24
+ lsrs r2, 24
+ bl sub_80D140C
+ movs r0, 0
+ strh r0, [r4, 0x24]
+ ldr r0, =sub_80D1AD8
+ str r0, [r4, 0x1C]
+_080D1C20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D1B94
+
+ thumb_func_start sub_80D1C30
+sub_80D1C30: @ 80D1C30
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ beq _080D1C42
+ cmp r1, 0x1
+ beq _080D1C5E
+ b _080D1CBE
+_080D1C42:
+ ldrh r0, [r4, 0x20]
+ lsls r0, 4
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ lsls r0, 4
+ strh r0, [r4, 0x32]
+ movs r0, 0xA
+ strh r0, [r4, 0x34]
+ movs r0, 0x15
+ strh r0, [r4, 0x36]
+ strh r1, [r4, 0x38]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_080D1C5E:
+ ldrh r0, [r4, 0x34]
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x36]
+ ldrh r2, [r4, 0x32]
+ adds r1, r2
+ strh r1, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r4, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r4, 0x22]
+ ldr r1, =gSineTable
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ lsls r0, 4
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 20
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ ble _080D1CBE
+ adds r0, r4, 0
+ bl sub_80D13C4
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x3A]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x3C]
+ lsls r2, 24
+ lsrs r2, 24
+ bl sub_80D140C
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ strh r0, [r4, 0x24]
+_080D1CBE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D1C30
+
+ thumb_func_start sub_80D1CCC
+sub_80D1CCC: @ 80D1CCC
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x22]
+ subs r0, 0x8
+ strh r0, [r2, 0x22]
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bge _080D1CFC
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+ adds r0, r2, 0
+ bl sub_80D13C4
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_80D1740
+_080D1CFC:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D1CCC
+
+ thumb_func_start TaskDummy0
+TaskDummy0: @ 80D1D04
+ bx lr
+ thumb_func_end TaskDummy0
+
+ thumb_func_start nullsub_98
+nullsub_98: @ 80D1D08
+ bx lr
+ thumb_func_end nullsub_98
+
+ thumb_func_start StorageGetCurrentBox
+@ char StorageGetCurrentBox()
+StorageGetCurrentBox: @ 80D1D0C
+ ldr r0, =gPokemonStoragePtr
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end StorageGetCurrentBox
+
+ thumb_func_start sub_80D1D18
+sub_80D1D18: @ 80D1D18
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xD
+ bhi _080D1D28
+ ldr r0, =gPokemonStoragePtr
+ ldr r0, [r0]
+ strb r1, [r0]
+_080D1D28:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D1D18
+
+ thumb_func_start GetBoxMonDataFromAnyBox
+GetBoxMonDataFromAnyBox: @ 80D1D30
+ push {r4,r5,lr}
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r3, 0xD
+ bhi _080D1D6C
+ cmp r4, 0x1D
+ bhi _080D1D6C
+ ldr r2, =gPokemonStoragePtr
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 5
+ adds r1, 0x4
+ ldr r0, [r2]
+ adds r0, r1
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 4
+ adds r0, r1
+ adds r1, r5, 0
+ bl GetBoxMonData
+ b _080D1D6E
+ .pool
+_080D1D6C:
+ movs r0, 0
+_080D1D6E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end GetBoxMonDataFromAnyBox
+
+ thumb_func_start SetBoxMonDataFromAnyBox
+SetBoxMonDataFromAnyBox: @ 80D1D74
+ push {r4-r6,lr}
+ adds r5, r2, 0
+ adds r6, r3, 0
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r3, 0xD
+ bhi _080D1DAC
+ cmp r4, 0x1D
+ bhi _080D1DAC
+ ldr r2, =gPokemonStoragePtr
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 5
+ adds r1, 0x4
+ ldr r0, [r2]
+ adds r0, r1
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 4
+ adds r0, r1
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl SetBoxMonData
+_080D1DAC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end SetBoxMonDataFromAnyBox
+
+ thumb_func_start GetBoxMonDataFromSelectedBox
+GetBoxMonDataFromSelectedBox: @ 80D1DB8
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, =gPokemonStoragePtr
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ adds r1, r3, 0
+ bl GetBoxMonDataFromAnyBox
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end GetBoxMonDataFromSelectedBox
+
+ thumb_func_start SetBoxMonDataFromSelectedBox
+SetBoxMonDataFromSelectedBox: @ 80D1DD8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r3, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gPokemonStoragePtr
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl SetBoxMonDataFromAnyBox
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end SetBoxMonDataFromSelectedBox
+
+ thumb_func_start GetBoxMonNickFromAnyBox
+GetBoxMonNickFromAnyBox: @ 80D1DFC
+ push {r4,r5,lr}
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r3, 0xD
+ bhi _080D1E38
+ cmp r4, 0x1D
+ bhi _080D1E38
+ ldr r2, =gPokemonStoragePtr
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 5
+ adds r1, 0x4
+ ldr r0, [r2]
+ adds r0, r1
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 4
+ adds r0, r1
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl GetBoxMonData
+ b _080D1E3C
+ .pool
+_080D1E38:
+ movs r0, 0xFF
+ strb r0, [r5]
+_080D1E3C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end GetBoxMonNickFromAnyBox
+
+ thumb_func_start sub_80D1E44
+sub_80D1E44: @ 80D1E44
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r2, r1, 24
+ cmp r0, 0xD
+ bhi _080D1E84
+ cmp r2, 0x1D
+ bhi _080D1E84
+ ldr r6, =gPokemonStoragePtr
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ adds r5, r0, 0x4
+ ldr r0, [r6]
+ adds r0, r5
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r4, r1, 4
+ adds r0, r4
+ movs r1, 0x5
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _080D1E84
+ ldr r0, [r6]
+ adds r0, r5
+ adds r0, r4
+ bl GetLevelFromBoxMonExp
+_080D1E84:
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80D1E44
+
+ thumb_func_start SetBoxMonNickFromAnyBox
+SetBoxMonNickFromAnyBox: @ 80D1E90
+ push {r4,r5,lr}
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r3, 0xD
+ bhi _080D1EC6
+ cmp r4, 0x1D
+ bhi _080D1EC6
+ ldr r2, =gPokemonStoragePtr
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 5
+ adds r1, 0x4
+ ldr r0, [r2]
+ adds r0, r1
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 4
+ adds r0, r1
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl SetBoxMonData
+_080D1EC6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end SetBoxMonNickFromAnyBox
+
+ thumb_func_start GetAndCopyBoxMonDataFromAnyBox
+GetAndCopyBoxMonDataFromAnyBox: @ 80D1ED0
+ push {r4-r6,lr}
+ adds r5, r2, 0
+ adds r6, r3, 0
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r3, 0xD
+ bhi _080D1F10
+ cmp r4, 0x1D
+ bhi _080D1F10
+ ldr r2, =gPokemonStoragePtr
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 5
+ adds r1, 0x4
+ ldr r0, [r2]
+ adds r0, r1
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 4
+ adds r0, r1
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl GetBoxMonData
+ b _080D1F12
+ .pool
+_080D1F10:
+ movs r0, 0
+_080D1F12:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end GetAndCopyBoxMonDataFromAnyBox
+
+ thumb_func_start CopyBoxMonFromAnyBox
+CopyBoxMonFromAnyBox: @ 80D1F18
+ push {r4,r5,lr}
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r4, 0xD
+ bhi _080D1F4E
+ cmp r1, 0x1D
+ bhi _080D1F4E
+ ldr r0, =gPokemonStoragePtr
+ ldr r0, [r0]
+ lsls r3, r1, 2
+ adds r3, r1
+ lsls r3, 4
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r1, r2, 4
+ subs r1, r2
+ lsls r1, 5
+ adds r3, r1
+ adds r0, r3
+ adds r0, 0x4
+ adds r1, r5, 0
+ movs r2, 0x50
+ bl memcpy
+_080D1F4E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end CopyBoxMonFromAnyBox
+
+ thumb_func_start sub_80D1F58
+sub_80D1F58: @ 80D1F58
+ push {r4,r5,lr}
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r2, r1, 24
+ cmp r4, 0xD
+ bhi _080D1F8E
+ cmp r2, 0x1D
+ bhi _080D1F8E
+ ldr r0, =gPokemonStoragePtr
+ ldr r1, [r0]
+ lsls r3, r2, 2
+ adds r3, r2
+ lsls r3, 4
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 5
+ adds r3, r0
+ adds r1, r3
+ adds r1, 0x4
+ adds r0, r5, 0
+ movs r2, 0x50
+ bl memcpy
+_080D1F8E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D1F58
+
+ thumb_func_start sub_80D1F98
+sub_80D1F98: @ 80D1F98
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r4, [sp, 0x30]
+ ldr r5, [sp, 0x34]
+ ldr r6, [sp, 0x3C]
+ mov r12, r6
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 16
+ lsrs r2, 16
+ mov r9, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r0, r12
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r7, 0xD
+ bhi _080D2004
+ cmp r6, 0x1D
+ bhi _080D2004
+ ldr r2, =gPokemonStoragePtr
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 5
+ adds r1, 0x4
+ ldr r0, [r2]
+ adds r0, r1
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 4
+ adds r0, r1
+ str r5, [sp]
+ ldr r1, [sp, 0x38]
+ str r1, [sp, 0x4]
+ str r3, [sp, 0x8]
+ ldr r1, [sp, 0x40]
+ str r1, [sp, 0xC]
+ mov r1, r9
+ mov r2, r8
+ adds r3, r4, 0
+ bl CreateBoxMon
+_080D2004:
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D1F98
+
+ thumb_func_start sub_80D2018
+sub_80D2018: @ 80D2018
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r3, 0xD
+ bhi _080D2048
+ cmp r4, 0x1D
+ bhi _080D2048
+ ldr r2, =gPokemonStoragePtr
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 5
+ adds r1, 0x4
+ ldr r0, [r2]
+ adds r0, r1
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 4
+ adds r0, r1
+ bl ZeroBoxMonData
+_080D2048:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D2018
+
+ thumb_func_start sub_80D2054
+sub_80D2054: @ 80D2054
+ push {r4,r5,lr}
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r3, 0xD
+ bhi _080D2088
+ cmp r4, 0x1D
+ bhi _080D2088
+ ldr r2, =gPokemonStoragePtr
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 5
+ adds r1, 0x4
+ ldr r0, [r2]
+ adds r0, r1
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 4
+ adds r0, r1
+ adds r1, r5, 0
+ bl sub_8069004
+_080D2088:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D2054
+
+ thumb_func_start GetBoxedMonPtr
+@ pokemon *GetBoxedMonPtr(u8 box_id, u8 pos)
+GetBoxedMonPtr: @ 80D2094
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r3, 0xD
+ bhi _080D20C8
+ cmp r4, 0x1D
+ bhi _080D20C8
+ ldr r2, =gPokemonStoragePtr
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 5
+ adds r1, 0x4
+ ldr r0, [r2]
+ adds r0, r1
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 4
+ adds r0, r1
+ b _080D20CA
+ .pool
+_080D20C8:
+ movs r0, 0
+_080D20CA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end GetBoxedMonPtr
+
+ thumb_func_start sav3_get_box_name
+sav3_get_box_name: @ 80D20D0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xD
+ bls _080D20DE
+ movs r0, 0
+ b _080D20EC
+_080D20DE:
+ ldr r0, =gPokemonStoragePtr
+ lsls r1, r2, 3
+ adds r1, r2
+ ldr r2, =0x00008344
+ adds r1, r2
+ ldr r0, [r0]
+ adds r0, r1
+_080D20EC:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sav3_get_box_name
+
+ thumb_func_start sub_80D20F8
+sub_80D20F8: @ 80D20F8
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xD
+ bls _080D2106
+ movs r0, 0
+ b _080D2112
+_080D2106:
+ ldr r0, =gPokemonStoragePtr
+ ldr r0, [r0]
+ ldr r2, =0x000083c2
+ adds r0, r2
+ adds r0, r1
+ ldrb r0, [r0]
+_080D2112:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80D20F8
+
+ thumb_func_start sub_80D2120
+sub_80D2120: @ 80D2120
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r2, 0xD
+ bhi _080D213E
+ cmp r1, 0x10
+ bhi _080D213E
+ ldr r0, =gPokemonStoragePtr
+ ldr r0, [r0]
+ ldr r3, =0x000083c2
+ adds r0, r3
+ adds r0, r2
+ strb r1, [r0]
+_080D213E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D2120
+
+ thumb_func_start sub_80D214C
+sub_80D214C: @ 80D214C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ lsls r1, 24
+ lsrs r0, r1, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ adds r4, r3, 0
+ ldr r2, =0x0000ffff
+ cmp r3, 0x1
+ bhi _080D216E
+ movs r2, 0x1
+ cmp r3, 0x1
+ beq _080D2172
+_080D216E:
+ cmp r4, 0x3
+ bne _080D21BC
+_080D2172:
+ lsls r0, 24
+ asrs r0, 24
+ lsls r2, 16
+ asrs r1, r2, 16
+ adds r1, r0
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ adds r6, r2, 0
+ cmp r1, 0
+ blt _080D2208
+ cmp r1, r7
+ bgt _080D2208
+_080D218A:
+ asrs r4, r0, 16
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ add r0, r8
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _080D21B4
+ asrs r0, r6, 16
+ adds r0, r4, r0
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ blt _080D2208
+ cmp r2, r7
+ ble _080D218A
+ b _080D2208
+ .pool
+_080D21B4:
+ adds r0, r4, 0
+ b _080D220C
+_080D21B8:
+ adds r0, r5, 0
+ b _080D220C
+_080D21BC:
+ lsls r0, 24
+ asrs r0, 24
+ lsls r2, 16
+ asrs r1, r2, 16
+ adds r1, r0
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ adds r6, r2, 0
+ cmp r1, 0
+ blt _080D2208
+ cmp r1, r7
+ bgt _080D2208
+_080D21D4:
+ asrs r5, r0, 16
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 4
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _080D21F8
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _080D21B8
+_080D21F8:
+ asrs r0, r6, 16
+ adds r0, r5, r0
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ blt _080D2208
+ cmp r2, r7
+ ble _080D21D4
+_080D2208:
+ movs r0, 0x1
+ negs r0, r0
+_080D220C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D214C
+
+ thumb_func_start sub_80D2218
+sub_80D2218: @ 80D2218
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, =gPokemonStoragePtr
+ mov r8, r0
+ movs r7, 0x4
+_080D2228:
+ movs r5, 0
+ adds r6, r7, 0
+ movs r4, 0
+_080D222E:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r6
+ adds r0, r4
+ movs r1, 0x5
+ str r2, [sp]
+ bl GetBoxMonData
+ ldr r2, [sp]
+ cmp r0, 0
+ bne _080D224C
+ movs r0, 0x1
+ b _080D2262
+ .pool
+_080D224C:
+ adds r4, 0x50
+ adds r5, 0x1
+ cmp r5, 0x1D
+ ble _080D222E
+ movs r0, 0x96
+ lsls r0, 4
+ adds r7, r0
+ adds r2, 0x1
+ cmp r2, 0xD
+ ble _080D2228
+ movs r0, 0
+_080D2262:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D2218
+
+ thumb_func_start sub_80D2270
+sub_80D2270: @ 80D2270
+ push {r4-r6,lr}
+ adds r2, r1, 0
+ cmp r0, 0xD
+ bhi _080D22C8
+ cmp r2, 0x1D
+ bhi _080D22C8
+ ldr r6, =gPokemonStoragePtr
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ adds r5, r0, 0x4
+ ldr r0, [r6]
+ adds r0, r5
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r4, r1, 4
+ adds r0, r4
+ movs r1, 0x5
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _080D22C8
+ ldr r0, [r6]
+ adds r0, r5
+ adds r0, r4
+ movs r1, 0x6
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _080D22C8
+ ldr r0, [r6]
+ adds r0, r5
+ adds r0, r4
+ movs r1, 0x4
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _080D22C8
+ movs r0, 0x1
+ b _080D22CA
+ .pool
+_080D22C8:
+ movs r0, 0
+_080D22CA:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D2270
+
+ thumb_func_start sub_80D22D0
+sub_80D22D0: @ 80D22D0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r7, 0
+ movs r0, 0
+ ldr r1, =gPokemonStoragePtr
+ mov r9, r1
+_080D22E0:
+ lsls r1, r0, 2
+ adds r2, r0, 0x1
+ mov r8, r2
+ adds r1, r0
+ movs r5, 0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ adds r4, r0, 0x4
+ movs r6, 0x1D
+_080D22F4:
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r4
+ adds r0, r5
+ movs r1, 0x5
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _080D231A
+ mov r2, r9
+ ldr r0, [r2]
+ adds r0, r4
+ adds r0, r5
+ movs r1, 0x6
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _080D231A
+ adds r7, 0x1
+_080D231A:
+ adds r5, 0x50
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080D22F4
+ mov r0, r8
+ cmp r0, 0xD
+ ble _080D22E0
+ adds r0, r7, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80D22D0
+
+ thumb_func_start sub_80D233C
+sub_80D233C: @ 80D233C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r7, 0
+ movs r0, 0
+ ldr r1, =gPokemonStoragePtr
+ mov r9, r1
+_080D234C:
+ lsls r1, r0, 2
+ adds r2, r0, 0x1
+ mov r8, r2
+ adds r1, r0
+ movs r5, 0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ adds r4, r0, 0x4
+ movs r6, 0x1D
+_080D2360:
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r4
+ adds r0, r5
+ movs r1, 0x5
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _080D2384
+ mov r2, r9
+ ldr r0, [r2]
+ adds r0, r4
+ adds r0, r5
+ movs r1, 0x6
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _080D2386
+_080D2384:
+ adds r7, 0x1
+_080D2386:
+ adds r5, 0x50
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080D2360
+ mov r0, r8
+ cmp r0, 0xD
+ ble _080D234C
+ adds r0, r7, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80D233C
+
+ thumb_func_start sub_80D23A8
+sub_80D23A8: @ 80D23A8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ mov r1, sp
+ strh r0, [r1]
+ ldr r0, =0x00000163
+ strh r0, [r1, 0x2]
+ movs r0, 0
+ mov r8, r0
+ ldr r7, =gPokemonStoragePtr
+ movs r5, 0x4
+_080D23C0:
+ movs r6, 0
+ movs r4, 0
+_080D23C4:
+ ldr r0, [r7]
+ adds r0, r5
+ adds r0, r4
+ movs r1, 0x5
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _080D2404
+ ldr r0, [r7]
+ adds r0, r5
+ adds r0, r4
+ movs r1, 0x6
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _080D2404
+ ldr r0, [r7]
+ adds r0, r5
+ adds r0, r4
+ movs r1, 0x51
+ mov r2, sp
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _080D2404
+ movs r0, 0x1
+ b _080D241E
+ .pool
+_080D2404:
+ adds r4, 0x50
+ adds r6, 0x1
+ cmp r6, 0x1D
+ ble _080D23C4
+ movs r0, 0x96
+ lsls r0, 4
+ adds r5, r0
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0xD
+ ble _080D23C0
+ movs r0, 0
+_080D241E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D23A8
+
+ thumb_func_start sub_80D242C
+sub_80D242C: @ 80D242C
+ ldr r2, =gSaveBlock1Ptr
+ ldr r0, [r2]
+ ldr r1, =0x00003d84
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r3, =0x00003d85
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r3, 0x1
+ adds r0, r3
+ strb r1, [r0]
+ ldr r1, [r2]
+ ldr r0, =0x00003d70
+ adds r2, r1, r0
+ ldr r0, =0x00007b35
+ strh r0, [r2]
+ subs r3, 0x14
+ adds r2, r1, r3
+ ldr r0, =0x00006186
+ strh r0, [r2]
+ ldr r0, =0x00003d74
+ adds r1, r0
+ movs r0, 0xFF
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_80D242C
+
+ thumb_func_start sub_80D2480
+sub_80D2480: @ 80D2480
+ ldr r1, =gSaveBlock1Ptr
+ ldr r1, [r1]
+ ldr r2, =0x00003d86
+ adds r1, r2
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_80D2480
+
+ thumb_func_start sub_80D2494
+sub_80D2494: @ 80D2494
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003d86
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_80D2494
+
+ thumb_func_start sub_80D24A8
+sub_80D24A8: @ 80D24A8
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003d85
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_80D24A8
+
+ thumb_func_start sub_80D24BC
+sub_80D24BC: @ 80D24BC
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bhi _080D24D0
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003d85
+ adds r0, r2
+ strb r1, [r0]
+_080D24D0:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D24BC
+
+ thumb_func_start sub_80D24DC
+sub_80D24DC: @ 80D24DC
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003d84
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_80D24DC
+
+ thumb_func_start sub_80D24F0
+sub_80D24F0: @ 80D24F0
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1D
+ bhi _080D2504
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003d84
+ adds r0, r2
+ strb r1, [r0]
+_080D2504:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D24F0
+
+ thumb_func_start sub_80D2510
+sub_80D2510: @ 80D2510
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003d70
+ adds r0, r1
+ bx lr
+ .pool
+ thumb_func_end sub_80D2510
+
+ thumb_func_start sub_80D2524
+sub_80D2524: @ 80D2524
+ push {r4,lr}
+ ldr r2, =gSaveBlock1Ptr
+ ldr r2, [r2]
+ ldr r4, =0x00003d70
+ adds r3, r2, r4
+ strh r0, [r3]
+ ldr r0, =0x00003d72
+ adds r2, r0
+ strh r1, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D2524
+
+ thumb_func_start sub_80D2548
+sub_80D2548: @ 80D2548
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003d74
+ adds r0, r1
+ bx lr
+ .pool
+ thumb_func_end sub_80D2548
+
+ thumb_func_start sub_80D255C
+sub_80D255C: @ 80D255C
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003d74
+ adds r0, r2
+ bl StringCopy
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D255C
+
+ thumb_func_start sub_80D2578
+sub_80D2578: @ 80D2578
+ push {lr}
+ movs r1, 0
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003d74
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080D258C
+ movs r1, 0x1
+_080D258C:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80D2578
+
+ thumb_func_start sub_80D259C
+sub_80D259C: @ 80D259C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r6, =gUnknown_02039D84
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 4
+ bl Alloc
+ str r0, [r6]
+ ldr r5, =gUnknown_02039D88
+ movs r1, 0
+ cmp r0, 0
+ beq _080D25BA
+ adds r1, r4, 0
+_080D25BA:
+ strh r1, [r5]
+ movs r2, 0
+ cmp r2, r1
+ bcs _080D25E2
+ movs r3, 0
+ adds r4, r5, 0
+_080D25C6:
+ ldr r0, [r6]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 4
+ adds r1, r0
+ str r3, [r1, 0x18]
+ adds r1, 0x2C
+ strb r3, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r0, [r4]
+ cmp r2, r0
+ bcc _080D25C6
+_080D25E2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D259C
+
+ thumb_func_start sub_80D25F0
+sub_80D25F0: @ 80D25F0
+ push {lr}
+ ldr r0, =gUnknown_02039D84
+ ldr r0, [r0]
+ bl Free
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D25F0
+
+ thumb_func_start sub_80D2604
+sub_80D2604: @ 80D2604
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r0, =gUnknown_02039D88
+ ldrh r0, [r0]
+ cmp r4, r0
+ bge _080D2634
+ movs r5, 0
+_080D2612:
+ ldr r0, =gUnknown_02039D84
+ ldr r0, [r0]
+ adds r0, r5, r0
+ adds r0, 0x2C
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080D2628
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80D2918
+_080D2628:
+ adds r5, 0x30
+ adds r4, 0x1
+ ldr r0, =gUnknown_02039D88
+ ldrh r0, [r0]
+ cmp r4, r0
+ blt _080D2612
+_080D2634:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D2604
+
+ thumb_func_start sub_80D2644
+sub_80D2644: @ 80D2644
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r4, r2, 0
+ ldr r2, [sp, 0x24]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r3, 16
+ lsrs r3, 16
+ mov r10, r3
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp]
+ ldr r0, =gUnknown_02039D88
+ ldrh r0, [r0]
+ cmp r6, r0
+ bcs _080D272C
+ ldr r0, =gUnknown_02039D84
+ mov r9, r0
+ ldr r0, [r0]
+ lsls r1, r6, 1
+ mov r8, r1
+ adds r5, r1, r6
+ lsls r5, 4
+ adds r0, r5, r0
+ movs r1, 0
+ str r1, [r0, 0x18]
+ str r4, [r0, 0x1C]
+ adds r0, 0x2B
+ strb r7, [r0]
+ mov r2, r9
+ ldr r0, [r2]
+ adds r0, r5, r0
+ mov r3, r10
+ strh r3, [r0, 0x24]
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r0, 0x26]
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl GetBgAttribute
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r7, 0
+ movs r1, 0x9
+ bl GetBgAttribute
+ lsls r0, 16
+ lsrs r0, 16
+ mov r2, r9
+ ldr r1, [r2]
+ adds r5, r1
+ ldr r2, =gUnknown_0857BC88
+ lsls r4, 2
+ lsls r1, r0, 4
+ adds r4, r1
+ adds r4, r2
+ ldrh r1, [r4]
+ strh r1, [r5, 0x20]
+ ldrh r1, [r4, 0x2]
+ strh r1, [r5, 0x22]
+ mov r2, r8
+ cmp r0, 0
+ beq _080D26E8
+ adds r1, r5, 0
+ adds r1, 0x2A
+ movs r0, 0x1
+ b _080D26EE
+ .pool
+_080D26E8:
+ adds r1, r5, 0
+ adds r1, 0x2A
+ movs r0, 0x2
+_080D26EE:
+ strb r0, [r1]
+ ldr r4, =gUnknown_02039D84
+ ldr r1, [r4]
+ adds r2, r6
+ lsls r2, 4
+ adds r1, r2, r1
+ adds r0, r1, 0
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ mov r3, r10
+ muls r3, r0
+ movs r0, 0
+ strh r3, [r1, 0x28]
+ mov r3, r10
+ strh r3, [r1, 0x10]
+ mov r5, sp
+ ldrh r5, [r5]
+ strh r5, [r1, 0x12]
+ strh r0, [r1, 0xC]
+ strh r0, [r1, 0xE]
+ strh r0, [r1, 0x14]
+ strh r0, [r1, 0x16]
+ adds r0, r1, 0
+ adds r0, 0xC
+ ldm r0!, {r3,r5,r6}
+ stm r1!, {r3,r5,r6}
+ ldr r0, [r4]
+ adds r2, r0
+ adds r2, 0x2C
+ movs r0, 0x1
+ strb r0, [r2]
+_080D272C:
+ 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_80D2644
+
+ thumb_func_start sub_80D2740
+sub_80D2740: @ 80D2740
+ push {lr}
+ adds r3, r1, 0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gUnknown_02039D88
+ ldrh r0, [r0]
+ cmp r2, r0
+ bcs _080D2764
+ ldr r0, =gUnknown_02039D84
+ ldr r1, [r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 4
+ adds r0, r1
+ str r3, [r0, 0x18]
+ adds r0, 0x2C
+ movs r1, 0x1
+ strb r1, [r0]
+_080D2764:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D2740
+
+ thumb_func_start sub_80D2770
+sub_80D2770: @ 80D2770
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r0, =gUnknown_02039D88
+ ldrh r0, [r0]
+ cmp r3, r0
+ bcs _080D279C
+ ldr r0, =gUnknown_02039D84
+ ldr r1, [r0]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 4
+ adds r0, r1
+ strh r4, [r0, 0x14]
+ strh r2, [r0, 0x16]
+ adds r0, 0x2C
+ movs r1, 0x1
+ strb r1, [r0]
+_080D279C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D2770
+
+ thumb_func_start sub_80D27AC
+sub_80D27AC: @ 80D27AC
+ push {r4-r6,lr}
+ ldr r4, [sp, 0x10]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, =gUnknown_02039D88
+ ldrh r0, [r0]
+ cmp r5, r0
+ bcs _080D27E6
+ ldr r0, =gUnknown_02039D84
+ ldr r1, [r0]
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 4
+ adds r0, r1
+ strh r6, [r0, 0xC]
+ strh r2, [r0, 0xE]
+ strh r3, [r0, 0x10]
+ strh r4, [r0, 0x12]
+ adds r0, 0x2C
+ movs r1, 0x1
+ strb r1, [r0]
+_080D27E6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D27AC
+
+ thumb_func_start sub_80D27F4
+sub_80D27F4: @ 80D27F4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r0, =gUnknown_02039D88
+ ldrh r0, [r0]
+ cmp r5, r0
+ bcc _080D280C
+ b _080D290E
+_080D280C:
+ ldr r4, =gUnknown_02039D84
+ lsls r2, r5, 1
+ cmp r1, 0x5
+ bls _080D2816
+ b _080D2900
+_080D2816:
+ lsls r0, r1, 2
+ ldr r1, =_080D282C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080D282C:
+ .4byte _080D2844
+ .4byte _080D2864
+ .4byte _080D2888
+ .4byte _080D28A8
+ .4byte _080D28CC
+ .4byte _080D28E8
+_080D2844:
+ ldr r4, =gUnknown_02039D84
+ ldr r0, [r4]
+ lsls r3, r5, 1
+ adds r1, r3, r5
+ lsls r1, 4
+ adds r1, r0
+ lsls r2, r6, 24
+ asrs r2, 24
+ ldrh r0, [r1, 0x14]
+ adds r0, r2
+ strh r0, [r1, 0x14]
+ ldrh r0, [r1, 0x10]
+ subs r0, r2
+ b _080D287E
+ .pool
+_080D2864:
+ ldr r4, =gUnknown_02039D84
+ ldr r0, [r4]
+ lsls r3, r5, 1
+ adds r1, r3, r5
+ lsls r1, 4
+ adds r1, r0
+ lsls r2, r6, 24
+ asrs r2, 24
+ ldrh r0, [r1, 0xC]
+ adds r0, r2
+ strh r0, [r1, 0xC]
+ ldrh r0, [r1, 0x10]
+ adds r0, r2
+_080D287E:
+ strh r0, [r1, 0x10]
+ adds r2, r3, 0
+ b _080D2900
+ .pool
+_080D2888:
+ ldr r4, =gUnknown_02039D84
+ ldr r0, [r4]
+ lsls r3, r5, 1
+ adds r1, r3, r5
+ lsls r1, 4
+ adds r1, r0
+ lsls r2, r6, 24
+ asrs r2, 24
+ ldrh r0, [r1, 0x16]
+ adds r0, r2
+ strh r0, [r1, 0x16]
+ ldrh r0, [r1, 0x12]
+ subs r0, r2
+ b _080D28C2
+ .pool
+_080D28A8:
+ ldr r4, =gUnknown_02039D84
+ ldr r0, [r4]
+ lsls r3, r5, 1
+ adds r1, r3, r5
+ lsls r1, 4
+ adds r1, r0
+ lsls r2, r6, 24
+ asrs r2, 24
+ ldrh r0, [r1, 0xE]
+ subs r0, r2
+ strh r0, [r1, 0xE]
+ ldrh r0, [r1, 0x12]
+ adds r0, r2
+_080D28C2:
+ strh r0, [r1, 0x12]
+ adds r2, r3, 0
+ b _080D2900
+ .pool
+_080D28CC:
+ ldr r3, =gUnknown_02039D84
+ ldr r0, [r3]
+ lsls r2, r5, 1
+ adds r1, r2, r5
+ lsls r1, 4
+ adds r1, r0
+ lsls r0, r6, 24
+ asrs r0, 24
+ ldrh r4, [r1, 0x14]
+ adds r0, r4
+ strh r0, [r1, 0x14]
+ b _080D28FE
+ .pool
+_080D28E8:
+ ldr r3, =gUnknown_02039D84
+ ldr r0, [r3]
+ lsls r2, r5, 1
+ adds r1, r2, r5
+ lsls r1, 4
+ adds r1, r0
+ lsls r0, r6, 24
+ asrs r0, 24
+ ldrh r4, [r1, 0x16]
+ adds r0, r4
+ strh r0, [r1, 0x16]
+_080D28FE:
+ adds r4, r3, 0
+_080D2900:
+ ldr r0, [r4]
+ adds r1, r2, r5
+ lsls r1, 4
+ adds r1, r0
+ adds r1, 0x2C
+ movs r0, 0x1
+ strb r0, [r1]
+_080D290E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D27F4
+
+ thumb_func_start sub_80D2918
+sub_80D2918: @ 80D2918
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r6, r2, 0
+ ldr r0, =gUnknown_02039D88
+ ldrh r0, [r0]
+ cmp r2, r0
+ bcs _080D2952
+ ldr r5, =gUnknown_02039D84
+ ldr r0, [r5]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r4, r1, 4
+ adds r0, r4, r0
+ ldr r0, [r0, 0x18]
+ cmp r0, 0
+ beq _080D2940
+ adds r0, r2, 0
+ bl sub_80D2960
+_080D2940:
+ adds r0, r6, 0
+ bl sub_80D29F8
+ ldr r1, [r5]
+ adds r1, r4, r1
+ adds r0, r1, 0
+ adds r0, 0xC
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+_080D2952:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D2918
+
+ thumb_func_start sub_80D2960
+sub_80D2960: @ 80D2960
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r4, =gUnknown_02039D84
+ ldr r1, [r4]
+ lsls r5, r0, 1
+ adds r0, r5, r0
+ lsls r0, 4
+ adds r0, r1
+ adds r1, r0, 0
+ adds r1, 0x2A
+ ldrb r3, [r1]
+ ldrh r1, [r0, 0x20]
+ adds r2, r3, 0
+ muls r2, r1
+ mov r9, r2
+ movs r6, 0xA
+ ldrsh r1, [r0, r6]
+ mov r2, r9
+ muls r2, r1
+ ldr r1, [r0, 0x18]
+ adds r1, r2
+ movs r6, 0x8
+ ldrsh r2, [r0, r6]
+ muls r2, r3
+ adds r7, r1, r2
+ movs r6, 0
+ ldrh r0, [r0, 0x6]
+ cmp r6, r0
+ bge _080D29E4
+ mov r10, r4
+_080D29AA:
+ mov r0, r10
+ ldr r1, [r0]
+ mov r2, r8
+ adds r4, r5, r2
+ lsls r4, 4
+ adds r1, r4, r1
+ adds r0, r1, 0
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ ldrb r2, [r1, 0x8]
+ ldrb r3, [r1, 0xA]
+ adds r3, r6
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r1, [r1, 0x4]
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ adds r1, r7, 0
+ bl CopyToBgTilemapBufferRect
+ add r7, r9
+ adds r6, 0x1
+ mov r1, r10
+ ldr r0, [r1]
+ adds r4, r0
+ ldrh r4, [r4, 0x6]
+ cmp r6, r4
+ blt _080D29AA
+_080D29E4:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D2960
+
+ thumb_func_start sub_80D29F8
+sub_80D29F8: @ 80D29F8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r4, =gUnknown_02039D84
+ ldr r1, [r4]
+ lsls r5, r0, 1
+ adds r0, r5, r0
+ lsls r0, 4
+ adds r0, r1
+ adds r1, r0, 0
+ adds r1, 0x2A
+ ldrb r3, [r1]
+ ldrh r1, [r0, 0x24]
+ adds r2, r3, 0
+ muls r2, r1
+ mov r9, r2
+ movs r6, 0xE
+ ldrsh r1, [r0, r6]
+ mov r2, r9
+ muls r2, r1
+ ldr r1, [r0, 0x1C]
+ adds r1, r2
+ movs r6, 0xC
+ ldrsh r2, [r0, r6]
+ muls r2, r3
+ adds r7, r1, r2
+ movs r6, 0
+ ldrh r0, [r0, 0x12]
+ cmp r6, r0
+ bge _080D2A7C
+ mov r10, r4
+_080D2A42:
+ mov r0, r10
+ ldr r1, [r0]
+ mov r2, r8
+ adds r4, r5, r2
+ lsls r4, 4
+ adds r1, r4, r1
+ adds r0, r1, 0
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ ldrb r2, [r1, 0x14]
+ ldrb r3, [r1, 0x16]
+ adds r3, r6
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r1, [r1, 0x10]
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ adds r1, r7, 0
+ bl CopyToBgTilemapBufferRect
+ add r7, r9
+ adds r6, 0x1
+ mov r1, r10
+ ldr r0, [r1]
+ adds r4, r0
+ ldrh r4, [r4, 0x12]
+ cmp r6, r4
+ blt _080D2A42
+_080D2A7C:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D29F8
+
+ thumb_func_start sub_80D2A90
+sub_80D2A90: @ 80D2A90
+ ldr r3, =gUnknown_02039D8C
+ str r0, [r3]
+ str r1, [r0]
+ movs r1, 0
+ strb r2, [r0, 0x5]
+ strb r1, [r0, 0x4]
+ bx lr
+ .pool
+ thumb_func_end sub_80D2A90
+
+ thumb_func_start sub_80D2AA4
+sub_80D2AA4: @ 80D2AA4
+ push {r4,r5,lr}
+ ldr r2, =gUnknown_02039D8C
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _080D2AE2
+ movs r4, 0
+ ldrb r1, [r1, 0x4]
+ cmp r4, r1
+ bcs _080D2ADA
+ adds r5, r2, 0
+_080D2ABA:
+ ldr r0, [r5]
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 2
+ ldr r0, [r0]
+ adds r0, r1
+ ldr r1, [r0, 0x10]
+ bl _call_via_r1
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x4]
+ cmp r4, r0
+ bcc _080D2ABA
+_080D2ADA:
+ ldr r0, =gUnknown_02039D8C
+ ldr r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0x4]
+_080D2AE2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80D2AA4
+
+ thumb_func_start sub_80D2AEC
+sub_80D2AEC: @ 80D2AEC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r9, r0
+ mov r10, r3
+ ldr r0, [sp, 0x24]
+ ldr r3, [sp, 0x28]
+ ldr r4, [sp, 0x2C]
+ ldr r5, [sp, 0x30]
+ ldr r6, [sp, 0x34]
+ lsls r1, 16
+ lsrs r1, 16
+ mov r12, r1
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp]
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, =gUnknown_02039D8C
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x4]
+ adds r1, r0, 0
+ ldrb r7, [r2, 0x5]
+ cmp r1, r7
+ bcs _080D2B74
+ adds r0, 0x1
+ strb r0, [r2, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, [r2]
+ adds r1, r0
+ lsls r0, r4, 1
+ strh r0, [r1, 0x8]
+ ldr r2, [sp]
+ lsls r0, r2, 5
+ add r0, r12
+ lsls r0, 1
+ add r0, r9
+ str r0, [r1, 0x4]
+ adds r0, r3, 0
+ muls r0, r6
+ add r0, r8
+ lsls r0, 1
+ add r0, r10
+ str r0, [r1]
+ strh r5, [r1, 0xC]
+ strh r6, [r1, 0xA]
+ ldr r0, =sub_80D2B88
+ str r0, [r1, 0x10]
+ movs r0, 0x1
+ b _080D2B76
+ .pool
+_080D2B74:
+ movs r0, 0
+_080D2B76:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D2AEC
+
+ thumb_func_start sub_80D2B88
+sub_80D2B88: @ 80D2B88
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ b _080D2BB2
+_080D2B90:
+ ldr r0, [r4]
+ ldr r1, [r4, 0x4]
+ ldrh r2, [r4, 0x8]
+ lsrs r2, 1
+ bl CpuSet
+ ldr r0, [r4, 0x4]
+ adds r0, 0x40
+ str r0, [r4, 0x4]
+ ldrh r1, [r4, 0xA]
+ lsls r1, 1
+ ldr r0, [r4]
+ adds r0, r1
+ str r0, [r4]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080D2BB2:
+ ldrh r0, [r4, 0xC]
+ cmp r5, r0
+ bcc _080D2B90
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2B88
+
+ thumb_func_start sub_80D2BC0
+sub_80D2BC0: @ 80D2BC0
+ push {r4-r7,lr}
+ mov r12, r0
+ ldr r0, [sp, 0x14]
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r4, r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, =gUnknown_02039D8C
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x4]
+ adds r1, r0, 0
+ ldrb r7, [r2, 0x5]
+ cmp r1, r7
+ bcs _080D2C14
+ adds r0, 0x1
+ strb r0, [r2, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, [r2]
+ adds r1, r0
+ lsls r0, r3, 1
+ strh r0, [r1, 0x8]
+ lsls r0, r4, 5
+ adds r0, r6
+ lsls r0, 1
+ add r0, r12
+ str r0, [r1, 0x4]
+ strh r5, [r1, 0xC]
+ ldr r0, =sub_80D2C1C
+ str r0, [r1, 0x10]
+ movs r0, 0x1
+ b _080D2C16
+ .pool
+_080D2C14:
+ movs r0, 0
+_080D2C16:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D2BC0
+
+ thumb_func_start sub_80D2C1C
+sub_80D2C1C: @ 80D2C1C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ movs r0, 0
+ ldrh r1, [r6, 0xC]
+ cmp r0, r1
+ bcs _080D2CAA
+ movs r7, 0x80
+ lsls r7, 5
+ mov r5, sp
+ ldr r2, =0x040000d4
+ mov r8, r2
+ movs r1, 0x81
+ lsls r1, 24
+ mov r10, r1
+_080D2C42:
+ ldr r2, [r6, 0x4]
+ ldrh r3, [r6, 0x8]
+ mov r12, r2
+ adds r0, 0x1
+ mov r9, r0
+ cmp r3, r7
+ bhi _080D2C6C
+ movs r0, 0
+ strh r0, [r5]
+ mov r2, sp
+ mov r0, r8
+ str r2, [r0]
+ mov r1, r12
+ str r1, [r0, 0x4]
+ lsrs r0, r3, 1
+ mov r2, r10
+ orrs r0, r2
+ mov r1, r8
+ b _080D2C94
+ .pool
+_080D2C6C:
+ movs r4, 0
+ strh r4, [r5]
+ ldr r1, =0x040000d4
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, =0x81000800
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r7
+ subs r3, r7
+ cmp r3, r7
+ bhi _080D2C6C
+ strh r4, [r5]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 1
+ mov r2, r10
+ orrs r0, r2
+_080D2C94:
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, r12
+ adds r0, 0x40
+ str r0, [r6, 0x4]
+ mov r1, r9
+ lsls r0, r1, 16
+ lsrs r0, 16
+ ldrh r2, [r6, 0xC]
+ cmp r0, r2
+ bcc _080D2C42
+_080D2CAA:
+ 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_80D2C1C
+
+ .align 2, 0 @ Don't pad with nop.