summaryrefslogtreecommitdiff
path: root/asm/pokenav.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/pokenav.s')
-rwxr-xr-xasm/pokenav.s31054
1 files changed, 31054 insertions, 0 deletions
diff --git a/asm/pokenav.s b/asm/pokenav.s
new file mode 100755
index 000000000..f6c50a3f7
--- /dev/null
+++ b/asm/pokenav.s
@@ -0,0 +1,31054 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start CB2_PokeNav
+CB2_PokeNav: @ 81C7250
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CF40
+ movs r0, 0x5C
+ bl Alloc
+ str r0, [r4]
+ cmp r0, 0
+ bne _081C7270
+ ldr r0, =sub_8086194
+ bl SetMainCallback2
+ b _081C7292
+ .pool
+_081C7270:
+ bl sub_81C7360
+ bl ResetTasks
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r0, =sub_81C742C
+ movs r1, 0
+ bl CreateTask
+ ldr r0, =sub_81C7400
+ bl SetMainCallback2
+ ldr r0, =sub_81C7418
+ bl SetVBlankCallback
+_081C7292:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end CB2_PokeNav
+
+ thumb_func_start sub_81C72A4
+sub_81C72A4: @ 81C72A4
+ push {lr}
+ ldr r0, =sub_81C72BC
+ bl SetMainCallback2
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C72A4
+
+ thumb_func_start sub_81C72BC
+sub_81C72BC: @ 81C72BC
+ push {r4,lr}
+ bl UpdatePaletteFade
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081C7320
+ ldr r4, =gUnknown_0203CF40
+ movs r0, 0x5C
+ bl Alloc
+ str r0, [r4]
+ cmp r0, 0
+ bne _081C72F0
+ ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+ b _081C7320
+ .pool
+_081C72F0:
+ bl sub_81C7360
+ ldr r1, [r4]
+ movs r0, 0x1
+ strh r0, [r1, 0x8]
+ bl ResetTasks
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r0, =sub_81C742C
+ movs r1, 0
+ bl CreateTask
+ ldr r0, =sub_81C7400
+ bl SetMainCallback2
+ ldr r0, =sub_81C7418
+ bl SetVBlankCallback
+_081C7320:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C72BC
+
+ thumb_func_start sub_81C7334
+sub_81C7334: @ 81C7334
+ push {r4,lr}
+ movs r4, 0
+_081C7338:
+ adds r0, r4, 0
+ bl sub_81C7650
+ adds r4, 0x1
+ cmp r4, 0x12
+ ble _081C7338
+ ldr r4, =gUnknown_0203CF40
+ ldr r0, [r4]
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+ bl InitKeys
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C7334
+
+ thumb_func_start sub_81C7360
+sub_81C7360: @ 81C7360
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r2, 0
+ movs r1, 0x12
+ adds r0, 0x58
+_081C736A:
+ str r2, [r0]
+ subs r0, 0x4
+ subs r1, 0x1
+ cmp r1, 0
+ bge _081C736A
+ movs r4, 0
+ strh r4, [r5, 0x8]
+ str r4, [r5, 0x4]
+ bl sub_81C7388
+ str r0, [r5, 0xC]
+ str r4, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C7360
+
+ thumb_func_start sub_81C7388
+sub_81C7388: @ 81C7388
+ push {r4-r6,lr}
+ movs r5, 0
+_081C738C:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl GetMonData
+ cmp r0, 0
+ beq _081C73BA
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl GetMonData
+ cmp r0, 0
+ bne _081C73BA
+ adds r0, r4, 0
+ movs r1, 0x52
+ bl GetMonData
+ cmp r0, 0
+ bne _081C73E2
+_081C73BA:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081C738C
+ movs r4, 0
+_081C73C2:
+ movs r5, 0
+ lsls r6, r4, 24
+_081C73C6:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80D2270
+ cmp r0, 0
+ beq _081C73EC
+ lsls r1, r5, 24
+ lsrs r1, 24
+ lsrs r0, r6, 24
+ movs r2, 0x52
+ bl GetBoxMonDataFromAnyBox
+ cmp r0, 0
+ beq _081C73EC
+_081C73E2:
+ movs r0, 0x1
+ b _081C73FA
+ .pool
+_081C73EC:
+ adds r5, 0x1
+ cmp r5, 0x1D
+ ble _081C73C6
+ adds r4, 0x1
+ cmp r4, 0xD
+ ble _081C73C2
+ movs r0, 0
+_081C73FA:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C7388
+
+ thumb_func_start sub_81C7400
+sub_81C7400: @ 81C7400
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C7400
+
+ thumb_func_start sub_81C7418
+sub_81C7418: @ 81C7418
+ push {lr}
+ bl TransferPlttBuffer
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C7418
+
+ thumb_func_start sub_81C742C
+sub_81C742C: @ 81C742C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r7, r1, r0
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x5
+ bls _081C7446
+ b _081C7562
+_081C7446:
+ lsls r0, 2
+ ldr r1, =_081C7458
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081C7458:
+ .4byte _081C7470
+ .4byte _081C747A
+ .4byte _081C7490
+ .4byte _081C749C
+ .4byte _081C751E
+ .4byte _081C752C
+_081C7470:
+ bl sub_81C76C4
+ movs r0, 0x1
+ strh r0, [r7]
+ b _081C7562
+_081C747A:
+ bl sub_81C76FC
+ cmp r0, 0
+ bne _081C7562
+ ldr r0, =0x000186a0
+ bl sub_81C756C
+ b _081C74E8
+ .pool
+_081C7490:
+ bl sub_81C786C
+ cmp r0, 0
+ bne _081C7562
+ movs r0, 0x3
+ strh r0, [r7]
+_081C749C:
+ bl sub_81C75E0
+ adds r6, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r6, r0
+ beq _081C74FC
+ ldr r0, =0x0001869f
+ cmp r6, r0
+ bls _081C7506
+ ldr r4, =gUnknown_0861F3EC
+ ldr r5, =gUnknown_0203CF40
+ ldr r0, [r5]
+ ldr r1, [r0, 0x4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x18
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, [r5]
+ ldr r1, [r0, 0x4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r4, 0x14
+ adds r0, r4
+ ldr r0, [r0]
+ bl _call_via_r0
+ adds r0, r6, 0
+ bl sub_81C756C
+ cmp r0, 0
+ beq _081C74FC
+_081C74E8:
+ movs r0, 0x4
+ strh r0, [r7]
+ b _081C7562
+ .pool
+_081C74FC:
+ bl sub_81C7710
+ movs r0, 0x5
+ strh r0, [r7]
+ b _081C7562
+_081C7506:
+ cmp r6, 0
+ beq _081C7562
+ adds r0, r6, 0
+ bl sub_81C7850
+ bl sub_81C786C
+ cmp r0, 0
+ beq _081C7562
+ movs r0, 0x2
+ strh r0, [r7]
+ b _081C7562
+_081C751E:
+ bl sub_81C75D4
+ cmp r0, 0
+ bne _081C7562
+ movs r0, 0x3
+ strh r0, [r7]
+ b _081C7562
+_081C752C:
+ bl sub_81C7738
+ cmp r0, 0
+ bne _081C7562
+ ldr r0, =gUnknown_0203CF40
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x8]
+ negs r4, r0
+ orrs r4, r0
+ lsrs r4, 31
+ bl sub_81C9430
+ bl sub_81C7334
+ cmp r4, 0
+ beq _081C755C
+ ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+ b _081C7562
+ .pool
+_081C755C:
+ ldr r0, =sub_8086194
+ bl SetMainCallback2
+_081C7562:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C742C
+
+ thumb_func_start sub_81C756C
+sub_81C756C: @ 81C756C
+ push {r4-r6,lr}
+ ldr r1, =0xfffe7960
+ adds r6, r0, r1
+ bl sub_81C75F4
+ ldr r5, =gUnknown_0861F3EC
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r4, r0, 2
+ adds r0, r4, r5
+ ldr r0, [r0]
+ bl _call_via_r0
+ cmp r0, 0
+ beq _081C75CC
+ adds r0, r5, 0
+ adds r0, 0x8
+ adds r0, r4, r0
+ ldr r0, [r0]
+ bl _call_via_r0
+ cmp r0, 0
+ beq _081C75CC
+ adds r0, r5, 0
+ adds r0, 0xC
+ adds r0, r4, r0
+ ldr r0, [r0]
+ adds r1, r5, 0
+ adds r1, 0x10
+ adds r1, r4, r1
+ ldr r1, [r1]
+ bl sub_81C7834
+ ldr r0, =gUnknown_0203CF40
+ ldr r1, [r0]
+ adds r0, r5, 0x4
+ adds r0, r4, r0
+ ldr r0, [r0]
+ str r0, [r1]
+ str r6, [r1, 0x4]
+ movs r0, 0x1
+ b _081C75CE
+ .pool
+_081C75CC:
+ movs r0, 0
+_081C75CE:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C756C
+
+ thumb_func_start sub_81C75D4
+sub_81C75D4: @ 81C75D4
+ push {lr}
+ bl sub_81C786C
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C75D4
+
+ thumb_func_start sub_81C75E0
+sub_81C75E0: @ 81C75E0
+ push {lr}
+ ldr r0, =gUnknown_0203CF40
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81C75E0
+
+ thumb_func_start sub_81C75F4
+sub_81C75F4: @ 81C75F4
+ push {lr}
+ bl InitKeys
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C75F4
+
+ thumb_func_start c3args_set_0toR1_1to0
+c3args_set_0toR1_1to0: @ 81C7600
+ push {lr}
+ bl SetVBlankCallback
+ pop {r0}
+ bx r0
+ thumb_func_end c3args_set_0toR1_1to0
+
+ thumb_func_start sub_81C760C
+sub_81C760C: @ 81C760C
+ push {lr}
+ ldr r0, =sub_81C7418
+ bl SetVBlankCallback
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C760C
+
+ thumb_func_start sub_81C761C
+sub_81C761C: @ 81C761C
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ bl Alloc
+ ldr r1, =gUnknown_0203CF40
+ ldr r1, [r1]
+ lsls r4, 2
+ adds r1, 0x10
+ adds r1, r4
+ str r0, [r1]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81C761C
+
+ thumb_func_start sub_81C763C
+sub_81C763C: @ 81C763C
+ ldr r1, =gUnknown_0203CF40
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r1, 0x10
+ adds r1, r0
+ ldr r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81C763C
+
+ thumb_func_start sub_81C7650
+sub_81C7650: @ 81C7650
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_0203CF40
+ ldr r1, [r5]
+ lsls r4, r0, 2
+ adds r1, 0x10
+ adds r1, r4
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _081C7670
+ bl Free
+ ldr r0, [r5]
+ adds r0, 0x10
+ adds r0, r4
+ movs r1, 0
+ str r1, [r0]
+_081C7670:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C7650
+
+ thumb_func_start sub_81C767C
+sub_81C767C: @ 81C767C
+ ldr r0, =gUnknown_0203CF40
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x8]
+ bx lr
+ .pool
+ thumb_func_end sub_81C767C
+
+ thumb_func_start sub_81C7688
+sub_81C7688: @ 81C7688
+ ldr r1, =gUnknown_0203CF40
+ ldr r1, [r1]
+ strh r0, [r1, 0x8]
+ bx lr
+ .pool
+ thumb_func_end sub_81C7688
+
+ thumb_func_start sub_81C7694
+sub_81C7694: @ 81C7694
+ push {lr}
+ adds r1, r0, 0
+ cmp r1, 0x4
+ bls _081C769E
+ movs r1, 0
+_081C769E:
+ ldr r0, =gUnknown_0203CF40
+ ldr r0, [r0]
+ strh r1, [r0, 0xA]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C7694
+
+ thumb_func_start sub_81C76AC
+sub_81C76AC: @ 81C76AC
+ ldr r0, =gUnknown_0203CF40
+ ldr r0, [r0]
+ ldrh r0, [r0, 0xA]
+ bx lr
+ .pool
+ thumb_func_end sub_81C76AC
+
+ thumb_func_start sub_81C76B8
+sub_81C76B8: @ 81C76B8
+ ldr r0, =gUnknown_0203CF40
+ ldr r0, [r0]
+ ldr r0, [r0, 0xC]
+ bx lr
+ .pool
+ thumb_func_end sub_81C76B8
+
+ thumb_func_start sub_81C76C4
+sub_81C76C4: @ 81C76C4
+ push {r4,lr}
+ ldr r1, =0x0000082c
+ movs r0, 0
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081C76F4
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r0, =sub_81C7764
+ movs r1, 0x1
+ bl sub_81C7078
+ str r0, [r4, 0xC]
+ movs r0, 0x1
+ b _081C76F6
+ .pool
+_081C76F4:
+ movs r0, 0
+_081C76F6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C76C4
+
+ thumb_func_start sub_81C76FC
+sub_81C76FC: @ 81C76FC
+ push {lr}
+ movs r0, 0
+ bl sub_81C763C
+ ldr r0, [r0, 0xC]
+ bl sub_81C70D8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C76FC
+
+ thumb_func_start sub_81C7710
+sub_81C7710: @ 81C7710
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x6F
+ bl PlaySE
+ bl sub_81CAADC
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C7710
+
+ thumb_func_start sub_81C7738
+sub_81C7738: @ 81C7738
+ push {lr}
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081C7750
+ movs r0, 0x1
+ b _081C775E
+ .pool
+_081C7750:
+ bl sub_81C99D4
+ bl sub_81C7C94
+ bl FreeAllWindowBuffers
+ movs r0, 0
+_081C775E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C7738
+
+ thumb_func_start sub_81C7764
+sub_81C7764: @ 81C7764
+ push {r4,lr}
+ sub sp, 0x4
+ cmp r0, 0x1
+ beq _081C77B0
+ cmp r0, 0x1
+ bgt _081C7776
+ cmp r0, 0
+ beq _081C7780
+ b _081C782A
+_081C7776:
+ cmp r0, 0x2
+ beq _081C77FC
+ cmp r0, 0x3
+ beq _081C780E
+ b _081C782A
+_081C7780:
+ movs r1, 0x82
+ lsls r1, 5
+ movs r0, 0
+ bl SetGpuReg
+ bl FreeAllWindowBuffers
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_0861FA04
+ movs r0, 0
+ movs r2, 0x1
+ bl InitBgsFromTemplates
+ bl sub_8199D98
+ bl reset_temp_tile_data_buffers
+ movs r0, 0x1
+ b _081C782C
+ .pool
+_081C77B0:
+ movs r0, 0
+ bl sub_81C763C
+ adds r4, r0, 0
+ ldr r1, =gUnknown_08DC7B80
+ movs r0, 0
+ str r0, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ adds r4, 0x2C
+ movs r0, 0
+ adds r1, r4, 0
+ bl SetBgTilemapBuffer
+ ldr r1, =gUnknown_08DC7D84
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0
+ bl CopyToBgTilemapBuffer
+ ldr r0, =gUnknown_08DC7B60
+ movs r1, 0
+ movs r2, 0x20
+ bl sub_81C7944
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0
+ b _081C782C
+ .pool
+_081C77FC:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ cmp r0, 0
+ bne _081C7818
+ bl sub_81C7B74
+ movs r0, 0
+ b _081C782C
+_081C780E:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081C781C
+_081C7818:
+ movs r0, 0x2
+ b _081C782C
+_081C781C:
+ bl sub_81C7C28
+ bl sub_81C7D28
+ movs r0, 0
+ bl ShowBg
+_081C782A:
+ movs r0, 0x4
+_081C782C:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C7764
+
+ thumb_func_start sub_81C7834
+sub_81C7834: @ 81C7834
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r0, 0
+ bl sub_81C763C
+ str r4, [r0]
+ str r5, [r0, 0x4]
+ movs r1, 0
+ str r1, [r0, 0x8]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C7834
+
+ thumb_func_start sub_81C7850
+sub_81C7850: @ 81C7850
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ bl sub_81C763C
+ movs r1, 0
+ str r1, [r0, 0x8]
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C7850
+
+ thumb_func_start sub_81C786C
+sub_81C786C: @ 81C786C
+ push {lr}
+ movs r0, 0
+ bl sub_81C763C
+ ldr r0, [r0, 0x4]
+ bl _call_via_r0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C786C
+
+ thumb_func_start sub_81C7880
+sub_81C7880: @ 81C7880
+ push {r4,lr}
+ movs r0, 0
+ bl sub_81C763C
+ adds r4, r0, 0
+ ldr r0, =atk47_cmd47
+ movs r1, 0x4
+ bl sub_81C7078
+ str r0, [r4, 0xC]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C7880
+
+ thumb_func_start sub_81C78A0
+sub_81C78A0: @ 81C78A0
+ push {r4,lr}
+ movs r0, 0
+ bl sub_81C763C
+ adds r4, r0, 0
+ ldr r0, =sub_81C791C
+ movs r1, 0x4
+ bl sub_81C7078
+ str r0, [r4, 0xC]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C78A0
+
+ thumb_func_start sub_81C78C0
+sub_81C78C0: @ 81C78C0
+ push {lr}
+ movs r0, 0
+ bl sub_81C763C
+ ldr r0, [r0, 0xC]
+ bl sub_81C70D8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C78C0
+
+ thumb_func_start atk47_cmd47
+atk47_cmd47: @ 81C78D4
+ push {lr}
+ cmp r0, 0x1
+ beq _081C78EA
+ cmp r0, 0x1
+ bgt _081C78E4
+ cmp r0, 0
+ beq _081C78EA
+ b _081C7914
+_081C78E4:
+ cmp r0, 0x2
+ beq _081C78EE
+ b _081C7914
+_081C78EA:
+ movs r0, 0
+ b _081C7916
+_081C78EE:
+ movs r1, 0xC0
+ lsls r1, 1
+ movs r0, 0
+ movs r2, 0x1
+ bl ChangeBgY
+ ldr r1, =0x00001fff
+ cmp r0, r1
+ bhi _081C7908
+ movs r0, 0x2
+ b _081C7916
+ .pool
+_081C7908:
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ movs r2, 0
+ bl ChangeBgY
+_081C7914:
+ movs r0, 0x4
+_081C7916:
+ pop {r1}
+ bx r1
+ thumb_func_end atk47_cmd47
+
+ thumb_func_start sub_81C791C
+sub_81C791C: @ 81C791C
+ push {lr}
+ movs r1, 0xC0
+ lsls r1, 1
+ movs r0, 0
+ movs r2, 0x2
+ bl ChangeBgY
+ cmp r0, 0
+ ble _081C7932
+ movs r0, 0x2
+ b _081C793E
+_081C7932:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x4
+_081C793E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C791C
+
+ thumb_func_start sub_81C7944
+sub_81C7944: @ 81C7944
+ push {lr}
+ lsls r1, 1
+ ldr r3, =gPlttBufferUnfaded
+ adds r1, r3
+ lsls r2, 10
+ lsrs r2, 11
+ bl CpuSet
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C7944
+
+ thumb_func_start sub_81C795C
+sub_81C795C: @ 81C795C
+ push {r4,lr}
+ adds r4, r0, 0
+ b _081C7974
+_081C7962:
+ lsls r0, r1, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r0, r2
+ ldr r0, [r4]
+ movs r2, 0x20
+ bl sub_81C7944
+ adds r4, 0x8
+_081C7974:
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _081C7988
+ ldrh r0, [r4, 0x4]
+ bl AllocSpritePalette
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xFF
+ bne _081C7962
+_081C7988:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C795C
+
+ thumb_func_start sub_81C7990
+sub_81C7990: @ 81C7990
+ push {lr}
+ sub sp, 0x4
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r0, sp
+ strh r1, [r0]
+ lsls r3, 5
+ ldr r0, =gPlttBufferFaded + 0x200
+ adds r3, r0
+ ldr r2, =0x01000010
+ mov r0, sp
+ adds r1, r3, 0
+ bl CpuSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C7990
+
+ thumb_func_start sub_81C79BC
+sub_81C79BC: @ 81C79BC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ mov r10, r2
+ str r3, [sp, 0x8]
+ ldr r0, [sp, 0x2C]
+ cmp r0, 0
+ bne _081C79E4
+ ldr r2, =0x001fffff
+ mov r1, r10
+ ands r2, r1
+ ldr r0, [sp]
+ b _081C79F4
+ .pool
+_081C79E4:
+ ldr r2, [sp, 0x2C]
+ ldr r0, [sp, 0x8]
+ cmp r2, r0
+ blt _081C7A00
+ ldr r2, =0x001fffff
+ mov r1, r10
+ ands r2, r1
+ ldr r0, [sp, 0x4]
+_081C79F4:
+ ldr r1, [sp, 0x30]
+ bl CpuSet
+ b _081C7AAE
+ .pool
+_081C7A00:
+ movs r2, 0x1
+ negs r2, r2
+ add r10, r2
+ b _081C7AA6
+_081C7A08:
+ ldr r1, [sp]
+ ldrh r0, [r1]
+ movs r2, 0x1F
+ mov r9, r2
+ mov r1, r9
+ ands r1, r0
+ mov r9, r1
+ lsls r0, 16
+ lsrs r2, r0, 21
+ movs r1, 0x1F
+ ands r1, r2
+ mov r8, r1
+ lsrs r7, r0, 26
+ movs r2, 0x1F
+ ands r7, r2
+ ldr r0, [sp, 0x4]
+ ldrh r4, [r0]
+ movs r0, 0x1F
+ ands r0, r4
+ mov r1, r9
+ subs r0, r1
+ lsls r0, 8
+ ldr r1, [sp, 0x8]
+ bl __divsi3
+ ldr r2, [sp, 0x2C]
+ adds r6, r0, 0
+ muls r6, r2
+ asrs r6, 8
+ lsls r4, 16
+ lsrs r0, r4, 21
+ movs r1, 0x1F
+ ands r0, r1
+ mov r2, r8
+ subs r0, r2
+ lsls r0, 8
+ ldr r1, [sp, 0x8]
+ bl __divsi3
+ ldr r1, [sp, 0x2C]
+ adds r5, r0, 0
+ muls r5, r1
+ asrs r5, 8
+ lsrs r4, 26
+ movs r2, 0x1F
+ ands r4, r2
+ subs r4, r7
+ lsls r4, 8
+ adds r0, r4, 0
+ ldr r1, [sp, 0x8]
+ bl __divsi3
+ ldr r1, [sp, 0x2C]
+ muls r0, r1
+ asrs r0, 8
+ add r6, r9
+ movs r2, 0x1F
+ ands r6, r2
+ add r5, r8
+ ands r5, r2
+ adds r0, r7, r0
+ ands r0, r2
+ lsls r0, 10
+ lsls r5, 5
+ orrs r0, r5
+ orrs r0, r6
+ ldr r1, [sp, 0x30]
+ strh r0, [r1]
+ ldr r2, [sp]
+ adds r2, 0x2
+ str r2, [sp]
+ ldr r0, [sp, 0x4]
+ adds r0, 0x2
+ str r0, [sp, 0x4]
+ adds r1, 0x2
+ str r1, [sp, 0x30]
+ movs r1, 0x1
+ negs r1, r1
+ add r10, r1
+_081C7AA6:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r10, r0
+ bne _081C7A08
+_081C7AAE:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C79BC
+
+ thumb_func_start sub_81C7AC0
+sub_81C7AC0: @ 81C7AC0
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r0, 0
+ bl sub_81C763C
+ cmp r4, 0x1
+ beq _081C7AF0
+ cmp r4, 0x1
+ bgt _081C7ADA
+ cmp r4, 0
+ beq _081C7AE4
+ b _081C7B2C
+_081C7ADA:
+ cmp r4, 0x2
+ beq _081C7B04
+ cmp r4, 0x3
+ beq _081C7B18
+ b _081C7B2C
+_081C7AE4:
+ ldr r0, [r0, 0x14]
+ movs r1, 0x2
+ negs r1, r1
+ str r4, [sp]
+ movs r2, 0
+ b _081C7B10
+_081C7AF0:
+ ldr r0, [r0, 0x14]
+ movs r1, 0x2
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _081C7B2C
+_081C7B04:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x2
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+_081C7B10:
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _081C7B2C
+_081C7B18:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x2
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_081C7B2C:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C7AC0
+
+ thumb_func_start sub_81C7B34
+sub_81C7B34: @ 81C7B34
+ ldr r0, =gPaletteFade
+ ldrb r0, [r0, 0x7]
+ lsrs r0, 7
+ bx lr
+ .pool
+ thumb_func_end sub_81C7B34
+
+ thumb_func_start sub_81C7B40
+sub_81C7B40: @ 81C7B40
+ push {lr}
+ ldr r0, =0xfffefffe
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C7B40
+
+ thumb_func_start sub_81C7B54
+sub_81C7B54: @ 81C7B54
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ cmp r1, 0
+ ble _081C7B6C
+ adds r4, r1, 0
+_081C7B5E:
+ adds r0, r5, 0
+ adds r5, 0x4
+ bl InitBgFromTemplate
+ subs r4, 0x1
+ cmp r4, 0
+ bne _081C7B5E
+_081C7B6C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C7B54
+
+ thumb_func_start sub_81C7B74
+sub_81C7B74: @ 81C7B74
+ push {r4,lr}
+ movs r0, 0
+ bl sub_81C763C
+ adds r4, r0, 0
+ ldr r0, =gUnknown_0861FA08
+ bl InitWindows
+ movs r0, 0
+ str r0, [r4, 0x10]
+ bl sub_81C7BF8
+ ldrb r0, [r4, 0x10]
+ bl PutWindowTilemap
+ ldrb r0, [r4, 0x10]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C7B74
+
+ thumb_func_start sub_81C7BA4
+sub_81C7BA4: @ 81C7BA4
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ movs r0, 0
+ bl sub_81C763C
+ adds r5, r0, 0
+ ldr r0, [r5, 0x10]
+ bl sub_81C7BF8
+ ldrb r0, [r5, 0x10]
+ ldr r1, =gUnknown_0861FA48
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r1, =gUnknown_0861FA18
+ lsls r4, 2
+ adds r4, r1
+ ldr r1, [r4]
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0x1
+ bl box_print
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C7BA4
+
+ thumb_func_start sub_81C7BE8
+sub_81C7BE8: @ 81C7BE8
+ push {lr}
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C7BE8
+
+ thumb_func_start sub_81C7BF8
+sub_81C7BF8: @ 81C7BF8
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x44
+ bl FillWindowPixelBuffer
+ movs r0, 0x80
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x55
+ movs r2, 0
+ movs r3, 0
+ bl FillWindowPixelRect
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C7BF8
+
+ thumb_func_start sub_81C7C28
+sub_81C7C28: @ 81C7C28
+ push {r4-r6,lr}
+ movs r0, 0
+ bl sub_81C763C
+ adds r6, r0, 0
+ movs r5, 0
+ ldr r4, =gUnknown_0861FA4C
+_081C7C36:
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ adds r4, 0x8
+ adds r5, 0x1
+ cmp r5, 0
+ beq _081C7C36
+ ldr r0, =gUnknown_0861FA54
+ bl sub_81C795C
+ movs r0, 0
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ movs r0, 0x2
+ negs r0, r0
+ bics r0, r1
+ str r0, [r6, 0x14]
+ ldr r0, =gUnknown_0861FB04
+ movs r1, 0xDC
+ movs r2, 0xC
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =gSprites
+ adds r1, r0
+ str r1, [r6, 0x18]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C7C28
+
+ thumb_func_start sub_81C7C94
+sub_81C7C94: @ 81C7C94
+ push {lr}
+ movs r0, 0
+ bl sub_81C763C
+ ldr r0, [r0, 0x18]
+ bl DestroySprite
+ movs r0, 0
+ bl FreeSpriteTilesByTag
+ movs r0, 0
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C7C94
+
+ thumb_func_start sub_81C7CB4
+sub_81C7CB4: @ 81C7CB4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ bl GetBgY
+ lsrs r0, 8
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C7CB4
+
+ thumb_func_start sub_81C7CCC
+sub_81C7CCC: @ 81C7CCC
+ push {lr}
+ movs r0, 0
+ bl sub_81C763C
+ ldr r0, [r0, 0x18]
+ ldr r1, =SpriteCallbackDummy
+ str r1, [r0, 0x1C]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81C7CCC
+
+ thumb_func_start sub_81C7CE4
+sub_81C7CE4: @ 81C7CE4
+ push {r4,lr}
+ movs r0, 0
+ bl sub_81C763C
+ ldr r2, [r0, 0x18]
+ movs r4, 0
+ movs r1, 0xDC
+ strh r1, [r2, 0x20]
+ ldr r2, [r0, 0x18]
+ movs r1, 0xC
+ strh r1, [r2, 0x22]
+ ldr r2, [r0, 0x18]
+ ldr r1, =sub_81C7CB4
+ str r1, [r2, 0x1C]
+ adds r2, 0x3E
+ ldrb r3, [r2]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r3
+ strb r1, [r2]
+ ldr r3, [r0, 0x18]
+ ldrb r2, [r3, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r3, 0x5]
+ ldr r0, [r0, 0x18]
+ adds r0, 0x43
+ strb r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C7CE4
+
+ thumb_func_start sub_81C7D28
+sub_81C7D28: @ 81C7D28
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0
+ bl sub_81C763C
+ adds r6, r0, 0
+ ldr r0, =gUnknown_0861FA64
+ bl LoadCompressedObjectPic
+ movs r0, 0x1
+ bl AllocSpritePalette
+ movs r0, 0x2
+ bl AllocSpritePalette
+ movs r5, 0
+ ldr r0, =gSprites
+ mov r8, r0
+ movs r7, 0x4
+_081C7D50:
+ ldr r0, =gUnknown_0861FB2C
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r4, r5, 2
+ adds r2, r6, 0
+ adds r2, 0x1C
+ adds r2, r4
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ str r0, [r2]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r7
+ strb r1, [r0]
+ ldr r1, [r2]
+ lsls r0, r5, 6
+ strh r0, [r1, 0x24]
+ ldr r0, =gUnknown_0861FB44
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r2, r6, 0
+ adds r2, 0x24
+ adds r2, r4
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ str r0, [r2]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r7
+ strb r1, [r0]
+ ldr r1, [r2]
+ lsls r0, r5, 5
+ strh r0, [r1, 0x24]
+ ldr r1, [r2]
+ movs r0, 0x12
+ strh r0, [r1, 0x26]
+ ldr r3, [r2]
+ ldrh r2, [r3, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ lsls r0, r5, 3
+ adds r0, 0x40
+ adds r1, r0
+ ldr r4, =0x000003ff
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r4, =0xfffffc00
+ adds r0, r4, 0
+ ands r2, r0
+ orrs r2, r1
+ strh r2, [r3, 0x4]
+ adds r5, 0x1
+ cmp r5, 0x1
+ ble _081C7D50
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C7D28
+
+ thumb_func_start sub_81C7DFC
+sub_81C7DFC: @ 81C7DFC
+ push {lr}
+ cmp r0, 0x5
+ bhi _081C7E08
+ bl sub_81C7E58
+ b _081C7E0E
+_081C7E08:
+ subs r0, 0x6
+ bl sub_81C7F24
+_081C7E0E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C7DFC
+
+ thumb_func_start sub_81C7E14
+sub_81C7E14: @ 81C7E14
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x4
+ bne _081C7E30
+ movs r0, 0x2
+ bl GetSpriteTileStartByTag
+ ldr r3, [r5, 0x20]
+ adds r0, 0x20
+ b _081C7E3A
+_081C7E30:
+ movs r0, 0x2
+ bl GetSpriteTileStartByTag
+ ldr r3, [r5, 0x20]
+ adds r0, 0x40
+_081C7E3A:
+ ldr r2, =0x000003ff
+ adds r1, r2, 0
+ ands r0, r1
+ ldrh r2, [r3, 0x4]
+ ldr r1, =0xfffffc00
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3, 0x4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C7E14
+
+ thumb_func_start sub_81C7E58
+sub_81C7E58: @ 81C7E58
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r0
+ cmp r0, 0x5
+ bhi _081C7F16
+ movs r0, 0
+ bl sub_81C763C
+ adds r7, r0, 0
+ ldr r0, =gUnknown_0861FA6C
+ mov r1, r9
+ lsls r6, r1, 3
+ adds r6, r0
+ ldrh r4, [r6, 0x6]
+ ldr r2, [r6]
+ mov r8, r2
+ mov r0, r8
+ bl sub_8034974
+ adds r5, r0, 0
+ lsls r4, 5
+ ldr r0, =gUnknown_08DC7F00
+ adds r4, r0
+ movs r0, 0x1
+ bl IndexOfSpritePaletteTag
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 4
+ movs r0, 0x80
+ lsls r0, 17
+ adds r1, r0
+ lsrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r4, =0x0201c000
+ mov r0, r8
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ movs r0, 0x2
+ bl GetSpriteTileStartByTag
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 11
+ ldr r2, =0x06010000
+ adds r1, r2
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl RequestDma3Copy
+ movs r0, 0x2
+ bl GetSpriteTileStartByTag
+ ldr r3, [r7, 0x20]
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+ ldr r2, =0x000003ff
+ adds r1, r2, 0
+ ands r0, r1
+ ldrh r2, [r3, 0x4]
+ ldr r1, =0xfffffc00
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3, 0x4]
+ mov r0, r9
+ subs r0, 0x4
+ cmp r0, 0x1
+ bhi _081C7F10
+ ldr r1, [r7, 0x20]
+ movs r0, 0x38
+ b _081C7F14
+ .pool
+_081C7F10:
+ ldr r1, [r7, 0x20]
+ movs r0, 0x40
+_081C7F14:
+ strh r0, [r1, 0x24]
+_081C7F16:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C7E58
+
+ thumb_func_start sub_81C7F24
+sub_81C7F24: @ 81C7F24
+ push {r4-r6,lr}
+ cmp r0, 0x6
+ bhi _081C7F8A
+ ldr r2, =gUnknown_0861FA9C
+ lsls r1, r0, 3
+ adds r0, r2, 0x4
+ adds r0, r1, r0
+ ldr r4, [r0]
+ adds r1, r2
+ ldr r6, [r1]
+ adds r0, r6, 0
+ bl sub_8034974
+ adds r5, r0, 0
+ lsls r4, 5
+ ldr r0, =gUnknown_08DC7F00
+ adds r4, r0
+ movs r0, 0x2
+ bl IndexOfSpritePaletteTag
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 4
+ movs r0, 0x80
+ lsls r0, 17
+ adds r1, r0
+ lsrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r4, =0x0201d000
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ movs r0, 0x2
+ bl GetSpriteTileStartByTag
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 11
+ ldr r0, =0x06010800
+ adds r1, r0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl RequestDma3Copy
+_081C7F8A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C7F24
+
+ thumb_func_start sub_81C7FA0
+sub_81C7FA0: @ 81C7FA0
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x10
+ cmp r1, 0
+ bne _081C7FAC
+ movs r0, 0x30
+_081C7FAC:
+ cmp r3, 0x5
+ bhi _081C7FB8
+ adds r1, r2, 0
+ bl sub_81C803C
+ b _081C7FBE
+_081C7FB8:
+ adds r1, r2, 0
+ bl sub_81C8088
+_081C7FBE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C7FA0
+
+ thumb_func_start sub_81C7FC4
+sub_81C7FC4: @ 81C7FC4
+ push {lr}
+ cmp r0, 0x5
+ bhi _081C7FD2
+ adds r0, r1, 0
+ bl sub_81C80D4
+ b _081C7FD8
+_081C7FD2:
+ adds r0, r1, 0
+ bl sub_81C8110
+_081C7FD8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C7FC4
+
+ thumb_func_start sub_81C7FDC
+sub_81C7FDC: @ 81C7FDC
+ push {r4,lr}
+ movs r0, 0
+ bl sub_81C763C
+ movs r4, 0x4
+ adds r2, r0, 0
+ adds r2, 0x1C
+ movs r3, 0x1
+_081C7FEC:
+ ldr r1, [r2]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r4
+ strb r0, [r1]
+ ldr r1, [r2, 0x8]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r4
+ strb r0, [r1]
+ adds r2, 0x4
+ subs r3, 0x1
+ cmp r3, 0
+ bge _081C7FEC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C7FDC
+
+ thumb_func_start sub_81C8010
+sub_81C8010: @ 81C8010
+ push {lr}
+ movs r0, 0
+ bl sub_81C763C
+ adds r1, r0, 0
+ ldr r0, [r1, 0x1C]
+ ldr r2, [r0, 0x1C]
+ ldr r0, =SpriteCallbackDummy
+ cmp r2, r0
+ bne _081C8034
+ ldr r0, [r1, 0x24]
+ ldr r0, [r0, 0x1C]
+ cmp r0, r2
+ bne _081C8034
+ movs r0, 0
+ b _081C8036
+ .pool
+_081C8034:
+ movs r0, 0x1
+_081C8036:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C8010
+
+ thumb_func_start sub_81C803C
+sub_81C803C: @ 81C803C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ adds r4, r1, 0
+ movs r0, 0
+ bl sub_81C763C
+ cmp r4, 0
+ bne _081C8058
+ movs r7, 0x60
+ negs r7, r7
+ movs r6, 0x20
+ b _081C805E
+_081C8058:
+ movs r7, 0x80
+ lsls r7, 1
+ movs r6, 0xA0
+_081C805E:
+ adds r4, r0, 0
+ adds r4, 0x1C
+ movs r5, 0x1
+_081C8064:
+ ldr r0, [r4]
+ mov r1, r8
+ strh r1, [r0, 0x22]
+ ldm r4!, {r0}
+ adds r1, r7, 0
+ adds r2, r6, 0
+ movs r3, 0xC
+ bl sub_81C814C
+ subs r5, 0x1
+ cmp r5, 0
+ bge _081C8064
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C803C
+
+ thumb_func_start sub_81C8088
+sub_81C8088: @ 81C8088
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ adds r4, r1, 0
+ movs r0, 0
+ bl sub_81C763C
+ cmp r4, 0
+ bne _081C80A4
+ movs r7, 0x60
+ negs r7, r7
+ movs r6, 0x10
+ b _081C80AA
+_081C80A4:
+ movs r7, 0x80
+ lsls r7, 1
+ movs r6, 0xC0
+_081C80AA:
+ adds r4, r0, 0
+ adds r4, 0x24
+ movs r5, 0x1
+_081C80B0:
+ ldr r0, [r4]
+ mov r1, r8
+ strh r1, [r0, 0x22]
+ ldm r4!, {r0}
+ adds r1, r7, 0
+ adds r2, r6, 0
+ movs r3, 0xC
+ bl sub_81C814C
+ subs r5, 0x1
+ cmp r5, 0
+ bge _081C80B0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C8088
+
+ thumb_func_start sub_81C80D4
+sub_81C80D4: @ 81C80D4
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ bl sub_81C763C
+ cmp r4, 0
+ bne _081C80EA
+ movs r6, 0x20
+ movs r5, 0x60
+ negs r5, r5
+ b _081C80F0
+_081C80EA:
+ movs r6, 0xC0
+ movs r5, 0x80
+ lsls r5, 1
+_081C80F0:
+ adds r7, r0, 0
+ adds r7, 0x1C
+ movs r4, 0x1
+_081C80F6:
+ ldm r7!, {r0}
+ adds r1, r6, 0
+ adds r2, r5, 0
+ movs r3, 0xC
+ bl sub_81C814C
+ subs r4, 0x1
+ cmp r4, 0
+ bge _081C80F6
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C80D4
+
+ thumb_func_start sub_81C8110
+sub_81C8110: @ 81C8110
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ bl sub_81C763C
+ cmp r4, 0
+ bne _081C8126
+ movs r6, 0x10
+ movs r5, 0x60
+ negs r5, r5
+ b _081C812C
+_081C8126:
+ movs r6, 0xC0
+ movs r5, 0x80
+ lsls r5, 1
+_081C812C:
+ adds r7, r0, 0
+ adds r7, 0x24
+ movs r4, 0x1
+_081C8132:
+ ldm r7!, {r0}
+ adds r1, r6, 0
+ adds r2, r5, 0
+ movs r3, 0xC
+ bl sub_81C814C
+ subs r4, 0x1
+ cmp r4, 0
+ bge _081C8132
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C8110
+
+ thumb_func_start sub_81C814C
+sub_81C814C: @ 81C814C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ adds r6, r2, 0
+ adds r5, r3, 0
+ strh r0, [r4, 0x20]
+ lsls r1, r0, 4
+ strh r1, [r4, 0x2E]
+ subs r0, r6, r0
+ lsls r0, 4
+ adds r1, r5, 0
+ bl __divsi3
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ strh r6, [r4, 0x3C]
+ ldr r0, =sub_81C817C
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C814C
+
+ thumb_func_start sub_81C817C
+sub_81C817C: @ 81C817C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x32]
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _081C81C4
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x32]
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x2E]
+ adds r0, r1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ adds r0, 0x10
+ lsls r0, 16
+ movs r1, 0x88
+ lsls r1, 17
+ cmp r0, r1
+ bls _081C81B6
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _081C81CC
+_081C81B6:
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ b _081C81CC
+_081C81C4:
+ ldrh r0, [r2, 0x3C]
+ strh r0, [r2, 0x20]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_081C81CC:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C817C
+
+ thumb_func_start sub_81C81D4
+sub_81C81D4: @ 81C81D4
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ adds r7, r2, 0
+ ldr r1, =0x000008a4
+ movs r0, 0x11
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081C821C
+ ldr r1, =0x00000888
+ adds r0, r4, r1
+ adds r1, r5, 0
+ bl sub_81C9160
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ adds r3, r7, 0
+ bl sub_81C91AC
+ cmp r0, 0
+ beq _081C821C
+ ldr r0, =sub_81C8254
+ movs r1, 0x6
+ bl sub_81C7078
+ movs r0, 0x1
+ b _081C821E
+ .pool
+_081C821C:
+ movs r0, 0
+_081C821E:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C81D4
+
+ thumb_func_start sub_81C8224
+sub_81C8224: @ 81C8224
+ push {lr}
+ ldr r0, =sub_81C8254
+ bl sub_81C7124
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81C8224
+
+ thumb_func_start sub_81C8234
+sub_81C8234: @ 81C8234
+ push {r4,lr}
+ movs r0, 0x11
+ bl sub_81C763C
+ adds r4, r0, 0
+ bl sub_81C8FE0
+ ldrb r0, [r4, 0x8]
+ bl RemoveWindow
+ movs r0, 0x11
+ bl sub_81C7650
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C8234
+
+ thumb_func_start sub_81C8254
+sub_81C8254: @ 81C8254
+ push {r4,lr}
+ adds r4, r0, 0
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _081C82C0
+ movs r0, 0x11
+ bl sub_81C763C
+ adds r2, r0, 0
+ cmp r4, 0x4
+ bhi _081C82D6
+ lsls r0, r4, 2
+ ldr r1, =_081C827C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081C827C:
+ .4byte _081C8290
+ .4byte _081C829A
+ .4byte _081C82A4
+ .4byte _081C82B8
+ .4byte _081C82CC
+_081C8290:
+ adds r0, r2, 0
+ bl sub_81C82E4
+ movs r0, 0
+ b _081C82D8
+_081C829A:
+ adds r0, r2, 0
+ bl sub_81C835C
+ movs r0, 0
+ b _081C82D8
+_081C82A4:
+ ldr r1, =0x00000888
+ adds r0, r2, r1
+ adds r1, r2, 0
+ bl sub_81C837C
+ movs r0, 0
+ b _081C82D8
+ .pool
+_081C82B8:
+ bl sub_81C83E0
+ cmp r0, 0
+ beq _081C82C4
+_081C82C0:
+ movs r0, 0x2
+ b _081C82D8
+_081C82C4:
+ bl sub_81C8ED0
+ movs r0, 0x1
+ b _081C82D8
+_081C82CC:
+ ldr r1, =0x00000888
+ adds r0, r2, r1
+ adds r1, r2, 0
+ bl sub_81C8EF8
+_081C82D6:
+ movs r0, 0x4
+_081C82D8:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81C8254
+
+ thumb_func_start sub_81C82E4
+sub_81C82E4: @ 81C82E4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ ldrb r4, [r5, 0x1]
+ lsls r4, 12
+ ldrh r0, [r5, 0x6]
+ orrs r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r5]
+ ldrh r2, [r5, 0x6]
+ movs r1, 0x11
+ movs r3, 0x1
+ bl sub_8199DF0
+ ldrb r0, [r5]
+ ldrh r2, [r5, 0x6]
+ adds r2, 0x1
+ movs r1, 0x44
+ movs r3, 0x1
+ bl sub_8199DF0
+ ldrb r0, [r5]
+ adds r1, r5, 0
+ adds r1, 0x88
+ bl SetBgTilemapBuffer
+ ldrb r0, [r5]
+ movs r1, 0x20
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ ldrb r0, [r5]
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ ldrb r0, [r5]
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ ldrb r0, [r5]
+ ldrb r1, [r5, 0x3]
+ lsls r1, 11
+ movs r2, 0x2
+ bl ChangeBgY
+ ldrb r0, [r5]
+ bl CopyBgTilemapBufferToVram
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C82E4
+
+ thumb_func_start sub_81C835C
+sub_81C835C: @ 81C835C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldrb r0, [r4, 0x8]
+ bl PutWindowTilemap
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x1
+ bl CopyWindowToVram
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C835C
+
+ thumb_func_start sub_81C837C
+sub_81C837C: @ 81C837C
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r3, r0, 0
+ adds r5, r1, 0
+ ldrh r0, [r3, 0x2]
+ ldrh r4, [r3]
+ subs r2, r0, r4
+ ldrh r0, [r3, 0x8]
+ cmp r2, r0
+ ble _081C8392
+ adds r2, r0, 0
+_081C8392:
+ ldr r0, [r3, 0x10]
+ ldr r3, [r3, 0xC]
+ movs r1, 0
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ adds r1, r4, 0
+ bl sub_81C83AC
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C837C
+
+ thumb_func_start sub_81C83AC
+sub_81C83AC: @ 81C83AC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r1, [sp, 0x10]
+ cmp r2, 0
+ beq _081C83D6
+ adds r0, r5, 0
+ muls r0, r3
+ adds r0, r4, r0
+ str r0, [r1, 0x1C]
+ str r3, [r1, 0x18]
+ movs r0, 0
+ strh r0, [r1, 0xC]
+ strh r2, [r1, 0xE]
+ str r5, [r1, 0x14]
+ ldr r0, [sp, 0xC]
+ str r0, [r1, 0x10]
+ ldr r0, =sub_81C83F0
+ movs r1, 0x5
+ bl sub_81C7078
+_081C83D6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C83AC
+
+ thumb_func_start sub_81C83E0
+sub_81C83E0: @ 81C83E0
+ push {lr}
+ ldr r0, =sub_81C83F0
+ bl sub_81C7124
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81C83E0
+
+ thumb_func_start sub_81C83F0
+sub_81C83F0: @ 81C83F0
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ movs r0, 0x11
+ bl sub_81C763C
+ adds r4, r0, 0
+ cmp r6, 0
+ beq _081C8408
+ cmp r6, 0x1
+ beq _081C848C
+ b _081C849A
+_081C8408:
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xC]
+ adds r0, r1
+ ldr r1, [r4, 0x10]
+ adds r5, r0, r1
+ movs r0, 0xF
+ ands r5, r0
+ ldr r0, [r4, 0x1C]
+ adds r7, r4, 0
+ adds r7, 0x48
+ ldr r2, [r4, 0x34]
+ adds r1, r7, 0
+ bl _call_via_r2
+ ldr r3, [r4, 0x38]
+ cmp r3, 0
+ beq _081C8434
+ ldrh r0, [r4, 0x8]
+ ldr r1, [r4, 0x14]
+ adds r2, r5, 0
+ bl _call_via_r3
+_081C8434:
+ ldrb r0, [r4, 0x8]
+ ldrb r1, [r4, 0x5]
+ lsls r2, r5, 4
+ movs r3, 0x1
+ orrs r2, r3
+ str r2, [sp]
+ movs r2, 0xFF
+ str r2, [sp, 0x4]
+ str r6, [sp, 0x8]
+ adds r2, r7, 0
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r4, 0xE]
+ cmp r0, r1
+ bcc _081C847A
+ ldr r0, [r4, 0x38]
+ cmp r0, 0
+ beq _081C846E
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ b _081C8476
+_081C846E:
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x2
+ bl CopyWindowToVram
+_081C8476:
+ movs r0, 0
+ b _081C849C
+_081C847A:
+ ldr r0, [r4, 0x1C]
+ ldr r1, [r4, 0x18]
+ adds r0, r1
+ str r0, [r4, 0x1C]
+ ldr r0, [r4, 0x14]
+ adds r0, 0x1
+ str r0, [r4, 0x14]
+ movs r0, 0x3
+ b _081C849C
+_081C848C:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081C849A
+ movs r0, 0x2
+ b _081C849C
+_081C849A:
+ movs r0, 0x4
+_081C849C:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C83F0
+
+ thumb_func_start sub_81C84A4
+sub_81C84A4: @ 81C84A4
+ push {lr}
+ movs r0, 0x11
+ bl sub_81C763C
+ ldr r1, =0x00000888
+ adds r0, r1
+ ldrh r1, [r0]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81C84A4
+
+ thumb_func_start sub_81C84C0
+sub_81C84C0: @ 81C84C0
+ push {lr}
+ movs r0, 0x11
+ bl sub_81C763C
+ ldr r1, =0x00000888
+ adds r0, r1
+ movs r3, 0
+ ldrh r1, [r0]
+ ldrh r2, [r0, 0x8]
+ adds r1, r2
+ ldrh r0, [r0, 0x2]
+ cmp r1, r0
+ bge _081C84DC
+ movs r3, 0x1
+_081C84DC:
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81C84C0
+
+ thumb_func_start sub_81C84E8
+sub_81C84E8: @ 81C84E8
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r4, r1, 0
+ movs r0, 0x11
+ bl sub_81C763C
+ adds r7, r0, 0
+ ldr r0, =0x00000888
+ adds r5, r7, r0
+ cmp r6, 0
+ bge _081C8524
+ ldrh r1, [r5]
+ adds r0, r1, r6
+ cmp r0, 0
+ bge _081C850A
+ negs r6, r1
+_081C850A:
+ cmp r4, 0
+ beq _081C854E
+ ldr r0, [r5, 0x10]
+ adds r1, r6
+ negs r2, r6
+ ldr r3, [r5, 0xC]
+ str r6, [sp]
+ str r7, [sp, 0x4]
+ bl sub_81C83AC
+ b _081C854E
+ .pool
+_081C8524:
+ cmp r4, 0
+ beq _081C854E
+ ldr r2, =gUnknown_0203CF44
+ ldrh r1, [r5]
+ ldrh r0, [r5, 0x8]
+ adds r4, r1, r0
+ str r4, [r2]
+ adds r0, r4, r6
+ ldrh r1, [r5, 0x2]
+ cmp r0, r1
+ blt _081C853C
+ subs r6, r1, r4
+_081C853C:
+ ldr r0, [r5, 0x10]
+ ldr r3, [r5, 0xC]
+ ldrh r1, [r5, 0x8]
+ str r1, [sp]
+ str r7, [sp, 0x4]
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_81C83AC
+_081C854E:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl sub_81C8568
+ ldrh r0, [r5]
+ adds r0, r6
+ strh r0, [r5]
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C84E8
+
+ thumb_func_start sub_81C8568
+sub_81C8568: @ 81C8568
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldrb r0, [r4]
+ bl GetBgY
+ str r0, [r4, 0x20]
+ lsls r1, r5, 12
+ adds r0, r1
+ str r0, [r4, 0x24]
+ cmp r5, 0
+ ble _081C8584
+ movs r0, 0x1
+ b _081C8586
+_081C8584:
+ movs r0, 0x2
+_081C8586:
+ str r0, [r4, 0x30]
+ str r5, [r4, 0x2C]
+ ldr r0, =sub_81C85A0
+ movs r1, 0x6
+ bl sub_81C7078
+ str r0, [r4, 0x28]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C8568
+
+ thumb_func_start sub_81C85A0
+sub_81C85A0: @ 81C85A0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r0, 0x11
+ bl sub_81C763C
+ adds r4, r0, 0
+ cmp r5, 0
+ beq _081C85B8
+ cmp r5, 0x1
+ beq _081C85C4
+ movs r0, 0x4
+ b _081C862A
+_081C85B8:
+ bl sub_81C83E0
+ cmp r0, 0
+ bne _081C8628
+ movs r0, 0x1
+ b _081C862A
+_081C85C4:
+ movs r6, 0
+ ldrb r0, [r4]
+ bl GetBgY
+ adds r5, r0, 0
+ ldrb r0, [r4]
+ movs r1, 0x80
+ lsls r1, 5
+ ldr r2, [r4, 0x30]
+ lsls r2, 24
+ lsrs r2, 24
+ bl ChangeBgY
+ adds r1, r0, 0
+ ldr r0, [r4, 0x30]
+ cmp r0, 0x2
+ bne _081C85F8
+ ldr r2, [r4, 0x24]
+ cmp r5, r2
+ bgt _081C85F2
+ ldr r0, [r4, 0x20]
+ cmp r5, r0
+ bgt _081C860A
+_081C85F2:
+ cmp r1, r2
+ bgt _081C860A
+ b _081C860E
+_081C85F8:
+ ldr r2, [r4, 0x24]
+ cmp r5, r2
+ blt _081C8604
+ ldr r0, [r4, 0x20]
+ cmp r5, r0
+ blt _081C860A
+_081C8604:
+ cmp r1, r2
+ blt _081C860A
+ movs r6, 0x1
+_081C860A:
+ cmp r6, 0
+ beq _081C8628
+_081C860E:
+ ldr r1, [r4, 0x2C]
+ ldrh r0, [r4, 0xA]
+ adds r0, r1
+ movs r1, 0xF
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrb r0, [r4]
+ adds r1, r2, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x4
+ b _081C862A
+_081C8628:
+ movs r0, 0x2
+_081C862A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C85A0
+
+ thumb_func_start sub_81C8630
+sub_81C8630: @ 81C8630
+ push {lr}
+ movs r0, 0x11
+ bl sub_81C763C
+ ldr r0, [r0, 0x28]
+ bl sub_81C70D8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C8630
+
+ thumb_func_start sub_81C8644
+sub_81C8644: @ 81C8644
+ push {lr}
+ movs r0, 0x11
+ bl sub_81C763C
+ ldr r1, =0x00000888
+ adds r0, r1
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81C8644
+
+ thumb_func_start sub_81C8658
+sub_81C8658: @ 81C8658
+ push {lr}
+ bl sub_81C8644
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x6]
+ cmp r0, 0
+ beq _081C866E
+ subs r0, 0x1
+ strh r0, [r1, 0x6]
+ movs r0, 0x1
+ b _081C8686
+_081C866E:
+ bl sub_81C84A4
+ cmp r0, 0
+ bne _081C867A
+ movs r0, 0
+ b _081C8686
+_081C867A:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x1
+ bl sub_81C84E8
+ movs r0, 0x2
+_081C8686:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C8658
+
+ thumb_func_start sub_81C868C
+sub_81C868C: @ 81C868C
+ push {lr}
+ bl sub_81C8644
+ adds r2, r0, 0
+ ldrh r1, [r2]
+ ldrh r3, [r2, 0x6]
+ adds r1, r3
+ ldrh r0, [r2, 0x2]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _081C86BA
+ ldrh r0, [r2, 0x8]
+ subs r0, 0x1
+ cmp r3, r0
+ bge _081C86B2
+ adds r0, r3, 0x1
+ strh r0, [r2, 0x6]
+ movs r0, 0x1
+ b _081C86C8
+_081C86B2:
+ bl sub_81C84C0
+ cmp r0, 0
+ bne _081C86BE
+_081C86BA:
+ movs r0, 0
+ b _081C86C8
+_081C86BE:
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_81C84E8
+ movs r0, 0x2
+_081C86C8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C868C
+
+ thumb_func_start sub_81C86CC
+sub_81C86CC: @ 81C86CC
+ push {r4,lr}
+ bl sub_81C8644
+ adds r4, r0, 0
+ bl sub_81C84A4
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _081C86F8
+ ldrh r0, [r4]
+ ldrh r1, [r4, 0x8]
+ cmp r0, r1
+ bcc _081C86EA
+ ldrh r0, [r4, 0x8]
+ b _081C86EC
+_081C86EA:
+ ldrh r0, [r4]
+_081C86EC:
+ negs r0, r0
+ movs r1, 0x1
+ bl sub_81C84E8
+ movs r0, 0x2
+ b _081C8706
+_081C86F8:
+ ldrh r0, [r4, 0x6]
+ cmp r0, 0
+ bne _081C8702
+ movs r0, 0
+ b _081C8706
+_081C8702:
+ strh r1, [r4, 0x6]
+ movs r0, 0x1
+_081C8706:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C86CC
+
+ thumb_func_start sub_81C870C
+sub_81C870C: @ 81C870C
+ push {r4,lr}
+ bl sub_81C8644
+ adds r4, r0, 0
+ bl sub_81C84C0
+ cmp r0, 0
+ beq _081C8736
+ ldrh r0, [r4]
+ ldrh r3, [r4, 0x8]
+ adds r2, r0, r3
+ ldrh r1, [r4, 0x4]
+ subs r0, r1, r0
+ cmp r2, r1
+ bgt _081C872C
+ adds r0, r3, 0
+_081C872C:
+ movs r1, 0x1
+ bl sub_81C84E8
+ movs r0, 0x2
+ b _081C8756
+_081C8736:
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r4, 0x8]
+ cmp r0, r1
+ bcc _081C8744
+ ldrh r1, [r4, 0x6]
+ ldrh r0, [r4, 0x8]
+ b _081C8748
+_081C8744:
+ ldrh r1, [r4, 0x6]
+ ldrh r0, [r4, 0x2]
+_081C8748:
+ subs r0, 0x1
+ cmp r1, r0
+ bge _081C8754
+ strh r0, [r4, 0x6]
+ movs r0, 0x1
+ b _081C8756
+_081C8754:
+ movs r0, 0
+_081C8756:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C870C
+
+ thumb_func_start sub_81C875C
+sub_81C875C: @ 81C875C
+ push {lr}
+ bl sub_81C8644
+ adds r1, r0, 0
+ ldrh r0, [r1]
+ ldrh r1, [r1, 0x6]
+ adds r0, r1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C875C
+
+ thumb_func_start sub_81C8770
+sub_81C8770: @ 81C8770
+ push {lr}
+ bl sub_81C8644
+ ldrh r0, [r0]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C8770
+
+ thumb_func_start sub_81C877C
+sub_81C877C: @ 81C877C
+ push {r4,lr}
+ movs r0, 0x11
+ bl sub_81C763C
+ adds r4, r0, 0
+ ldr r0, =0x0000089c
+ adds r1, r4, r0
+ movs r0, 0
+ str r0, [r1]
+ ldr r0, =sub_81C8870
+ movs r1, 0x6
+ bl sub_81C7078
+ movs r1, 0x8A
+ lsls r1, 4
+ adds r4, r1
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C877C
+
+ thumb_func_start sub_81C87AC
+sub_81C87AC: @ 81C87AC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0x11
+ bl sub_81C763C
+ adds r5, r0, 0
+ ldr r0, =0x00000888
+ adds r1, r5, r0
+ ldrh r0, [r1]
+ adds r0, r4
+ movs r2, 0
+ strh r0, [r1]
+ ldr r1, =0x0000089c
+ adds r0, r5, r1
+ str r2, [r0]
+ ldr r0, =sub_81C8958
+ movs r1, 0x6
+ bl sub_81C7078
+ movs r1, 0x8A
+ lsls r1, 4
+ adds r5, r1
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C87AC
+
+ thumb_func_start sub_81C87F0
+sub_81C87F0: @ 81C87F0
+ push {r4,lr}
+ movs r0, 0x11
+ bl sub_81C763C
+ adds r4, r0, 0
+ ldr r0, =0x0000089c
+ adds r1, r4, r0
+ movs r0, 0
+ str r0, [r1]
+ ldr r0, =sub_81C8A28
+ movs r1, 0x6
+ bl sub_81C7078
+ movs r1, 0x8A
+ lsls r1, 4
+ adds r4, r1
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C87F0
+
+ thumb_func_start sub_81C8820
+sub_81C8820: @ 81C8820
+ push {lr}
+ movs r0, 0x11
+ bl sub_81C763C
+ movs r1, 0x8A
+ lsls r1, 4
+ adds r0, r1
+ ldr r0, [r0]
+ bl sub_81C70D8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C8820
+
+ thumb_func_start sub_81C8838
+sub_81C8838: @ 81C8838
+ push {r4,lr}
+ movs r0, 0x11
+ bl sub_81C763C
+ adds r4, r0, 0
+ ldr r0, =0x00000888
+ adds r2, r4, r0
+ ldrh r0, [r4, 0x8]
+ ldrh r1, [r2]
+ ldrh r3, [r2, 0x6]
+ adds r1, r3
+ ldrh r2, [r4, 0xA]
+ adds r2, r3
+ movs r3, 0xF
+ ands r2, r3
+ ldr r3, [r4, 0x38]
+ bl _call_via_r3
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x1
+ bl CopyWindowToVram
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C8838
+
+ thumb_func_start sub_81C8870
+sub_81C8870: @ 81C8870
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r0, 0x11
+ bl sub_81C763C
+ adds r4, r0, 0
+ cmp r5, 0x4
+ bhi _081C894C
+ lsls r0, r5, 2
+ ldr r1, =_081C8890
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081C8890:
+ .4byte _081C88A4
+ .4byte _081C88AC
+ .4byte _081C88D8
+ .4byte _081C8918
+ .4byte _081C8938
+_081C88A4:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81C9008
+_081C88AC:
+ ldr r0, =0x0000089c
+ adds r5, r4, r0
+ ldr r1, =0x0000088e
+ adds r0, r4, r1
+ ldr r1, [r5]
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _081C88C4
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_81C8B70
+_081C88C4:
+ ldr r0, [r5]
+ adds r0, 0x1
+ str r0, [r5]
+_081C88CA:
+ movs r0, 0
+ b _081C894E
+ .pool
+_081C88D8:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _081C8942
+ ldr r2, =0x0000089c
+ adds r0, r4, r2
+ subs r2, 0xC
+ adds r1, r4, r2
+ ldr r3, [r0]
+ ldrh r1, [r1]
+ cmp r3, r1
+ beq _081C88FC
+ movs r0, 0x6
+ b _081C894E
+ .pool
+_081C88FC:
+ ldr r0, =0x0000088e
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _081C88CA
+ adds r2, r0, 0
+ adds r0, r4, 0
+ adds r1, r3, 0
+ bl sub_81C8B70
+ b _081C88CA
+ .pool
+_081C8918:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _081C8942
+ ldr r2, =0x0000088e
+ adds r1, r4, r2
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _081C894C
+ movs r1, 0
+ bl sub_81C84E8
+ b _081C88CA
+ .pool
+_081C8938:
+ bl sub_81C8630
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _081C8946
+_081C8942:
+ movs r0, 0x2
+ b _081C894E
+_081C8946:
+ ldr r2, =0x0000088e
+ adds r0, r4, r2
+ strh r1, [r0]
+_081C894C:
+ movs r0, 0x4
+_081C894E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81C8870
+
+ thumb_func_start sub_81C8958
+sub_81C8958: @ 81C8958
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r0, 0x11
+ bl sub_81C763C
+ adds r4, r0, 0
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081C8972
+ movs r0, 0x2
+ b _081C8A22
+_081C8972:
+ cmp r5, 0x7
+ bhi _081C8A1C
+ lsls r0, r5, 2
+ ldr r1, =_081C8984
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081C8984:
+ .4byte _081C89A4
+ .4byte _081C89B4
+ .4byte _081C89BE
+ .4byte _081C89D0
+ .4byte _081C89DA
+ .4byte _081C89EC
+ .4byte _081C89F6
+ .4byte _081C8A08
+_081C89A4:
+ ldr r1, =0x00000888
+ adds r0, r4, r1
+ adds r1, r4, 0
+ bl sub_81C8CB4
+ b _081C8A20
+ .pool
+_081C89B4:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_81C8DBC
+ b _081C8A20
+_081C89BE:
+ ldr r1, =0x00000888
+ adds r0, r4, r1
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_81C8E54
+ b _081C8A20
+ .pool
+_081C89D0:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81C8DBC
+ b _081C8A20
+_081C89DA:
+ ldr r1, =0x00000888
+ adds r0, r4, r1
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_81C8E54
+ b _081C8A20
+ .pool
+_081C89EC:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_81C8DBC
+ b _081C8A20
+_081C89F6:
+ ldr r1, =0x00000888
+ adds r0, r4, r1
+ adds r1, r4, 0
+ movs r2, 0x2
+ bl sub_81C8E54
+ b _081C8A20
+ .pool
+_081C8A08:
+ ldr r1, =0x00000888
+ adds r0, r4, r1
+ adds r1, r4, 0
+ movs r2, 0x3
+ bl sub_81C8E54
+ b _081C8A20
+ .pool
+_081C8A1C:
+ movs r0, 0x4
+ b _081C8A22
+_081C8A20:
+ movs r0, 0
+_081C8A22:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C8958
+
+ thumb_func_start sub_81C8A28
+sub_81C8A28: @ 81C8A28
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _081C8AA6
+ movs r0, 0x11
+ bl sub_81C763C
+ adds r4, r0, 0
+ ldr r0, =0x00000888
+ adds r6, r4, r0
+ adds r2, r4, 0
+ cmp r5, 0x6
+ bls _081C8A4C
+ b _081C8B64
+_081C8A4C:
+ lsls r0, r5, 2
+ ldr r1, =_081C8A60
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081C8A60:
+ .4byte _081C8A7C
+ .4byte _081C8A88
+ .4byte _081C8AE8
+ .4byte _081C8AFC
+ .4byte _081C8B14
+ .4byte _081C8B34
+ .4byte _081C8B5C
+_081C8A7C:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_81C8D4C
+ movs r0, 0
+ b _081C8B66
+_081C8A88:
+ ldr r1, =0x0000089c
+ adds r7, r4, r1
+ ldr r0, [r7]
+ adds r1, r0, 0x1
+ str r1, [r7]
+ movs r3, 0x89
+ lsls r3, 4
+ adds r0, r4, r3
+ ldrh r0, [r0]
+ cmp r1, r0
+ bge _081C8AB0
+ adds r0, r2, 0
+ movs r2, 0x1
+ bl sub_81C8B70
+_081C8AA6:
+ movs r0, 0x2
+ b _081C8B66
+ .pool
+_081C8AB0:
+ movs r0, 0
+ str r0, [r7]
+ ldrh r0, [r6, 0x2]
+ ldrh r1, [r6, 0x8]
+ cmp r0, r1
+ bhi _081C8AC6
+ ldrh r0, [r6]
+ cmp r0, 0
+ beq _081C8B52
+ adds r4, r0, 0
+ b _081C8AD4
+_081C8AC6:
+ ldrh r1, [r6]
+ ldrh r0, [r6, 0x8]
+ adds r4, r1, r0
+ ldrh r1, [r6, 0x2]
+ cmp r4, r1
+ ble _081C8B52
+ subs r4, r1
+_081C8AD4:
+ negs r5, r4
+ adds r0, r2, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_81C8B70
+ strh r4, [r6, 0x6]
+ str r5, [r7]
+ movs r0, 0
+ b _081C8B66
+_081C8AE8:
+ ldr r2, =0x0000089c
+ adds r0, r4, r2
+ ldr r0, [r0]
+ movs r1, 0
+ bl sub_81C84E8
+ movs r0, 0
+ b _081C8B66
+ .pool
+_081C8AFC:
+ bl sub_81C8630
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _081C8AA6
+ ldr r3, =0x0000089c
+ adds r0, r4, r3
+ str r1, [r0]
+_081C8B0C:
+ movs r0, 0x1
+ b _081C8B66
+ .pool
+_081C8B14:
+ ldr r0, [r6, 0x10]
+ ldrh r1, [r6]
+ ldr r3, =0x0000089c
+ adds r2, r4, r3
+ ldr r2, [r2]
+ adds r1, r2
+ ldr r3, [r6, 0xC]
+ str r2, [sp]
+ str r4, [sp, 0x4]
+ movs r2, 0x1
+ bl sub_81C83AC
+ movs r0, 0
+ b _081C8B66
+ .pool
+_081C8B34:
+ bl sub_81C83E0
+ cmp r0, 0
+ bne _081C8AA6
+ ldr r0, =0x0000089c
+ adds r1, r4, r0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldrh r1, [r6, 0x2]
+ cmp r0, r1
+ bge _081C8B0C
+ ldrh r6, [r6, 0x8]
+ cmp r0, r6
+ bge _081C8B0C
+_081C8B52:
+ movs r0, 0x9
+ b _081C8B66
+ .pool
+_081C8B5C:
+ adds r0, r2, 0
+ movs r1, 0
+ bl sub_81C9008
+_081C8B64:
+ movs r0, 0x4
+_081C8B66:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C8A28
+
+ thumb_func_start sub_81C8B70
+sub_81C8B70: @ 81C8B70
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ mov r9, r0
+ adds r7, r1, 0
+ adds r6, r2, 0
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x7
+ bl GetWindowAttribute
+ mov r10, r0
+ mov r1, r9
+ ldrb r0, [r1, 0x4]
+ lsls r3, r0, 6
+ ldrh r0, [r1, 0xA]
+ adds r7, r0, r7
+ movs r0, 0xF
+ ands r7, r0
+ adds r0, r7, r6
+ cmp r0, 0x10
+ bgt _081C8BD4
+ ldr r0, =0x11111111
+ str r0, [sp]
+ adds r1, r7, 0
+ muls r1, r3
+ add r1, r10
+ adds r2, r6, 0
+ muls r2, r3
+ lsrs r2, 2
+ ldr r0, =0x001fffff
+ ands r2, r0
+ movs r0, 0x80
+ lsls r0, 17
+ orrs r2, r0
+ mov r0, sp
+ bl CpuFastSet
+ mov r1, r9
+ ldrb r0, [r1, 0x8]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _081C8C1E
+ .pool
+_081C8BD4:
+ movs r2, 0x10
+ subs r2, r7
+ subs r0, r6, r2
+ mov r8, r0
+ ldr r1, =0x11111111
+ str r1, [sp, 0x4]
+ add r0, sp, 0x4
+ adds r1, r7, 0
+ muls r1, r3
+ add r1, r10
+ muls r2, r3
+ lsrs r2, 2
+ ldr r5, =0x001fffff
+ ands r2, r5
+ movs r4, 0x80
+ lsls r4, 17
+ orrs r2, r4
+ str r3, [sp, 0xC]
+ bl CpuFastSet
+ ldr r0, =0x11111111
+ str r0, [sp, 0x8]
+ add r0, sp, 0x8
+ ldr r3, [sp, 0xC]
+ mov r2, r8
+ muls r2, r3
+ lsrs r2, 2
+ ands r2, r5
+ orrs r2, r4
+ mov r1, r10
+ bl CpuFastSet
+ mov r1, r9
+ ldrb r0, [r1, 0x8]
+ movs r1, 0x2
+ bl CopyWindowToVram
+_081C8C1E:
+ subs r6, 0x1
+ movs r0, 0x1
+ negs r0, r0
+ cmp r6, r0
+ beq _081C8C40
+ movs r5, 0xF
+ adds r4, r0, 0
+_081C8C2C:
+ mov r1, r9
+ ldrh r0, [r1, 0x8]
+ adds r1, r7, 0
+ bl sub_81CBD48
+ adds r7, 0x1
+ ands r7, r5
+ subs r6, 0x1
+ cmp r6, r4
+ bne _081C8C2C
+_081C8C40:
+ mov r1, r9
+ ldrb r0, [r1, 0x8]
+ movs r1, 0x1
+ bl CopyWindowToVram
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C8B70
+
+ thumb_func_start sub_81C8C64
+sub_81C8C64: @ 81C8C64
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldrb r0, [r5, 0x8]
+ movs r1, 0
+ bl GetWindowAttribute
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBgTilemapBuffer
+ adds r2, r0, 0
+ ldrh r0, [r5, 0xA]
+ lsls r0, 6
+ ldrb r1, [r5, 0x2]
+ adds r0, r1
+ lsls r0, 1
+ subs r0, 0x2
+ adds r2, r0
+ cmp r4, 0
+ beq _081C8C98
+ ldrb r0, [r5, 0x1]
+ lsls r0, 12
+ ldrh r1, [r5, 0x6]
+ adds r1, 0x1
+ b _081C8C9E
+_081C8C98:
+ ldrb r0, [r5, 0x1]
+ lsls r0, 12
+ ldrh r1, [r5, 0x6]
+_081C8C9E:
+ orrs r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ strh r1, [r2]
+ adds r0, r2, 0
+ adds r0, 0x40
+ strh r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C8C64
+
+ thumb_func_start sub_81C8CB4
+sub_81C8CB4: @ 81C8CB4
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r1, =gUnknown_0861FBE4
+ add r0, sp, 0xC
+ movs r2, 0x3
+ bl memcpy
+ ldrh r1, [r5]
+ ldr r0, [r5, 0xC]
+ muls r1, r0
+ ldr r0, [r5, 0x10]
+ adds r0, r1
+ adds r6, r4, 0
+ adds r6, 0x48
+ ldr r2, [r4, 0x34]
+ adds r1, r6, 0
+ bl _call_via_r2
+ ldrh r0, [r4, 0x8]
+ ldrh r1, [r5]
+ ldrh r2, [r4, 0xA]
+ ldr r3, [r4, 0x38]
+ bl _call_via_r3
+ ldrb r0, [r4, 0x8]
+ ldrh r3, [r4, 0xA]
+ lsls r3, 20
+ lsrs r3, 16
+ ldrb r1, [r4, 0x4]
+ lsls r1, 3
+ str r1, [sp]
+ movs r1, 0x10
+ str r1, [sp, 0x4]
+ movs r1, 0x44
+ movs r2, 0
+ bl FillWindowPixelRect
+ ldrb r0, [r4, 0x8]
+ ldrb r1, [r4, 0x5]
+ ldrh r3, [r4, 0xA]
+ lsls r3, 4
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ add r2, sp, 0xC
+ str r2, [sp]
+ movs r2, 0x1
+ negs r2, r2
+ str r2, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r2, 0x8
+ bl box_print
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81C8C64
+ ldrh r0, [r4, 0x8]
+ ldrh r3, [r4, 0xA]
+ lsls r3, 1
+ ldrb r1, [r4, 0x4]
+ str r1, [sp]
+ movs r1, 0x2
+ str r1, [sp, 0x4]
+ movs r1, 0x3
+ movs r2, 0
+ bl CopyWindowRectToVram
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C8CB4
+
+ thumb_func_start sub_81C8D4C
+sub_81C8D4C: @ 81C8D4C
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r1, 0
+ ldrh r2, [r0]
+ ldr r1, [r0, 0xC]
+ muls r1, r2
+ ldr r0, [r0, 0x10]
+ adds r0, r1
+ adds r5, r4, 0
+ adds r5, 0x48
+ ldr r2, [r4, 0x34]
+ adds r1, r5, 0
+ bl _call_via_r2
+ ldrb r0, [r4, 0x8]
+ ldrh r3, [r4, 0xA]
+ lsls r3, 20
+ lsrs r3, 16
+ ldrb r1, [r4, 0x4]
+ lsls r1, 3
+ str r1, [sp]
+ movs r1, 0x10
+ str r1, [sp, 0x4]
+ movs r1, 0x11
+ movs r2, 0
+ bl FillWindowPixelRect
+ ldrb r0, [r4, 0x8]
+ ldrb r1, [r4, 0x5]
+ ldrh r2, [r4, 0xA]
+ lsls r2, 4
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ movs r2, 0xFF
+ str r2, [sp, 0x4]
+ movs r2, 0
+ str r2, [sp, 0x8]
+ adds r2, r5, 0
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_81C8C64
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C8D4C
+
+ thumb_func_start sub_81C8DBC
+sub_81C8DBC: @ 81C8DBC
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x1C
+ adds r6, r0, 0
+ mov r8, r1
+ add r1, sp, 0xC
+ ldr r0, =gUnknown_0861FBE8
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ add r0, sp, 0x18
+ mov r9, r0
+ ldr r1, =gUnknown_0861FBF4
+ movs r2, 0x3
+ bl memcpy
+ ldrh r4, [r6, 0xA]
+ mov r1, r8
+ lsls r0, r1, 1
+ adds r0, 0x1
+ adds r4, r0
+ movs r0, 0xF
+ ands r4, r0
+ ldrb r0, [r6, 0x8]
+ lsls r5, r4, 4
+ adds r3, r5, 0
+ ldrb r1, [r6, 0x4]
+ str r1, [sp]
+ movs r1, 0x10
+ str r1, [sp, 0x4]
+ movs r1, 0x11
+ movs r2, 0
+ bl FillWindowPixelRect
+ ldrb r0, [r6, 0x8]
+ movs r1, 0x1
+ orrs r5, r1
+ mov r2, r9
+ str r2, [sp]
+ subs r1, 0x2
+ str r1, [sp, 0x4]
+ mov r3, r8
+ lsls r3, 2
+ mov r8, r3
+ mov r1, sp
+ add r1, r8
+ adds r1, 0xC
+ ldr r1, [r1]
+ str r1, [sp, 0x8]
+ movs r1, 0x7
+ movs r2, 0x2
+ adds r3, r5, 0
+ bl box_print
+ ldrh r0, [r6, 0x8]
+ lsls r4, 1
+ ldrb r1, [r6, 0x4]
+ str r1, [sp]
+ movs r1, 0x2
+ str r1, [sp, 0x4]
+ movs r2, 0
+ adds r3, r4, 0
+ bl CopyWindowRectToVram
+ add sp, 0x1C
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C8DBC
+
+ thumb_func_start sub_81C8E54
+sub_81C8E54: @ 81C8E54
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ adds r7, r1, 0
+ adds r1, r2, 0
+ ldrh r3, [r7, 0xA]
+ ldr r2, =gUnknown_0861FBF7
+ adds r2, r1, r2
+ ldrb r2, [r2]
+ adds r6, r3, r2
+ movs r2, 0xF
+ ands r6, r2
+ ldrh r0, [r0]
+ bl sub_81CAFD8
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _081C8EC0
+ ldrh r0, [r7, 0x8]
+ lsls r4, r6, 1
+ ldrb r3, [r7, 0x4]
+ subs r3, 0x1
+ movs r1, 0x2
+ mov r8, r1
+ str r1, [sp]
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl sub_81DB620
+ ldrb r0, [r7, 0x8]
+ lsls r1, r6, 4
+ movs r2, 0x1
+ orrs r1, r2
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x7
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl PrintTextOnWindow
+ ldrh r0, [r7, 0x8]
+ ldrb r1, [r7, 0x4]
+ str r1, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ movs r1, 0x2
+ movs r2, 0
+ adds r3, r4, 0
+ bl CopyWindowRectToVram
+_081C8EC0:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C8E54
+
+ thumb_func_start sub_81C8ED0
+sub_81C8ED0: @ 81C8ED0
+ push {r4,r5,lr}
+ movs r5, 0
+ ldr r4, =gUnknown_0861FBFC
+_081C8ED6:
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ adds r4, 0x8
+ adds r5, 0x1
+ cmp r5, 0
+ beq _081C8ED6
+ ldr r0, =gUnknown_0861FC04
+ bl sub_81C795C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C8ED0
+
+ thumb_func_start sub_81C8EF8
+sub_81C8EF8: @ 81C8EF8
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r0, =gUnknown_0861FC1C
+ ldrb r1, [r5, 0x2]
+ lsls r1, 3
+ adds r1, 0x3
+ ldrb r2, [r5, 0x3]
+ adds r2, 0x1
+ lsls r2, 3
+ movs r3, 0x7
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, =gSprites
+ mov r8, r1
+ add r0, r8
+ str r0, [r5, 0x3C]
+ ldrb r6, [r5, 0x2]
+ lsls r6, 3
+ ldrb r0, [r5, 0x4]
+ subs r0, 0x1
+ lsls r0, 2
+ ldr r3, =gUnknown_0861FC3C
+ mov r10, r3
+ adds r6, r0
+ ldrb r2, [r5, 0x3]
+ lsls r2, 3
+ ldrh r0, [r4, 0x8]
+ lsls r0, 4
+ adds r2, r0
+ lsls r2, 16
+ asrs r2, 16
+ mov r0, r10
+ adds r1, r6, 0
+ movs r3, 0x7
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ add r2, r8
+ str r2, [r5, 0x44]
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x2
+ ldr r0, =0x000003ff
+ mov r9, r0
+ mov r0, r9
+ ands r1, r0
+ ldr r4, =0xfffffc00
+ adds r0, r4, 0
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+ ldr r1, [r5, 0x44]
+ ldr r0, =sub_81C90A0
+ str r0, [r1, 0x1C]
+ ldrb r2, [r5, 0x3]
+ lsls r2, 3
+ mov r0, r10
+ adds r1, r6, 0
+ movs r3, 0x7
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ add r1, r8
+ str r1, [r5, 0x40]
+ ldrh r2, [r1, 0x4]
+ lsls r0, r2, 22
+ lsrs r0, 22
+ adds r0, 0x4
+ mov r3, r9
+ ands r0, r3
+ ands r4, r2
+ orrs r4, r0
+ strh r4, [r1, 0x4]
+ ldr r1, [r5, 0x40]
+ ldr r0, =sub_81C90F4
+ str r0, [r1, 0x1C]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C8EF8
+
+ thumb_func_start sub_81C8FE0
+sub_81C8FE0: @ 81C8FE0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, [r4, 0x3C]
+ bl DestroySprite
+ ldr r0, [r4, 0x40]
+ bl DestroySprite
+ ldr r0, [r4, 0x44]
+ bl DestroySprite
+ movs r0, 0xA
+ bl FreeSpriteTilesByTag
+ movs r0, 0x14
+ bl FreeSpritePaletteByTag
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C8FE0
+
+ thumb_func_start sub_81C9008
+sub_81C9008: @ 81C9008
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ cmp r4, 0
+ beq _081C9028
+ ldr r2, [r5, 0x3C]
+ ldr r1, =SpriteCallbackDummy
+ str r1, [r2, 0x1C]
+ ldr r0, [r5, 0x40]
+ str r1, [r0, 0x1C]
+ ldr r0, [r5, 0x44]
+ str r1, [r0, 0x1C]
+ b _081C903A
+ .pool
+_081C9028:
+ ldr r2, [r5, 0x3C]
+ ldr r0, =sub_81C9080
+ str r0, [r2, 0x1C]
+ ldr r1, [r5, 0x40]
+ ldr r0, =sub_81C90F4
+ str r0, [r1, 0x1C]
+ ldr r1, [r5, 0x44]
+ ldr r0, =sub_81C90A0
+ str r0, [r1, 0x1C]
+_081C903A:
+ adds r3, r2, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r4, r0
+ lsls r4, 2
+ ldrb r2, [r3]
+ movs r1, 0x5
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ orrs r0, r4
+ strb r0, [r3]
+ ldr r2, [r5, 0x40]
+ adds r2, 0x3E
+ ldrb r3, [r2]
+ adds r0, r1, 0
+ ands r0, r3
+ orrs r0, r4
+ strb r0, [r2]
+ ldr r0, [r5, 0x44]
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ ands r1, r2
+ orrs r1, r4
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C9008
+
+ thumb_func_start sub_81C9080
+sub_81C9080: @ 81C9080
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x11
+ bl sub_81C763C
+ ldr r1, =0x0000088e
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 4
+ strh r0, [r4, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C9080
+
+ thumb_func_start sub_81C90A0
+sub_81C90A0: @ 81C90A0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081C90C2
+ bl sub_81C84C0
+ cmp r0, 0
+ beq _081C90C2
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ b _081C90CC
+_081C90C2:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+_081C90CC:
+ strb r0, [r2]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _081C90EC
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ movs r1, 0x7
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x26]
+_081C90EC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C90A0
+
+ thumb_func_start sub_81C90F4
+sub_81C90F4: @ 81C90F4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081C9116
+ bl sub_81C84A4
+ cmp r0, 0
+ beq _081C9116
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ b _081C9120
+_081C9116:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+_081C9120:
+ strb r0, [r2]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _081C9142
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ movs r1, 0x7
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+_081C9142:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C90F4
+
+ thumb_func_start sub_81C9148
+sub_81C9148: @ 81C9148
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x11
+ bl sub_81C763C
+ ldr r1, [r0, 0x40]
+ strh r4, [r1, 0x3C]
+ ldr r0, [r0, 0x44]
+ strh r4, [r0, 0x3C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C9148
+
+ thumb_func_start sub_81C9160
+sub_81C9160: @ 81C9160
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ ldr r0, [r1]
+ str r0, [r2, 0x10]
+ ldrh r4, [r1, 0x6]
+ movs r5, 0
+ strh r4, [r2]
+ ldrh r3, [r1, 0x4]
+ strh r3, [r2, 0x2]
+ ldrb r0, [r1, 0x8]
+ str r0, [r2, 0xC]
+ ldrb r1, [r1, 0xC]
+ strh r1, [r2, 0x8]
+ lsls r0, r3, 16
+ lsrs r0, 16
+ cmp r1, r0
+ bcc _081C918A
+ strh r5, [r2]
+ strh r5, [r2, 0x4]
+ strh r4, [r2, 0x6]
+ b _081C91A6
+_081C918A:
+ subs r0, r3, r1
+ strh r0, [r2, 0x4]
+ ldrh r1, [r2]
+ ldrh r0, [r2, 0x8]
+ adds r1, r0
+ ldrh r0, [r2, 0x2]
+ cmp r1, r0
+ ble _081C91A4
+ subs r0, r1, r0
+ strh r0, [r2, 0x6]
+ subs r0, r4, r0
+ strh r0, [r2]
+ b _081C91A6
+_081C91A4:
+ strh r5, [r2, 0x6]
+_081C91A6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C9160
+
+ thumb_func_start sub_81C91AC
+sub_81C91AC: @ 81C91AC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ adds r7, r0, 0
+ ldr r4, [r1]
+ lsls r4, 30
+ lsrs r0, r4, 30
+ movs r1, 0
+ mov r9, r1
+ strb r0, [r7]
+ strh r3, [r7, 0x6]
+ ldr r0, [r2, 0x10]
+ str r0, [r7, 0x34]
+ ldr r0, [r2, 0x14]
+ str r0, [r7, 0x38]
+ ldrb r6, [r2, 0xD]
+ strb r6, [r7, 0x1]
+ ldrb r1, [r2, 0x9]
+ strb r1, [r7, 0x2]
+ ldrb r0, [r2, 0xB]
+ strb r0, [r7, 0x3]
+ ldrb r5, [r2, 0xA]
+ strb r5, [r7, 0x4]
+ ldrb r0, [r2, 0xE]
+ strb r0, [r7, 0x5]
+ lsrs r4, 30
+ ldr r2, =0xffffff00
+ mov r8, r2
+ ldr r0, [sp]
+ ands r0, r2
+ orrs r0, r4
+ lsls r1, 24
+ lsrs r1, 16
+ ldr r2, =0xffff00ff
+ ands r0, r2
+ orrs r0, r1
+ ldr r1, =0xff00ffff
+ ands r0, r1
+ lsls r5, 24
+ ldr r1, =0x00ffffff
+ ands r0, r1
+ orrs r0, r5
+ str r0, [sp]
+ ldr r0, [sp, 0x4]
+ mov r1, r8
+ ands r0, r1
+ movs r1, 0x20
+ orrs r0, r1
+ lsls r6, 24
+ lsrs r6, 16
+ ands r0, r2
+ orrs r0, r6
+ adds r3, 0x2
+ lsls r3, 16
+ ldr r1, =0x0000ffff
+ ands r0, r1
+ orrs r0, r3
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl AddWindow
+ strh r0, [r7, 0x8]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xFF
+ beq _081C9258
+ mov r2, r9
+ strh r2, [r7, 0xA]
+ mov r0, r9
+ str r0, [r7, 0x3C]
+ str r0, [r7, 0x40]
+ str r0, [r7, 0x44]
+ movs r0, 0x1
+ b _081C925A
+ .pool
+_081C9258:
+ movs r0, 0
+_081C925A:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C91AC
+
+ thumb_func_start sub_81C9268
+sub_81C9268: @ 81C9268
+ push {r4,lr}
+ movs r4, 0
+ movs r0, 0x98
+ lsls r0, 1
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _081C928A
+ movs r4, 0x1
+ ldr r0, =0x0000089b
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _081C928A
+ movs r4, 0x2
+_081C928A:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81C9268
+
+ thumb_func_start sub_81C9298
+sub_81C9298: @ 81C9298
+ push {r4,lr}
+ movs r0, 0x1
+ movs r1, 0x10
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081C92C4
+ bl sub_81C9268
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ strh r0, [r4]
+ strh r1, [r4, 0x2]
+ strh r1, [r4, 0x4]
+ strh r1, [r4, 0x6]
+ adds r0, r4, 0
+ bl sub_81C939C
+ movs r0, 0x1
+ b _081C92C6
+_081C92C4:
+ movs r0, 0
+_081C92C6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C9298
+
+ thumb_func_start sub_81C92CC
+sub_81C92CC: @ 81C92CC
+ push {r4,lr}
+ movs r0, 0x1
+ movs r1, 0x10
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081C92FA
+ bl sub_81C9268
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ strh r0, [r4]
+ movs r0, 0x2
+ strh r0, [r4, 0x2]
+ strh r0, [r4, 0x4]
+ strh r1, [r4, 0x6]
+ adds r0, r4, 0
+ bl sub_81C939C
+ movs r0, 0x1
+ b _081C92FC
+_081C92FA:
+ movs r0, 0
+_081C92FC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C92CC
+
+ thumb_func_start sub_81C9304
+sub_81C9304: @ 81C9304
+ push {r4,lr}
+ movs r0, 0x1
+ movs r1, 0x10
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081C932E
+ bl sub_81C9268
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ movs r0, 0x3
+ strh r0, [r4, 0x2]
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ bl sub_81C939C
+ movs r0, 0x1
+ b _081C9330
+_081C932E:
+ movs r0, 0
+_081C9330:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C9304
+
+ thumb_func_start sub_81C9338
+sub_81C9338: @ 81C9338
+ push {lr}
+ movs r0, 0x1
+ movs r1, 0x10
+ bl sub_81C761C
+ adds r2, r0, 0
+ cmp r2, 0
+ beq _081C9360
+ movs r0, 0
+ movs r1, 0x3
+ strh r1, [r2]
+ strh r0, [r2, 0x2]
+ movs r1, 0x5
+ strh r1, [r2, 0x4]
+ strh r0, [r2, 0x6]
+ adds r0, r2, 0
+ bl sub_81C939C
+ movs r0, 0x1
+ b _081C9362
+_081C9360:
+ movs r0, 0
+_081C9362:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C9338
+
+ thumb_func_start sub_81C9368
+sub_81C9368: @ 81C9368
+ push {r4,r5,lr}
+ movs r0, 0x1
+ movs r1, 0x10
+ bl sub_81C761C
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _081C9394
+ movs r4, 0
+ movs r0, 0x4
+ strh r0, [r5]
+ bl sub_81C76AC
+ strh r0, [r5, 0x2]
+ adds r0, 0x8
+ strh r0, [r5, 0x4]
+ strh r4, [r5, 0x6]
+ adds r0, r5, 0
+ bl sub_81C939C
+ movs r0, 0x1
+ b _081C9396
+_081C9394:
+ movs r0, 0
+_081C9396:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C9368
+
+ thumb_func_start sub_81C939C
+sub_81C939C: @ 81C939C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4]
+ cmp r0, 0x4
+ bhi _081C93E0
+ lsls r0, 2
+ ldr r1, =_081C93B4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081C93B4:
+ .4byte _081C93C8
+ .4byte _081C93CE
+ .4byte _081C93CE
+ .4byte _081C93D4
+ .4byte _081C93DC
+_081C93C8:
+ movs r0, 0
+ bl sub_81C7688
+_081C93CE:
+ bl sub_81C93EC
+ b _081C93DE
+_081C93D4:
+ ldr r0, =sub_81C963C
+ b _081C93DE
+ .pool
+_081C93DC:
+ ldr r0, =sub_81C96FC
+_081C93DE:
+ str r0, [r4, 0xC]
+_081C93E0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C939C
+
+ thumb_func_start sub_81C93EC
+sub_81C93EC: @ 81C93EC
+ push {lr}
+ bl sub_81C767C
+ cmp r0, 0x1
+ beq _081C9408
+ cmp r0, 0x1
+ bcc _081C93FE
+ cmp r0, 0x2
+ beq _081C9410
+_081C93FE:
+ ldr r0, =sub_81C943C
+ b _081C9412
+ .pool
+_081C9408:
+ ldr r0, =sub_81C9520
+ b _081C9412
+ .pool
+_081C9410:
+ ldr r0, =c2_pre_battle_1
+_081C9412:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81C93EC
+
+ thumb_func_start sub_81C941C
+sub_81C941C: @ 81C941C
+ push {lr}
+ movs r0, 0x1
+ bl sub_81C763C
+ ldr r1, [r0, 0xC]
+ bl _call_via_r1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C941C
+
+ thumb_func_start sub_81C9430
+sub_81C9430: @ 81C9430
+ push {lr}
+ movs r0, 0x1
+ bl sub_81C7650
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C9430
+
+ thumb_func_start sub_81C943C
+sub_81C943C: @ 81C943C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_81C9814
+ cmp r0, 0
+ beq _081C944C
+ movs r0, 0x1
+ b _081C951A
+_081C944C:
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ adds r5, r2, 0
+ cmp r0, 0
+ beq _081C9508
+ ldr r3, =gUnknown_0861FC59
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ ldrh r2, [r4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 1
+ adds r1, r0
+ adds r1, r3
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bhi _081C9508
+ lsls r0, 2
+ ldr r1, =_081C9488
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081C9488:
+ .4byte _081C949C
+ .4byte _081C94BC
+ .4byte _081C94D4
+ .4byte _081C94E0
+ .4byte _081C9516
+_081C949C:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x15]
+ movs r0, 0x8
+ ands r0, r1
+ movs r1, 0x1
+ cmp r0, 0
+ beq _081C94AE
+ movs r1, 0x2
+_081C94AE:
+ strh r1, [r4, 0x6]
+ ldr r1, =0x000186a6
+ b _081C94EE
+ .pool
+_081C94BC:
+ movs r1, 0
+ movs r0, 0x3
+ strh r0, [r4]
+ strh r1, [r4, 0x2]
+ ldrb r0, [r3, 0x12]
+ strh r0, [r4, 0x4]
+ ldr r0, =sub_81C963C
+ str r0, [r4, 0xC]
+ movs r0, 0x2
+ b _081C951A
+ .pool
+_081C94D4:
+ movs r0, 0x6
+ strh r0, [r4, 0x6]
+ ldr r1, =0x000186ab
+ b _081C94EE
+ .pool
+_081C94E0:
+ bl sub_81C76B8
+ cmp r0, 0
+ beq _081C94FC
+ movs r0, 0x9
+ strh r0, [r4, 0x6]
+ ldr r1, =0x000186ac
+_081C94EE:
+ adds r0, r4, 0
+ bl sub_81C97B0
+ movs r0, 0x8
+ b _081C951A
+ .pool
+_081C94FC:
+ ldr r0, =sub_81C9600
+ str r0, [r4, 0xC]
+ movs r0, 0x6
+ b _081C951A
+ .pool
+_081C9508:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _081C9516
+ movs r0, 0
+ b _081C951A
+_081C9516:
+ movs r0, 0x1
+ negs r0, r0
+_081C951A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C943C
+
+ thumb_func_start sub_81C9520
+sub_81C9520: @ 81C9520
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_81C9814
+ cmp r0, 0
+ beq _081C9530
+ movs r0, 0x1
+ b _081C9580
+_081C9530:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081C9570
+ ldr r3, =gUnknown_0861FC59
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ ldrh r2, [r4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 1
+ adds r1, r0
+ adds r1, r3
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bne _081C9578
+ movs r0, 0x6
+ strh r0, [r4, 0x6]
+ ldr r1, =0x000186ab
+ adds r0, r4, 0
+ bl sub_81C97B0
+ movs r0, 0x8
+ b _081C9580
+ .pool
+_081C9570:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081C957E
+_081C9578:
+ movs r0, 0x20
+ bl PlaySE
+_081C957E:
+ movs r0, 0
+_081C9580:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C9520
+
+ thumb_func_start c2_pre_battle_1
+c2_pre_battle_1: @ 81C9588
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_81C9814
+ cmp r0, 0
+ beq _081C9598
+ movs r0, 0x1
+ b _081C95F8
+_081C9598:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081C95E8
+ ldr r3, =gUnknown_0861FC59
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ ldrh r2, [r4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 1
+ adds r1, r0
+ adds r1, r3
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ beq _081C95D4
+ cmp r0, 0x4
+ beq _081C95F4
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0
+ b _081C95F8
+ .pool
+_081C95D4:
+ movs r0, 0x6
+ strh r0, [r4, 0x6]
+ ldr r1, =0x000186ab
+ adds r0, r4, 0
+ bl sub_81C97B0
+ movs r0, 0x8
+ b _081C95F8
+ .pool
+_081C95E8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _081C95F4
+ movs r0, 0
+ b _081C95F8
+_081C95F4:
+ movs r0, 0x1
+ negs r0, r0
+_081C95F8:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end c2_pre_battle_1
+
+ thumb_func_start sub_81C9600
+sub_81C9600: @ 81C9600
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_81C9814
+ cmp r0, 0
+ beq _081C9616
+ bl sub_81C93EC
+ str r0, [r4, 0xC]
+ movs r0, 0x1
+ b _081C9634
+_081C9616:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _081C962C
+ movs r0, 0
+ b _081C9634
+ .pool
+_081C962C:
+ bl sub_81C93EC
+ str r0, [r4, 0xC]
+ movs r0, 0x7
+_081C9634:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C9600
+
+ thumb_func_start sub_81C963C
+sub_81C963C: @ 81C963C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ bl sub_81C9814
+ adds r3, r0, 0
+ cmp r3, 0
+ beq _081C964E
+ movs r0, 0x1
+ b _081C96F6
+_081C964E:
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ adds r6, r2, 0
+ cmp r0, 0
+ beq _081C96B8
+ ldr r5, =gUnknown_0861FC59
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ ldrh r2, [r4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ beq _081C968E
+ cmp r0, 0x6
+ bgt _081C9688
+ cmp r0, 0x5
+ beq _081C96A4
+ b _081C96B8
+ .pool
+_081C9688:
+ cmp r0, 0x7
+ beq _081C96E4
+ b _081C96B8
+_081C968E:
+ movs r0, 0x4
+ strh r0, [r4]
+ strh r3, [r4, 0x2]
+ ldrb r0, [r5, 0x18]
+ strh r0, [r4, 0x4]
+ ldr r0, =sub_81C96FC
+ str r0, [r4, 0xC]
+ movs r0, 0x4
+ b _081C96F6
+ .pool
+_081C96A4:
+ strh r3, [r4, 0x6]
+ ldr r1, =0x000186a7
+ adds r0, r4, 0
+ bl sub_81C97B0
+ movs r0, 0x8
+ b _081C96F6
+ .pool
+_081C96B8:
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081C96F4
+ movs r0, 0x2
+ ldrsh r2, [r4, r0]
+ ldr r1, =gUnknown_0861FC54
+ ldrh r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r2, r0
+ beq _081C96E4
+ strh r0, [r4, 0x2]
+ ldr r0, =sub_81C9798
+ str r0, [r4, 0xC]
+ movs r0, 0x1
+ b _081C96F6
+ .pool
+_081C96E4:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_81C97C0
+ movs r0, 0x3
+ b _081C96F6
+_081C96F4:
+ movs r0, 0
+_081C96F6:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C963C
+
+ thumb_func_start sub_81C96FC
+sub_81C96FC: @ 81C96FC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_81C9814
+ cmp r0, 0
+ beq _081C970C
+ movs r0, 0x1
+ b _081C9792
+_081C970C:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081C9754
+ ldr r3, =gUnknown_0861FC59
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ ldrh r2, [r4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 1
+ adds r1, r0
+ adds r1, r3
+ ldrb r0, [r1]
+ cmp r0, 0xD
+ beq _081C9780
+ subs r0, 0x8
+ bl sub_81C7694
+ ldr r1, =0x000186a8
+ adds r0, r4, 0
+ bl sub_81C97B0
+ movs r0, 0x3
+ strh r0, [r4, 0x6]
+ movs r0, 0x8
+ b _081C9792
+ .pool
+_081C9754:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081C9790
+ movs r0, 0x2
+ ldrsh r2, [r4, r0]
+ ldr r1, =gUnknown_0861FC54
+ ldrh r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r2, r0
+ beq _081C9780
+ strh r0, [r4, 0x2]
+ ldr r0, =sub_81C97A4
+ str r0, [r4, 0xC]
+ movs r0, 0x1
+ b _081C9792
+ .pool
+_081C9780:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_81C97F8
+ movs r0, 0x5
+ b _081C9792
+_081C9790:
+ movs r0, 0
+_081C9792:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C96FC
+
+ thumb_func_start sub_81C9798
+sub_81C9798: @ 81C9798
+ push {lr}
+ bl sub_81C97C0
+ movs r0, 0x3
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C9798
+
+ thumb_func_start sub_81C97A4
+sub_81C97A4: @ 81C97A4
+ push {lr}
+ bl sub_81C97F8
+ movs r0, 0x5
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C97A4
+
+ thumb_func_start sub_81C97B0
+sub_81C97B0: @ 81C97B0
+ str r1, [r0, 0x8]
+ ldr r1, =sub_81C97BC
+ str r1, [r0, 0xC]
+ bx lr
+ .pool
+ thumb_func_end sub_81C97B0
+
+ thumb_func_start sub_81C97BC
+sub_81C97BC: @ 81C97BC
+ ldr r0, [r0, 0x8]
+ bx lr
+ thumb_func_end sub_81C97BC
+
+ thumb_func_start sub_81C97C0
+sub_81C97C0: @ 81C97C0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_81C9268
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ movs r0, 0x1
+ strh r0, [r4, 0x2]
+ ldr r2, =gUnknown_0861FC59
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ adds r0, 0x1
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r4, 0x4]
+ ldr r0, =sub_81C943C
+ str r0, [r4, 0xC]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C97C0
+
+ thumb_func_start sub_81C97F8
+sub_81C97F8: @ 81C97F8
+ movs r1, 0x3
+ strh r1, [r0]
+ movs r1, 0x1
+ strh r1, [r0, 0x2]
+ ldr r1, =gUnknown_0861FC59
+ ldrb r1, [r1, 0x13]
+ strh r1, [r0, 0x4]
+ ldr r1, =sub_81C963C
+ str r1, [r0, 0xC]
+ bx lr
+ .pool
+ thumb_func_end sub_81C97F8
+
+ thumb_func_start sub_81C9814
+sub_81C9814: @ 81C9814
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _081C9848
+ ldrh r0, [r4, 0x2]
+ subs r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ ldrh r3, [r4]
+ cmp r0, 0
+ bge _081C986A
+ ldr r0, =gUnknown_0861FC54
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ strh r0, [r4, 0x2]
+ b _081C986A
+ .pool
+_081C9848:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081C988C
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ movs r0, 0x2
+ ldrsh r2, [r4, r0]
+ ldr r0, =gUnknown_0861FC54
+ ldrh r1, [r4]
+ adds r0, r1, r0
+ adds r3, r1, 0
+ ldrb r0, [r0]
+ cmp r2, r0
+ ble _081C986A
+ strh r5, [r4, 0x2]
+_081C986A:
+ ldr r2, =gUnknown_0861FC59
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 1
+ adds r1, r0
+ adds r1, r2
+ ldrb r0, [r1]
+ strh r0, [r4, 0x4]
+ movs r0, 0x1
+ b _081C988E
+ .pool
+_081C988C:
+ movs r0, 0
+_081C988E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C9814
+
+ thumb_func_start sub_81C9894
+sub_81C9894: @ 81C9894
+ push {lr}
+ movs r0, 0x1
+ bl sub_81C763C
+ ldrh r0, [r0]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C9894
+
+ thumb_func_start sub_81C98A4
+sub_81C98A4: @ 81C98A4
+ push {lr}
+ movs r0, 0x1
+ bl sub_81C763C
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C98A4
+
+ thumb_func_start sub_81C98B4
+sub_81C98B4: @ 81C98B4
+ push {lr}
+ movs r0, 0x1
+ bl sub_81C763C
+ ldrh r0, [r0, 0x4]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C98B4
+
+ thumb_func_start sub_81C98C4
+sub_81C98C4: @ 81C98C4
+ push {lr}
+ movs r0, 0x1
+ bl sub_81C763C
+ ldrh r0, [r0, 0x6]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C98C4
+
+ thumb_func_start sub_81C98D4
+sub_81C98D4: @ 81C98D4
+ push {r4,lr}
+ movs r4, 0
+_081C98D8:
+ adds r0, r4, 0
+ bl sub_81CB0C8
+ ldr r1, =gMapHeader
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1, 0x14]
+ cmp r0, r1
+ bne _081C9914
+ adds r0, r4, 0
+ bl sub_81CAE08
+ cmp r0, 0
+ beq _081C9914
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x000009ca
+ adds r0, r1
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081C9914
+ movs r0, 0x1
+ b _081C991C
+ .pool
+_081C9914:
+ adds r4, 0x1
+ cmp r4, 0x4D
+ ble _081C98D8
+ movs r0, 0
+_081C991C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C98D4
+
+ thumb_func_start sub_81C9924
+sub_81C9924: @ 81C9924
+ push {lr}
+ bl sub_81C9958
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _081C9938
+ movs r0, 0
+ strb r0, [r1, 0xD]
+ movs r0, 0x1
+ b _081C993A
+_081C9938:
+ movs r0, 0
+_081C993A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C9924
+
+ thumb_func_start sub_81C9940
+sub_81C9940: @ 81C9940
+ push {lr}
+ bl sub_81C9958
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _081C9952
+ movs r0, 0x1
+ strb r0, [r1, 0xD]
+ b _081C9954
+_081C9952:
+ movs r0, 0
+_081C9954:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C9940
+
+ thumb_func_start sub_81C9958
+sub_81C9958: @ 81C9958
+ push {r4,lr}
+ ldr r1, =0x0000088c
+ movs r0, 0x2
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081C997A
+ movs r0, 0
+ strb r0, [r4, 0xC]
+ ldr r0, =sub_81C9A10
+ movs r1, 0x1
+ bl sub_81C7078
+ str r0, [r4, 0x4]
+ ldr r0, =sub_81C99FC
+ str r0, [r4]
+_081C997A:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81C9958
+
+ thumb_func_start sub_81C9990
+sub_81C9990: @ 81C9990
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x2
+ bl sub_81C763C
+ adds r5, r0, 0
+ ldr r0, =gUnknown_086201A0
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ movs r1, 0x1
+ bl sub_81C7078
+ str r0, [r5, 0x4]
+ ldr r0, =sub_81C99FC
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C9990
+
+ thumb_func_start sub_81C99C0
+sub_81C99C0: @ 81C99C0
+ push {lr}
+ movs r0, 0x2
+ bl sub_81C763C
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C99C0
+
+ thumb_func_start sub_81C99D4
+sub_81C99D4: @ 81C99D4
+ push {r4,lr}
+ movs r0, 0x2
+ bl sub_81C763C
+ adds r4, r0, 0
+ bl sub_81CA7F4
+ ldrb r0, [r4, 0x8]
+ bl RemoveWindow
+ bl sub_81C9FEC
+ bl sub_81CA994
+ movs r0, 0x2
+ bl sub_81C7650
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C99D4
+
+ thumb_func_start sub_81C99FC
+sub_81C99FC: @ 81C99FC
+ push {lr}
+ movs r0, 0x2
+ bl sub_81C763C
+ ldr r0, [r0, 0x4]
+ bl sub_81C70D8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C99FC
+
+ thumb_func_start sub_81C9A10
+sub_81C9A10: @ 81C9A10
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r0, 0x2
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x9
+ bls _081C9A24
+ b _081C9C60
+_081C9A24:
+ lsls r0, r4, 2
+ ldr r1, =_081C9A34
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081C9A34:
+ .4byte _081C9A5C
+ .4byte _081C9AEC
+ .4byte _081C9B30
+ .4byte _081C9B88
+ .4byte _081C9B9E
+ .4byte _081C9BA4
+ .4byte _081C9BB6
+ .4byte _081C9BC0
+ .4byte _081C9C0E
+ .4byte _081C9C4C
+_081C9A5C:
+ ldr r0, =gUnknown_08620194
+ movs r1, 0x3
+ bl sub_81C7B54
+ ldr r1, =gUnknown_08DC90E0
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ adds r1, r5, 0
+ adds r1, 0x8C
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ ldr r1, =gUnknown_08DC9130
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl CopyToBgTilemapBuffer
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ ldr r0, =gUnknown_08DC90C0
+ movs r1, 0x10
+ movs r2, 0x20
+ bl sub_81C7944
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+_081C9AD6:
+ movs r0, 0
+ b _081C9C62
+ .pool
+_081C9AEC:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _081C9AFA
+ b _081C9C5C
+_081C9AFA:
+ ldr r1, =gUnknown_0861FD6C
+ str r0, [sp]
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ ldr r1, =gUnknown_0861FFF4
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ ldr r0, =gUnknown_0861FD4C
+ movs r1, 0x20
+ movs r2, 0x20
+ bl sub_81C7944
+ b _081C9AD6
+ .pool
+_081C9B30:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _081C9B3E
+ b _081C9C5C
+_081C9B3E:
+ ldr r1, =gUnknown_0861FC98
+ str r0, [sp]
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ ldr r1, =gUnknown_0861FCAC
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ ldr r0, =gUnknown_0861FC78
+ movs r1, 0x30
+ movs r2, 0x20
+ bl sub_81C7944
+ bl sub_81C9894
+ cmp r0, 0x3
+ beq _081C9B76
+ bl sub_81C9894
+ cmp r0, 0x4
+ bne _081C9AD6
+_081C9B76:
+ bl sub_81CA850
+ b _081C9AD6
+ .pool
+_081C9B88:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ cmp r0, 0
+ bne _081C9C5C
+ bl sub_81CA6E0
+ bl sub_81CA7D4
+_081C9B9A:
+ movs r0, 0x1
+ b _081C9C62
+_081C9B9E:
+ bl sub_81C9FC4
+ b _081C9B9A
+_081C9BA4:
+ bl sub_81CA714
+ bl sub_81CA02C
+ bl sub_81CA640
+ bl sub_81CA0C8
+ b _081C9AD6
+_081C9BB6:
+ bl sub_81CA7C4
+ cmp r0, 0
+ bne _081C9C5C
+ b _081C9B9A
+_081C9BC0:
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ movs r0, 0x3
+ bl ShowBg
+ ldrb r0, [r5, 0xD]
+ cmp r0, 0
+ beq _081C9BE0
+ movs r0, 0x1
+ bl sub_81C7AC0
+ b _081C9BEC
+_081C9BE0:
+ movs r0, 0x6E
+ bl PlaySE
+ movs r0, 0x3
+ bl sub_81C7AC0
+_081C9BEC:
+ bl sub_81C9894
+ cmp r0, 0x3
+ beq _081C9BFE
+ cmp r0, 0x4
+ bne _081C9C06
+ movs r0, 0x7
+ bl sub_81C7DFC
+_081C9BFE:
+ movs r0, 0x1
+ bl sub_81C7DFC
+ b _081C9AD6
+_081C9C06:
+ movs r0, 0
+ bl sub_81C7DFC
+ b _081C9AD6
+_081C9C0E:
+ bl sub_81C7B34
+ cmp r0, 0
+ bne _081C9C5C
+ bl sub_81C9894
+ cmp r0, 0x3
+ beq _081C9C2C
+ cmp r0, 0x4
+ bne _081C9C38
+ movs r0, 0x7
+ movs r1, 0
+ movs r2, 0
+ bl sub_81C7FA0
+_081C9C2C:
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl sub_81C7FA0
+ b _081C9C42
+_081C9C38:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_81C7FA0
+_081C9C42:
+ bl sub_81CA20C
+ bl titlescreen_0
+ b _081C9B9A
+_081C9C4C:
+ bl sub_81CA324
+ cmp r0, 0
+ bne _081C9C5C
+ bl sub_81C8010
+ cmp r0, 0
+ beq _081C9C60
+_081C9C5C:
+ movs r0, 0x2
+ b _081C9C62
+_081C9C60:
+ movs r0, 0x4
+_081C9C62:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C9A10
+
+ thumb_func_start sub_81C9C6C
+sub_81C9C6C: @ 81C9C6C
+ push {lr}
+ cmp r0, 0
+ beq _081C9C78
+ cmp r0, 0x1
+ beq _081C9C8E
+ b _081C9CA2
+_081C9C78:
+ bl sub_81CAA3C
+ bl sub_81CA278
+ bl sub_81CA714
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ b _081C9CA4
+_081C9C8E:
+ bl sub_81CA324
+ cmp r0, 0
+ bne _081C9C9E
+ bl sub_81CA7C4
+ cmp r0, 0
+ beq _081C9CA2
+_081C9C9E:
+ movs r0, 0x2
+ b _081C9CA4
+_081C9CA2:
+ movs r0, 0x4
+_081C9CA4:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C9C6C
+
+ thumb_func_start sub_81C9CA8
+sub_81C9CA8: @ 81C9CA8
+ push {lr}
+ cmp r0, 0x1
+ beq _081C9CDC
+ cmp r0, 0x1
+ bgt _081C9CB8
+ cmp r0, 0
+ beq _081C9CC2
+ b _081C9D3C
+_081C9CB8:
+ cmp r0, 0x2
+ beq _081C9CFA
+ cmp r0, 0x3
+ beq _081C9D14
+ b _081C9D3C
+_081C9CC2:
+ bl sub_81CA9C8
+ bl sub_81CA2DC
+ movs r0, 0
+ movs r1, 0
+ bl sub_81C7FC4
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ b _081C9D3E
+_081C9CDC:
+ bl sub_81CA324
+ cmp r0, 0
+ bne _081C9D34
+ bl sub_81C8010
+ cmp r0, 0
+ bne _081C9D34
+ bl sub_81CA0C8
+ movs r0, 0x1
+ bl sub_81C7DFC
+ movs r0, 0
+ b _081C9D3E
+_081C9CFA:
+ bl sub_81CA20C
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl sub_81C7FA0
+ bl sub_81CA818
+ bl sub_81CA714
+ movs r0, 0
+ b _081C9D3E
+_081C9D14:
+ bl sub_81CA324
+ cmp r0, 0
+ bne _081C9D34
+ bl sub_81C8010
+ cmp r0, 0
+ bne _081C9D34
+ bl sub_81CA89C
+ cmp r0, 0
+ bne _081C9D34
+ bl sub_81CA7C4
+ cmp r0, 0
+ beq _081C9D38
+_081C9D34:
+ movs r0, 0x2
+ b _081C9D3E
+_081C9D38:
+ bl sub_81CA9D8
+_081C9D3C:
+ movs r0, 0x4
+_081C9D3E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C9CA8
+
+ thumb_func_start sub_81C9D44
+sub_81C9D44: @ 81C9D44
+ push {lr}
+ cmp r0, 0x1
+ beq _081C9D72
+ cmp r0, 0x1
+ bgt _081C9D54
+ cmp r0, 0
+ beq _081C9D5E
+ b _081C9DD2
+_081C9D54:
+ cmp r0, 0x2
+ beq _081C9D90
+ cmp r0, 0x3
+ beq _081C9DAA
+ b _081C9DD2
+_081C9D5E:
+ bl sub_81CA9C8
+ bl sub_81CA2DC
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_81C7FC4
+ movs r0, 0
+ b _081C9DD4
+_081C9D72:
+ bl sub_81CA324
+ cmp r0, 0
+ bne _081C9DCA
+ bl sub_81C8010
+ cmp r0, 0
+ bne _081C9DCA
+ bl sub_81CA0C8
+ movs r0, 0
+ bl sub_81C7DFC
+ movs r0, 0
+ b _081C9DD4
+_081C9D90:
+ bl sub_81CA20C
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_81C7FA0
+ bl sub_81CA864
+ bl sub_81CA714
+ movs r0, 0
+ b _081C9DD4
+_081C9DAA:
+ bl sub_81CA324
+ cmp r0, 0
+ bne _081C9DCA
+ bl sub_81C8010
+ cmp r0, 0
+ bne _081C9DCA
+ bl sub_81CA89C
+ cmp r0, 0
+ bne _081C9DCA
+ bl sub_81CA7C4
+ cmp r0, 0
+ beq _081C9DCE
+_081C9DCA:
+ movs r0, 0x2
+ b _081C9DD4
+_081C9DCE:
+ bl sub_81CA9D8
+_081C9DD2:
+ movs r0, 0x4
+_081C9DD4:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C9D44
+
+ thumb_func_start sub_81C9DD8
+sub_81C9DD8: @ 81C9DD8
+ push {lr}
+ cmp r0, 0x1
+ beq _081C9E04
+ cmp r0, 0x1
+ bgt _081C9DE8
+ cmp r0, 0
+ beq _081C9DF2
+ b _081C9E50
+_081C9DE8:
+ cmp r0, 0x2
+ beq _081C9E1A
+ cmp r0, 0x3
+ beq _081C9E30
+ b _081C9E50
+_081C9DF2:
+ bl sub_81CA9C8
+ bl sub_81CA2DC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ b _081C9E52
+_081C9E04:
+ bl sub_81CA324
+ cmp r0, 0
+ bne _081C9E48
+ movs r0, 0x7
+ bl sub_81C7DFC
+ bl sub_81CA0C8
+ movs r0, 0
+ b _081C9E52
+_081C9E1A:
+ bl sub_81CA20C
+ movs r0, 0x7
+ movs r1, 0
+ movs r2, 0
+ bl sub_81C7FA0
+ bl sub_81CA714
+ movs r0, 0
+ b _081C9E52
+_081C9E30:
+ bl sub_81CA324
+ cmp r0, 0
+ bne _081C9E48
+ bl sub_81C8010
+ cmp r0, 0
+ bne _081C9E48
+ bl sub_81CA89C
+ cmp r0, 0
+ beq _081C9E4C
+_081C9E48:
+ movs r0, 0x2
+ b _081C9E52
+_081C9E4C:
+ bl sub_81CA9D8
+_081C9E50:
+ movs r0, 0x4
+_081C9E52:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C9DD8
+
+ thumb_func_start sub_81C9E58
+sub_81C9E58: @ 81C9E58
+ push {lr}
+ cmp r0, 0x1
+ beq _081C9E86
+ cmp r0, 0x1
+ bgt _081C9E68
+ cmp r0, 0
+ beq _081C9E72
+ b _081C9EC2
+_081C9E68:
+ cmp r0, 0x2
+ beq _081C9E9E
+ cmp r0, 0x3
+ beq _081C9EAA
+ b _081C9EC2
+_081C9E72:
+ bl sub_81CA9C8
+ bl sub_81CA2DC
+ movs r0, 0x7
+ movs r1, 0
+ bl sub_81C7FC4
+ movs r0, 0
+ b _081C9EC4
+_081C9E86:
+ bl sub_81CA324
+ cmp r0, 0
+ bne _081C9EBA
+ bl sub_81C8010
+ cmp r0, 0
+ bne _081C9EBA
+ bl sub_81CA0C8
+ movs r0, 0
+ b _081C9EC4
+_081C9E9E:
+ bl sub_81CA20C
+ bl sub_81CA714
+ movs r0, 0
+ b _081C9EC4
+_081C9EAA:
+ bl sub_81CA324
+ cmp r0, 0
+ bne _081C9EBA
+ bl sub_81CA89C
+ cmp r0, 0
+ beq _081C9EBE
+_081C9EBA:
+ movs r0, 0x2
+ b _081C9EC4
+_081C9EBE:
+ bl sub_81CA9D8
+_081C9EC2:
+ movs r0, 0x4
+_081C9EC4:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C9E58
+
+ thumb_func_start sub_81C9EC8
+sub_81C9EC8: @ 81C9EC8
+ push {lr}
+ cmp r0, 0
+ beq _081C9ED4
+ cmp r0, 0x1
+ beq _081C9EE2
+ b _081C9EF0
+_081C9ED4:
+ movs r0, 0x20
+ bl PlaySE
+ bl sub_81CA770
+ movs r0, 0
+ b _081C9EF2
+_081C9EE2:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081C9EF0
+ movs r0, 0x2
+ b _081C9EF2
+_081C9EF0:
+ movs r0, 0x4
+_081C9EF2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C9EC8
+
+ thumb_func_start sub_81C9EF8
+sub_81C9EF8: @ 81C9EF8
+ push {lr}
+ cmp r0, 0
+ beq _081C9F04
+ cmp r0, 0x1
+ beq _081C9F12
+ b _081C9F20
+_081C9F04:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_81CA714
+ movs r0, 0
+ b _081C9F22
+_081C9F12:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081C9F20
+ movs r0, 0x2
+ b _081C9F22
+_081C9F20:
+ movs r0, 0x4
+_081C9F22:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C9EF8
+
+ thumb_func_start sub_81C9F28
+sub_81C9F28: @ 81C9F28
+ push {lr}
+ cmp r0, 0x1
+ beq _081C9F52
+ cmp r0, 0x1
+ bgt _081C9F38
+ cmp r0, 0
+ beq _081C9F42
+ b _081C9FBC
+_081C9F38:
+ cmp r0, 0x2
+ beq _081C9F96
+ cmp r0, 0x3
+ beq _081C9FB0
+ b _081C9FBC
+_081C9F42:
+ bl sub_81C98C4
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_81C7BA4
+ movs r0, 0
+ b _081C9FBE
+_081C9F52:
+ bl sub_81C7BE8
+ cmp r0, 0
+ bne _081C9FB8
+ bl sub_81C7880
+ bl sub_81CA9C8
+ bl sub_81CA2DC
+ bl sub_81C9894
+ cmp r0, 0x3
+ beq _081C9F7A
+ cmp r0, 0x4
+ bne _081C9F84
+ movs r0, 0x7
+ movs r1, 0
+ bl sub_81C7FC4
+_081C9F7A:
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_81C7FC4
+ b _081C9F8C
+_081C9F84:
+ movs r0, 0
+ movs r1, 0
+ bl sub_81C7FC4
+_081C9F8C:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ b _081C9FBE
+_081C9F96:
+ bl sub_81CA324
+ cmp r0, 0
+ bne _081C9FB8
+ bl sub_81C8010
+ cmp r0, 0
+ bne _081C9FB8
+ movs r0, 0
+ bl sub_81C7AC0
+ movs r0, 0
+ b _081C9FBE
+_081C9FB0:
+ bl sub_81C7B34
+ cmp r0, 0
+ beq _081C9FBC
+_081C9FB8:
+ movs r0, 0x2
+ b _081C9FBE
+_081C9FBC:
+ movs r0, 0x4
+_081C9FBE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81C9F28
+
+ thumb_func_start sub_81C9FC4
+sub_81C9FC4: @ 81C9FC4
+ push {r4,r5,lr}
+ movs r5, 0
+ ldr r4, =gUnknown_086201C4
+_081C9FCA:
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ adds r4, 0x8
+ adds r5, 0x1
+ cmp r5, 0x1
+ bls _081C9FCA
+ ldr r0, =gUnknown_086201D4
+ bl sub_81C795C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81C9FC4
+
+ thumb_func_start sub_81C9FEC
+sub_81C9FEC: @ 81C9FEC
+ push {lr}
+ movs r0, 0x3
+ bl FreeSpriteTilesByTag
+ movs r0, 0x1
+ bl FreeSpriteTilesByTag
+ movs r0, 0x4
+ bl FreeSpritePaletteByTag
+ movs r0, 0x5
+ bl FreeSpritePaletteByTag
+ movs r0, 0x6
+ bl FreeSpritePaletteByTag
+ movs r0, 0x7
+ bl FreeSpritePaletteByTag
+ movs r0, 0x8
+ bl FreeSpritePaletteByTag
+ movs r0, 0x3
+ bl FreeSpritePaletteByTag
+ bl sub_81CA094
+ bl sub_81CA698
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81C9FEC
+
+ thumb_func_start sub_81CA02C
+sub_81CA02C: @ 81CA02C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0x2
+ bl sub_81C763C
+ movs r2, 0
+ adds r0, 0x2C
+ mov r8, r0
+_081CA03E:
+ movs r4, 0
+ lsls r0, r2, 2
+ lsls r1, r2, 4
+ adds r7, r2, 0x1
+ adds r0, r2
+ lsls r0, 18
+ movs r2, 0xA0
+ lsls r2, 14
+ adds r5, r0, r2
+ mov r0, r8
+ adds r6, r1, r0
+_081CA054:
+ ldr r0, =gUnknown_0862034C
+ movs r1, 0x8C
+ asrs r2, r5, 16
+ movs r3, 0x3
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =gSprites
+ adds r1, r0
+ stm r6!, {r1}
+ lsls r0, r4, 5
+ strh r0, [r1, 0x24]
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _081CA054
+ adds r2, r7, 0
+ cmp r2, 0x5
+ ble _081CA03E
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CA02C
+
+ thumb_func_start sub_81CA094
+sub_81CA094: @ 81CA094
+ push {r4-r7,lr}
+ movs r0, 0x2
+ bl sub_81C763C
+ movs r1, 0
+ adds r7, r0, 0
+ adds r7, 0x2C
+_081CA0A2:
+ lsls r0, r1, 4
+ adds r6, r1, 0x1
+ adds r4, r0, r7
+ movs r5, 0x3
+_081CA0AA:
+ ldr r0, [r4]
+ bl FreeSpriteOamMatrix
+ ldm r4!, {r0}
+ bl DestroySprite
+ subs r5, 0x1
+ cmp r5, 0
+ bge _081CA0AA
+ adds r1, r6, 0
+ cmp r1, 0x5
+ ble _081CA0A2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CA094
+
+ thumb_func_start sub_81CA0C8
+sub_81CA0C8: @ 81CA0C8
+ push {lr}
+ bl sub_81C9894
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 2
+ ldr r1, =gUnknown_08620244
+ adds r0, r2, r1
+ subs r1, 0x4
+ adds r2, r1
+ ldrh r1, [r2]
+ ldrh r2, [r2, 0x2]
+ bl sub_81CA0EC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CA0C8
+
+ thumb_func_start sub_81CA0EC
+sub_81CA0EC: @ 81CA0EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ adds r6, r0, 0
+ str r1, [sp, 0x14]
+ str r2, [sp]
+ movs r0, 0x2
+ bl sub_81C763C
+ mov r10, r0
+ movs r0, 0x3
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x4]
+ movs r1, 0
+_081CA114:
+ ldr r0, [r6]
+ cmp r0, 0
+ beq _081CA1B0
+ movs r5, 0
+ lsls r2, r1, 4
+ mov r0, r10
+ adds r0, 0x2C
+ lsls r3, r1, 2
+ mov r9, r3
+ movs r4, 0x10
+ add r4, r10
+ mov r8, r4
+ adds r7, r6, 0x4
+ str r7, [sp, 0xC]
+ ldr r3, [sp, 0x14]
+ ldr r4, [sp]
+ adds r3, r4
+ str r3, [sp, 0x8]
+ adds r1, 0x1
+ str r1, [sp, 0x10]
+ adds r4, r2, r0
+_081CA13E:
+ ldr r3, [r4]
+ ldr r0, [r6]
+ ldrh r2, [r0]
+ ldr r7, [sp, 0x4]
+ adds r2, r7
+ lsls r0, r5, 3
+ adds r2, r0
+ ldr r1, =0x000003ff
+ adds r0, r1, 0
+ ands r2, r0
+ ldrh r0, [r3, 0x4]
+ ldr r7, =0xfffffc00
+ adds r1, r7, 0
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r3, 0x4]
+ ldr r0, [r6]
+ ldrh r0, [r0, 0x2]
+ adds r0, 0x4
+ lsls r0, 16
+ lsrs r0, 16
+ bl IndexOfSpritePaletteTag
+ ldr r3, [r4]
+ lsls r0, 4
+ ldrb r2, [r3, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x5]
+ ldr r2, [r4]
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, [r4]
+ mov r1, sp
+ ldrh r1, [r1, 0x14]
+ strh r1, [r0, 0x22]
+ ldr r1, [r4]
+ movs r0, 0x8C
+ strh r0, [r1, 0x20]
+ ldm r4!, {r1}
+ lsls r0, r5, 5
+ strh r0, [r1, 0x24]
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _081CA13E
+ mov r1, r8
+ add r1, r9
+ movs r0, 0x1
+ b _081CA1EC
+ .pool
+_081CA1B0:
+ lsls r2, r1, 4
+ mov r0, r10
+ adds r0, 0x2C
+ lsls r3, r1, 2
+ mov r9, r3
+ movs r4, 0x10
+ add r4, r10
+ mov r8, r4
+ adds r6, 0x4
+ str r6, [sp, 0xC]
+ ldr r7, [sp, 0x14]
+ ldr r3, [sp]
+ adds r7, r3
+ str r7, [sp, 0x8]
+ adds r1, 0x1
+ str r1, [sp, 0x10]
+ movs r3, 0x4
+ adds r2, r0
+ movs r5, 0x3
+_081CA1D6:
+ ldm r2!, {r1}
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r3
+ strb r0, [r1]
+ subs r5, 0x1
+ cmp r5, 0
+ bge _081CA1D6
+ mov r1, r8
+ add r1, r9
+ movs r0, 0
+_081CA1EC:
+ str r0, [r1]
+ ldr r6, [sp, 0xC]
+ ldr r4, [sp, 0x8]
+ str r4, [sp, 0x14]
+ ldr r1, [sp, 0x10]
+ cmp r1, 0x5
+ ble _081CA114
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CA0EC
+
+ thumb_func_start sub_81CA20C
+sub_81CA20C: @ 81CA20C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0x2
+ bl sub_81C763C
+ adds r6, r0, 0
+ bl sub_81C98A4
+ mov r8, r0
+ movs r7, 0
+ movs r5, 0
+ adds r4, r6, 0
+ adds r4, 0x2C
+_081CA228:
+ lsls r0, r5, 2
+ adds r1, r6, 0
+ adds r1, 0x10
+ adds r1, r0
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _081CA25C
+ adds r0, r7, 0
+ adds r7, 0x1
+ cmp r0, r8
+ bne _081CA244
+ movs r2, 0x82
+ strb r5, [r6, 0xB]
+ b _081CA246
+_081CA244:
+ movs r2, 0x8C
+_081CA246:
+ adds r0, r4, 0
+ movs r1, 0x80
+ lsls r1, 1
+ movs r3, 0xC
+ bl sub_81CA35C
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_81CA448
+ b _081CA264
+_081CA25C:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81CA448
+_081CA264:
+ adds r4, 0x10
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081CA228
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CA20C
+
+ thumb_func_start sub_81CA278
+sub_81CA278: @ 81CA278
+ push {r4,r5,lr}
+ movs r0, 0x2
+ bl sub_81C763C
+ adds r4, r0, 0
+ bl sub_81C98A4
+ adds r3, r0, 0
+ movs r2, 0
+ movs r5, 0
+ ldr r0, [r4, 0x10]
+ cmp r0, 0
+ beq _081CA298
+ cmp r5, r3
+ beq _081CA2B2
+_081CA296:
+ adds r5, 0x1
+_081CA298:
+ adds r2, 0x1
+ cmp r2, 0x5
+ bgt _081CA2B2
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ adds r1, 0x10
+ adds r1, r0
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _081CA298
+ cmp r5, r3
+ bne _081CA296
+ adds r5, r2, 0
+_081CA2B2:
+ ldrb r0, [r4, 0xB]
+ lsls r0, 4
+ adds r0, 0x2C
+ adds r0, r4, r0
+ movs r1, 0x82
+ movs r2, 0x8C
+ movs r3, 0x4
+ bl sub_81CA35C
+ lsls r0, r5, 4
+ adds r0, 0x2C
+ adds r0, r4, r0
+ movs r1, 0x8C
+ movs r2, 0x82
+ movs r3, 0x4
+ bl sub_81CA35C
+ strb r5, [r4, 0xB]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CA278
+
+ thumb_func_start sub_81CA2DC
+sub_81CA2DC: @ 81CA2DC
+ push {r4-r6,lr}
+ movs r0, 0x2
+ bl sub_81C763C
+ adds r6, r0, 0
+ movs r5, 0
+ adds r4, r6, 0
+ adds r4, 0x2C
+_081CA2EC:
+ lsls r0, r5, 2
+ adds r1, r6, 0
+ adds r1, 0x10
+ adds r1, r0
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _081CA316
+ ldrb r0, [r6, 0xB]
+ cmp r0, r5
+ beq _081CA310
+ adds r0, r4, 0
+ movs r1, 0x8C
+ movs r2, 0x80
+ lsls r2, 1
+ movs r3, 0x8
+ bl sub_81CA35C
+ b _081CA316
+_081CA310:
+ adds r0, r4, 0
+ bl sub_81CA3B4
+_081CA316:
+ adds r4, 0x10
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081CA2EC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CA2DC
+
+ thumb_func_start sub_81CA324
+sub_81CA324: @ 81CA324
+ push {r4,lr}
+ movs r0, 0x2
+ bl sub_81C763C
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r4, =SpriteCallbackDummy
+ adds r1, r3, 0
+ adds r1, 0x2C
+_081CA336:
+ ldr r0, [r1]
+ ldr r0, [r0, 0x1C]
+ cmp r0, r4
+ bne _081CA354
+ adds r1, 0x10
+ adds r2, 0x1
+ cmp r2, 0x5
+ ble _081CA336
+ ldrb r0, [r3, 0xC]
+ cmp r0, 0
+ bne _081CA354
+ movs r0, 0
+ b _081CA356
+ .pool
+_081CA354:
+ movs r0, 0x1
+_081CA356:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CA324
+
+ thumb_func_start sub_81CA35C
+sub_81CA35C: @ 81CA35C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ mov r9, r2
+ adds r6, r3, 0
+ ldr r0, =sub_81CA474
+ mov r8, r0
+ subs r0, r2, r5
+ lsls r0, 4
+ adds r1, r6, 0
+ bl __divsi3
+ adds r3, r0, 0
+ movs r1, 0x3
+ lsls r2, r5, 4
+_081CA380:
+ ldr r0, [r4]
+ strh r5, [r0, 0x20]
+ ldr r0, [r4]
+ strh r6, [r0, 0x2E]
+ ldr r0, [r4]
+ strh r3, [r0, 0x30]
+ ldr r0, [r4]
+ strh r2, [r0, 0x32]
+ ldr r0, [r4]
+ mov r7, r9
+ strh r7, [r0, 0x3C]
+ ldm r4!, {r0}
+ mov r7, r8
+ str r7, [r0, 0x1C]
+ subs r1, 0x1
+ cmp r1, 0
+ bge _081CA380
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CA35C
+
+ thumb_func_start sub_81CA3B4
+sub_81CA3B4: @ 81CA3B4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ movs r0, 0x2
+ bl sub_81C763C
+ adds r7, r0, 0
+ movs r5, 0
+ mov r8, r5
+_081CA3C8:
+ ldr r2, [r4]
+ 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]
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldr r1, [r4]
+ ldr r0, =sub_81CA4AC
+ str r0, [r1, 0x1C]
+ movs r6, 0x8
+ strh r6, [r1, 0x2E]
+ ldr r0, [r4]
+ mov r1, r8
+ strh r1, [r0, 0x30]
+ ldr r0, [r4]
+ strh r5, [r0, 0x3C]
+ ldr r0, [r4]
+ bl InitSpriteAffineAnim
+ ldm r4!, {r0}
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _081CA3C8
+ movs r0, 0x52
+ movs r1, 0x10
+ bl SetGpuReg
+ ldr r0, =sub_81CA580
+ movs r1, 0x3
+ 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 r6, [r1, 0x8]
+ ldrb r0, [r7, 0xC]
+ adds r0, 0x1
+ strb r0, [r7, 0xC]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CA3B4
+
+ thumb_func_start sub_81CA448
+sub_81CA448: @ 81CA448
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r0, 0x1
+ ands r1, r0
+ lsls r4, r1, 2
+ movs r6, 0x5
+ negs r6, r6
+ movs r3, 0x3
+_081CA458:
+ ldm r5!, {r0}
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r4
+ strb r1, [r0]
+ subs r3, 0x1
+ cmp r3, 0
+ bge _081CA458
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CA448
+
+ thumb_func_start sub_81CA474
+sub_81CA474: @ 81CA474
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _081CA49A
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ b _081CA4A2
+_081CA49A:
+ ldrh r0, [r2, 0x3C]
+ strh r0, [r2, 0x20]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_081CA4A2:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CA474
+
+ thumb_func_start sub_81CA4AC
+sub_81CA4AC: @ 81CA4AC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _081CA574
+ movs r0, 0x30
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ bne _081CA4E2
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ strh r5, [r4, 0x24]
+ b _081CA578
+_081CA4E2:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x10
+ strh r0, [r4, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ asrs r1, r0, 3
+ adds r0, r1, 0
+ subs r0, 0x20
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r1, r0, 1
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ beq _081CA518
+ cmp r0, 0x1
+ bgt _081CA50A
+ cmp r0, 0
+ beq _081CA514
+ b _081CA526
+_081CA50A:
+ cmp r0, 0x2
+ beq _081CA51C
+ cmp r0, 0x3
+ beq _081CA520
+ b _081CA526
+_081CA514:
+ negs r1, r1
+ b _081CA520
+_081CA518:
+ negs r0, r1
+ b _081CA524
+_081CA51C:
+ strh r1, [r4, 0x24]
+ b _081CA526
+_081CA520:
+ lsls r0, r1, 1
+ adds r0, r1
+_081CA524:
+ strh r0, [r4, 0x24]
+_081CA526:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _081CA578
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4, 0x1]
+ lsrs r1, 6
+ ldrb r2, [r4, 0x3]
+ lsrs r2, 6
+ adds r0, r4, 0
+ movs r3, 0
+ bl CalcCenterToCornerVec
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0xD
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+ b _081CA578
+ .pool
+_081CA574:
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+_081CA578:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CA4AC
+
+ thumb_func_start sub_81CA580
+sub_81CA580: @ 81CA580
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ movs r1, 0
+ ldrsh r2, [r4, r1]
+ cmp r2, 0
+ bne _081CA634
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ beq _081CA5AC
+ cmp r1, 0x1
+ beq _081CA5CC
+ b _081CA638
+ .pool
+_081CA5AC:
+ movs r0, 0x10
+ strh r0, [r4, 0x4]
+ strh r2, [r4, 0x6]
+ movs r1, 0xFC
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0x10
+ bl SetGpuReg
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ b _081CA638
+_081CA5CC:
+ ldrh r0, [r4, 0x8]
+ ands r1, r0
+ cmp r1, 0
+ beq _081CA5E4
+ ldrh r0, [r4, 0x4]
+ subs r0, 0x3
+ strh r0, [r4, 0x4]
+ lsls r0, 16
+ cmp r0, 0
+ bge _081CA5F6
+ strh r2, [r4, 0x4]
+ b _081CA5F6
+_081CA5E4:
+ ldrh r0, [r4, 0x6]
+ adds r0, 0x3
+ strh r0, [r4, 0x6]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _081CA5F6
+ movs r0, 0x10
+ strh r0, [r4, 0x6]
+_081CA5F6:
+ ldrh r1, [r4, 0x6]
+ lsls r1, 8
+ ldrh r0, [r4, 0x4]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bne _081CA638
+ movs r0, 0x2
+ bl sub_81C763C
+ ldrb r1, [r0, 0xC]
+ subs r1, 0x1
+ strb r1, [r0, 0xC]
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ adds r0, r5, 0
+ bl DestroyTask
+ b _081CA638
+_081CA634:
+ subs r0, 0x1
+ strh r0, [r4]
+_081CA638:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CA580
+
+ thumb_func_start sub_81CA640
+sub_81CA640: @ 81CA640
+ push {r4,lr}
+ movs r0, 0x2
+ bl sub_81C763C
+ adds r4, r0, 0
+ ldr r0, =gUnknown_0862036C
+ movs r1, 0x10
+ movs r2, 0x60
+ movs r3, 0x4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =gSprites
+ adds r1, r0
+ str r1, [r4, 0x28]
+ bl sub_81C98D4
+ cmp r0, 0
+ beq _081CA684
+ ldr r1, [r4, 0x28]
+ ldr r0, =sub_81CA6AC
+ str r0, [r1, 0x1C]
+ b _081CA690
+ .pool
+_081CA684:
+ ldr r0, [r4, 0x28]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_081CA690:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CA640
+
+ thumb_func_start sub_81CA698
+sub_81CA698: @ 81CA698
+ push {lr}
+ movs r0, 0x2
+ bl sub_81C763C
+ ldr r0, [r0, 0x28]
+ bl DestroySprite
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CA698
+
+ thumb_func_start sub_81CA6AC
+sub_81CA6AC: @ 81CA6AC
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _081CA6DA
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_081CA6DA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CA6AC
+
+ thumb_func_start sub_81CA6E0
+sub_81CA6E0: @ 81CA6E0
+ push {r4,lr}
+ movs r0, 0x2
+ bl sub_81C763C
+ adds r4, r0, 0
+ ldr r0, =gUnknown_086202CC
+ bl AddWindow
+ strh r0, [r4, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ bl PutWindowTilemap
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x66
+ bl FillWindowPixelBuffer
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CA6E0
+
+ thumb_func_start sub_81CA714
+sub_81CA714: @ 81CA714
+ push {r4-r6,lr}
+ sub sp, 0xC
+ movs r0, 0x2
+ bl sub_81C763C
+ adds r5, r0, 0
+ bl sub_81C98B4
+ ldr r1, =gUnknown_086202D4
+ lsls r0, 2
+ adds r0, r1
+ ldr r6, [r0]
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x1
+ adds r1, r6, 0
+ bl GetStringWidth
+ adds r4, r0, 0
+ ldrb r0, [r5, 0x8]
+ movs r1, 0x66
+ bl FillWindowPixelBuffer
+ ldrb r0, [r5, 0x8]
+ movs r2, 0xC0
+ subs r2, r4
+ lsrs r2, 1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r1, =gUnknown_0862030C
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x1
+ bl box_print
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CA714
+
+ thumb_func_start sub_81CA770
+sub_81CA770: @ 81CA770
+ push {r4-r6,lr}
+ sub sp, 0xC
+ movs r0, 0x2
+ bl sub_81C763C
+ adds r5, r0, 0
+ ldr r6, =gUnknown_085EBD4A
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x1
+ adds r1, r6, 0
+ bl GetStringWidth
+ adds r4, r0, 0
+ ldrb r0, [r5, 0x8]
+ movs r1, 0x66
+ bl FillWindowPixelBuffer
+ ldrb r0, [r5, 0x8]
+ movs r2, 0xC0
+ subs r2, r4
+ lsrs r2, 1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r1, =gUnknown_0862030F
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x1
+ bl box_print
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CA770
+
+ thumb_func_start sub_81CA7C4
+sub_81CA7C4: @ 81CA7C4
+ push {lr}
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CA7C4
+
+ thumb_func_start sub_81CA7D4
+sub_81CA7D4: @ 81CA7D4
+ push {r4,lr}
+ movs r0, 0x2
+ bl sub_81C763C
+ adds r4, r0, 0
+ ldr r0, =sub_81CA808
+ movs r1, 0x2
+ bl CreateTask
+ strb r0, [r4, 0xA]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CA7D4
+
+ thumb_func_start sub_81CA7F4
+sub_81CA7F4: @ 81CA7F4
+ push {lr}
+ movs r0, 0x2
+ bl sub_81C763C
+ ldrb r0, [r0, 0xA]
+ bl DestroyTask
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CA7F4
+
+ thumb_func_start sub_81CA808
+sub_81CA808: @ 81CA808
+ push {lr}
+ movs r0, 0x3
+ movs r1, 0x80
+ movs r2, 0x1
+ bl ChangeBgX
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CA808
+
+ thumb_func_start sub_81CA818
+sub_81CA818: @ 81CA818
+ push {r4,r5,lr}
+ ldr r0, =sub_81CA8B0
+ movs r1, 0x3
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, =gUnknown_0861FC7A
+ adds r0, r4, 0
+ movs r1, 0x1
+ adds r2, r5, 0
+ bl SetWordTaskArg
+ adds r5, 0xC
+ adds r0, r4, 0
+ movs r1, 0x3
+ adds r2, r5, 0
+ bl SetWordTaskArg
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CA818
+
+ thumb_func_start sub_81CA850
+sub_81CA850: @ 81CA850
+ push {lr}
+ ldr r0, =gUnknown_0861FC86
+ movs r1, 0x31
+ movs r2, 0x4
+ bl sub_81C7944
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CA850
+
+ thumb_func_start sub_81CA864
+sub_81CA864: @ 81CA864
+ push {r4,r5,lr}
+ ldr r0, =sub_81CA8B0
+ movs r1, 0x3
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, =gUnknown_0861FC86
+ adds r0, r4, 0
+ movs r1, 0x1
+ adds r2, r5, 0
+ bl SetWordTaskArg
+ subs r5, 0xC
+ adds r0, r4, 0
+ movs r1, 0x3
+ adds r2, r5, 0
+ bl SetWordTaskArg
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CA864
+
+ thumb_func_start sub_81CA89C
+sub_81CA89C: @ 81CA89C
+ push {lr}
+ ldr r0, =sub_81CA8B0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CA89C
+
+ thumb_func_start sub_81CA8B0
+sub_81CA8B0: @ 81CA8B0
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r4, r6, 2
+ adds r4, r6
+ lsls r4, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r0
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetWordTaskArg
+ adds r5, r0, 0
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl GetWordTaskArg
+ adds r1, r0, 0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ lsls r0, 16
+ asrs r0, 16
+ str r0, [sp]
+ add r0, sp, 0x8
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r2, 0x2
+ movs r3, 0xC
+ bl sub_81C79BC
+ add r0, sp, 0x8
+ movs r1, 0x31
+ movs r2, 0x4
+ bl LoadPalette
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xC
+ bne _081CA908
+ adds r0, r6, 0
+ bl DestroyTask
+_081CA908:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CA8B0
+
+ thumb_func_start sub_81CA914
+sub_81CA914: @ 81CA914
+ push {lr}
+ bl TransferPlttBuffer
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl sub_80BA0A8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CA914
+
+ thumb_func_start titlescreen_0
+titlescreen_0: @ 81CA92C
+ push {lr}
+ movs r0, 0x50
+ movs r1, 0x90
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ bl SetGpuRegBits
+ movs r0, 0x48
+ movs r1, 0x3F
+ bl SetGpuRegBits
+ movs r0, 0x4A
+ movs r1, 0x1F
+ bl SetGpuRegBits
+ movs r0, 0x44
+ movs r1, 0xA0
+ bl SetGpuRegBits
+ bl remove_some_task
+ bl sub_81CAA3C
+ ldr r2, =gUnknown_08620384
+ ldr r0, [r2]
+ ldr r1, [r2, 0x4]
+ ldr r2, [r2, 0x8]
+ bl sub_80BA038
+ ldr r0, =sub_81CA914
+ bl c3args_set_0toR1_1to0
+ ldr r0, =sub_81CA9EC
+ movs r1, 0x3
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end titlescreen_0
+
+ thumb_func_start sub_81CA994
+sub_81CA994: @ 81CA994
+ push {lr}
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ bl ClearGpuRegBits
+ bl remove_some_task
+ ldr r0, =sub_81CA9EC
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ bl sub_81C760C
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CA994
+
+ thumb_func_start sub_81CA9C8
+sub_81CA9C8: @ 81CA9C8
+ push {lr}
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CA9C8
+
+ thumb_func_start sub_81CA9D8
+sub_81CA9D8: @ 81CA9D8
+ push {lr}
+ bl sub_81CAA3C
+ movs r0, 0x50
+ movs r1, 0x90
+ bl SetGpuReg
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CA9D8
+
+ thumb_func_start sub_81CA9EC
+sub_81CA9EC: @ 81CA9EC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ cmp r0, 0
+ ble _081CAA30
+ movs r0, 0
+ strh r0, [r2]
+ ldrh r0, [r2, 0x2]
+ adds r0, 0x3
+ movs r1, 0x7F
+ ands r0, r1
+ strh r0, [r2, 0x2]
+ ldr r1, =gSineTable
+ movs r3, 0x2
+ ldrsh r0, [r2, r3]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r1, 16
+ asrs r1, 21
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x54
+ bl SetGpuReg
+_081CAA30:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CA9EC
+
+ thumb_func_start sub_81CAA3C
+sub_81CAA3C: @ 81CAA3C
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x8
+ bl sub_81C9894
+ adds r4, r0, 0
+ bl sub_81C98A4
+ ldr r2, =gUnknown_08620240
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ adds r1, r2
+ ldrh r2, [r1, 0x2]
+ adds r4, r2, 0
+ muls r4, r0
+ ldrh r1, [r1]
+ adds r4, r1
+ subs r4, 0x8
+ mov r0, sp
+ movs r6, 0
+ strh r6, [r0]
+ ldr r5, =gUnknown_02038C28
+ ldr r0, =0x010000a0
+ mov r8, r0
+ mov r0, sp
+ adds r1, r5, 0
+ mov r2, r8
+ bl CpuSet
+ mov r0, sp
+ adds r0, 0x2
+ strh r6, [r0]
+ movs r1, 0xF0
+ lsls r1, 3
+ adds r1, r5
+ mov r9, r1
+ mov r2, r8
+ bl CpuSet
+ add r0, sp, 0x4
+ ldr r1, =0x000072f0
+ adds r6, r1, 0
+ strh r6, [r0]
+ lsls r4, 1
+ adds r5, r4, r5
+ ldr r1, =0x01000010
+ mov r8, r1
+ adds r1, r5, 0
+ mov r2, r8
+ bl CpuSet
+ mov r0, sp
+ adds r0, 0x6
+ strh r6, [r0]
+ add r4, r9
+ adds r1, r4, 0
+ mov r2, r8
+ bl CpuSet
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CAA3C
+
+ thumb_func_start sub_81CAADC
+sub_81CAADC: @ 81CAADC
+ push {lr}
+ bl sub_81CA9C8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CAADC
+
+ thumb_func_start sub_81CAAE8
+sub_81CAAE8: @ 81CAAE8
+ push {r4,lr}
+ movs r1, 0xD4
+ lsls r1, 1
+ movs r0, 0x5
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081CAB1C
+ ldr r0, =sub_81CAB44
+ str r0, [r4, 0x18]
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ str r0, [r4, 0x10]
+ ldr r0, =sub_81CAD20
+ movs r1, 0x1
+ bl sub_81C7078
+ str r0, [r4, 0x14]
+ movs r0, 0x1
+ b _081CAB1E
+ .pool
+_081CAB1C:
+ movs r0, 0
+_081CAB1E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CAAE8
+
+ thumb_func_start sub_81CAB24
+sub_81CAB24: @ 81CAB24
+ push {lr}
+ movs r0, 0x5
+ bl sub_81C763C
+ ldr r1, [r0, 0x18]
+ bl _call_via_r1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CAB24
+
+ thumb_func_start sub_81CAB38
+sub_81CAB38: @ 81CAB38
+ push {lr}
+ movs r0, 0x5
+ bl sub_81C7650
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CAB38
+
+ thumb_func_start sub_81CAB44
+sub_81CAB44: @ 81CAB44
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r3, =gMain
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081CAB5C
+ movs r0, 0x2
+ b _081CABF4
+ .pool
+_081CAB5C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081CAB68
+ movs r0, 0x1
+ b _081CABF4
+_081CAB68:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _081CAB74
+ movs r0, 0x4
+ b _081CABF4
+_081CAB74:
+ movs r0, 0x10
+ ands r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _081CAB84
+ movs r0, 0x3
+ b _081CABF4
+_081CAB84:
+ ldrh r1, [r3, 0x2E]
+ movs r5, 0x1
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _081CABD0
+ ldr r0, =sub_81CAC04
+ str r0, [r4, 0x18]
+ strh r2, [r4]
+ bl sub_81C875C
+ lsls r0, 2
+ adds r1, r4, r0
+ ldrb r0, [r1, 0x1C]
+ cmp r0, 0
+ beq _081CABAE
+ ldrh r0, [r1, 0x1E]
+ bl sub_81D17E8
+ cmp r0, 0
+ beq _081CABC0
+_081CABAE:
+ ldr r0, =gUnknown_0862250A
+ str r0, [r4, 0x4]
+ movs r0, 0x2
+ strh r0, [r4, 0x2]
+ b _081CABC6
+ .pool
+_081CABC0:
+ ldr r0, =gUnknown_08622508
+ str r0, [r4, 0x4]
+ strh r5, [r4, 0x2]
+_081CABC6:
+ movs r0, 0x5
+ b _081CABF4
+ .pool
+_081CABD0:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081CABF2
+ bl sub_81C767C
+ cmp r0, 0x1
+ beq _081CABEC
+ ldr r0, =sub_81CABFC
+ str r0, [r4, 0x18]
+ movs r0, 0xF
+ b _081CABF4
+ .pool
+_081CABEC:
+ movs r0, 0x20
+ bl PlaySE
+_081CABF2:
+ movs r0, 0
+_081CABF4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CAB44
+
+ thumb_func_start sub_81CABFC
+sub_81CABFC: @ 81CABFC
+ ldr r0, =0x000186a4
+ bx lr
+ .pool
+ thumb_func_end sub_81CABFC
+
+ thumb_func_start sub_81CAC04
+sub_81CAC04: @ 81CAC04
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081CAC24
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _081CAC24
+ subs r0, 0x1
+ b _081CAC38
+ .pool
+_081CAC24:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081CAC3E
+ ldrh r0, [r4]
+ ldrh r1, [r4, 0x2]
+ cmp r0, r1
+ bcs _081CAC3E
+ adds r0, 0x1
+_081CAC38:
+ strh r0, [r4]
+ movs r0, 0x6
+ b _081CACAC
+_081CAC3E:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081CAC98
+ ldrh r1, [r4]
+ ldr r0, [r4, 0x4]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _081CAC8C
+ cmp r0, 0x1
+ bgt _081CAC5E
+ cmp r0, 0
+ beq _081CAC64
+ b _081CAC98
+_081CAC5E:
+ cmp r0, 0x2
+ bne _081CAC98
+ b _081CACA6
+_081CAC64:
+ bl sub_81C767C
+ cmp r0, 0x1
+ bne _081CAC72
+ movs r0, 0x2
+ bl sub_81C7688
+_081CAC72:
+ ldr r0, =sub_81CACF8
+ str r0, [r4, 0x18]
+ bl sub_81CB1D0
+ cmp r0, 0
+ beq _081CAC88
+ movs r0, 0x9
+ b _081CACAC
+ .pool
+_081CAC88:
+ movs r0, 0x8
+ b _081CACAC
+_081CAC8C:
+ ldr r0, =sub_81CACB8
+ str r0, [r4, 0x18]
+ movs r0, 0xB
+ b _081CACAC
+ .pool
+_081CAC98:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _081CACA6
+ movs r0, 0
+ b _081CACAC
+_081CACA6:
+ ldr r0, =sub_81CAB44
+ str r0, [r4, 0x18]
+ movs r0, 0x7
+_081CACAC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CAC04
+
+ thumb_func_start sub_81CACB8
+sub_81CACB8: @ 81CACB8
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081CACD0
+ movs r0, 0xC
+ b _081CACF0
+ .pool
+_081CACD0:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081CACDC
+ movs r0, 0xD
+ b _081CACF0
+_081CACDC:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _081CACEA
+ movs r0, 0
+ b _081CACF0
+_081CACEA:
+ ldr r0, =sub_81CAB44
+ str r0, [r3, 0x18]
+ movs r0, 0xE
+_081CACF0:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CACB8
+
+ thumb_func_start sub_81CACF8
+sub_81CACF8: @ 81CACF8
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _081CAD10
+ movs r0, 0
+ b _081CAD16
+ .pool
+_081CAD10:
+ ldr r0, =sub_81CAB44
+ str r0, [r2, 0x18]
+ movs r0, 0xA
+_081CAD16:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CACF8
+
+ thumb_func_start sub_81CAD20
+sub_81CAD20: @ 81CAD20
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r0, 0x5
+ bl sub_81C763C
+ adds r4, r0, 0
+ cmp r5, 0x1
+ beq _081CAD4C
+ cmp r5, 0x1
+ bgt _081CAD3A
+ cmp r5, 0
+ beq _081CAD44
+ b _081CAE00
+_081CAD3A:
+ cmp r5, 0x2
+ beq _081CAD9C
+ cmp r5, 0x3
+ beq _081CADFC
+ b _081CAE00
+_081CAD44:
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xA]
+_081CAD48:
+ movs r0, 0x1
+ b _081CAE02
+_081CAD4C:
+ movs r6, 0
+ ldrh r5, [r4, 0x8]
+_081CAD50:
+ adds r0, r5, 0
+ bl sub_81D15F4
+ cmp r0, 0
+ beq _081CAD80
+ ldrh r0, [r4, 0xA]
+ lsls r0, 2
+ adds r0, r4, r0
+ strh r5, [r0, 0x1E]
+ ldrh r0, [r4, 0xA]
+ lsls r0, 2
+ adds r0, r4, r0
+ movs r1, 0x1
+ strb r1, [r0, 0x1C]
+ adds r0, r5, 0
+ bl sub_81D16DC
+ ldrh r1, [r4, 0xA]
+ lsls r1, 2
+ adds r1, r4, r1
+ strb r0, [r1, 0x1D]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+_081CAD80:
+ ldrh r0, [r4, 0x8]
+ adds r1, r0, 0x1
+ movs r2, 0
+ strh r1, [r4, 0x8]
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, 0x14
+ bhi _081CADF6
+ adds r6, 0x1
+ adds r5, 0x1
+ cmp r6, 0x1D
+ ble _081CAD50
+ movs r0, 0x3
+ b _081CAE02
+_081CAD9C:
+ movs r6, 0
+ ldrh r5, [r4, 0x8]
+ movs r7, 0
+_081CADA2:
+ ldrh r0, [r4, 0x8]
+ bl sub_81D1BF8
+ cmp r0, 0
+ bne _081CADDC
+ ldrh r0, [r4, 0x8]
+ bl sub_81CAE08
+ cmp r0, 0
+ beq _081CADDC
+ ldrh r0, [r4, 0xA]
+ lsls r0, 2
+ adds r0, r4, r0
+ ldrh r1, [r4, 0x8]
+ strh r1, [r0, 0x1E]
+ ldrh r0, [r4, 0xA]
+ lsls r0, 2
+ adds r0, r4, r0
+ strb r7, [r0, 0x1C]
+ adds r0, r5, 0
+ bl sub_81CB0C8
+ ldrh r1, [r4, 0xA]
+ lsls r1, 2
+ adds r1, r4, r1
+ strb r0, [r1, 0x1D]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+_081CADDC:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4D
+ bhi _081CAD48
+ adds r6, 0x1
+ adds r5, 0x1
+ cmp r6, 0x1D
+ ble _081CADA2
+ movs r0, 0x3
+ b _081CAE02
+_081CADF6:
+ strh r1, [r4, 0xC]
+ strh r2, [r4, 0x8]
+ b _081CAD48
+_081CADFC:
+ movs r0, 0x1
+ str r0, [r4, 0x10]
+_081CAE00:
+ movs r0, 0x4
+_081CAE02:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CAD20
+
+ thumb_func_start sub_81CAE08
+sub_81CAE08: @ 81CAE08
+ push {lr}
+ cmp r0, 0x4D
+ ble _081CAE12
+ movs r0, 0
+ b _081CAE24
+_081CAE12:
+ movs r1, 0xAE
+ lsls r1, 1
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+_081CAE24:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CAE08
+
+ thumb_func_start sub_81CAE28
+sub_81CAE28: @ 81CAE28
+ push {lr}
+ movs r0, 0x5
+ bl sub_81C763C
+ ldr r0, [r0, 0x10]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CAE28
+
+ thumb_func_start sub_81CAE38
+sub_81CAE38: @ 81CAE38
+ push {lr}
+ movs r0, 0x5
+ bl sub_81C763C
+ ldrh r0, [r0, 0xA]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CAE38
+
+ thumb_func_start sub_81CAE48
+sub_81CAE48: @ 81CAE48
+ push {lr}
+ movs r0, 0x5
+ bl sub_81C763C
+ ldrh r0, [r0, 0xC]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CAE48
+
+ thumb_func_start sub_81CAE58
+sub_81CAE58: @ 81CAE58
+ push {lr}
+ movs r0, 0x5
+ bl sub_81C763C
+ adds r1, r0, 0
+ ldrh r0, [r1, 0xA]
+ ldrh r1, [r1, 0xC]
+ subs r0, r1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CAE58
+
+ thumb_func_start sub_81CAE6C
+sub_81CAE6C: @ 81CAE6C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x5
+ bl sub_81C763C
+ adds r1, r0, 0
+ ldrh r0, [r1, 0xC]
+ adds r4, r0
+ ldrh r0, [r1, 0xA]
+ cmp r4, r0
+ bge _081CAE8A
+ lsls r0, r4, 2
+ adds r0, r1, r0
+ ldrh r0, [r0, 0x1E]
+ b _081CAE8C
+_081CAE8A:
+ movs r0, 0x4E
+_081CAE8C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CAE6C
+
+ thumb_func_start sub_81CAE94
+sub_81CAE94: @ 81CAE94
+ push {lr}
+ movs r0, 0x5
+ bl sub_81C763C
+ adds r0, 0x1C
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CAE94
+
+ thumb_func_start sub_81CAEA4
+sub_81CAEA4: @ 81CAEA4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x5
+ bl sub_81C763C
+ lsls r4, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x1D]
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CAEA4
+
+ thumb_func_start sub_81CAEBC
+sub_81CAEBC: @ 81CAEBC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x5
+ bl sub_81C763C
+ lsls r1, r4, 2
+ adds r1, r0, r1
+ ldrb r0, [r1, 0x1C]
+ cmp r0, 0
+ bne _081CAED4
+ ldrh r4, [r1, 0x1E]
+ b _081CAEDC
+_081CAED4:
+ ldrh r0, [r1, 0x1E]
+ bl sub_81D1854
+ adds r4, r0, 0
+_081CAEDC:
+ cmp r4, 0x4E
+ beq _081CAEFC
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x000009ca
+ adds r0, r1
+ adds r0, r4
+ ldrb r1, [r0]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ b _081CAEFE
+ .pool
+_081CAEFC:
+ movs r0, 0
+_081CAEFE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CAEBC
+
+ thumb_func_start sub_81CAF04
+sub_81CAF04: @ 81CAF04
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x5
+ bl sub_81C763C
+ lsls r1, r4, 2
+ adds r1, r0, r1
+ ldrb r0, [r1, 0x1C]
+ cmp r0, 0
+ bne _081CAF34
+ ldrh r0, [r1, 0x1E]
+ bl sub_81D15BC
+ adds r4, r0, 0
+ ldr r1, =gTrainers
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x3]
+ b _081CAF6C
+ .pool
+_081CAF34:
+ ldrh r5, [r1, 0x1E]
+ adds r0, r5, 0
+ bl sub_81D1854
+ adds r4, r0, 0
+ cmp r4, 0x4E
+ bne _081CAF58
+ adds r0, r5, 0
+ bl sub_81D1BD0
+ adds r4, r0, 0
+ ldr r0, =gUnknown_0831F578
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ b _081CAF6C
+ .pool
+_081CAF58:
+ adds r0, r4, 0
+ bl sub_81D15BC
+ adds r4, r0, 0
+ ldr r0, =gTrainers
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x3]
+_081CAF6C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CAF04
+
+ thumb_func_start sub_81CAF78
+sub_81CAF78: @ 81CAF78
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ movs r0, 0x5
+ bl sub_81C763C
+ adds r4, r0, 0
+ movs r0, 0
+ strb r0, [r6]
+ ldr r0, =gMapHeader
+ ldrb r0, [r0, 0x17]
+ bl is_light_level_1_2_3_or_6
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CAFA4
+ ldr r0, =gUnknown_085EEB0B
+ b _081CAFCE
+ .pool
+_081CAFA4:
+ lsls r0, r5, 2
+ adds r1, r4, r0
+ ldrb r0, [r1, 0x1C]
+ cmp r0, 0
+ bne _081CAFC4
+ ldrh r0, [r1, 0x1E]
+ bl sub_81D15BC
+ ldr r1, =gStringVar4
+ bl sub_81967AC
+ strb r0, [r6]
+ b _081CAFCC
+ .pool
+_081CAFC4:
+ ldrh r0, [r1, 0x1E]
+ ldr r1, =gStringVar4
+ bl sub_81D189C
+_081CAFCC:
+ ldr r0, =gStringVar4
+_081CAFCE:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CAF78
+
+ thumb_func_start sub_81CAFD8
+sub_81CAFD8: @ 81CAFD8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r0, 0x5
+ bl sub_81C763C
+ lsls r4, 2
+ adds r4, r0, r4
+ ldrb r0, [r4, 0x1C]
+ cmp r0, 0
+ beq _081CB004
+ ldrh r0, [r4, 0x1E]
+ bl sub_81D1854
+ adds r1, r0, 0
+ cmp r1, 0x4E
+ bne _081CB006
+ ldrh r0, [r4, 0x1E]
+ adds r1, r5, 0
+ bl sub_81D1B40
+ b _081CB012
+_081CB004:
+ ldrh r1, [r4, 0x1E]
+_081CB006:
+ ldr r2, =gUnknown_08622028
+ lsls r0, r5, 2
+ lsls r1, 4
+ adds r0, r1
+ adds r0, r2
+ ldr r0, [r0]
+_081CB012:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CAFD8
+
+ thumb_func_start sub_81CB01C
+sub_81CB01C: @ 81CB01C
+ push {lr}
+ movs r0, 0x5
+ bl sub_81C763C
+ ldrh r0, [r0]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB01C
+
+ thumb_func_start sub_81CB02C
+sub_81CB02C: @ 81CB02C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x5
+ bl sub_81C763C
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2]
+ cmp r0, r4
+ blt _081CB046
+ ldr r0, [r1, 0x4]
+ adds r0, r4
+ ldrb r0, [r0]
+ b _081CB048
+_081CB046:
+ movs r0, 0x3
+_081CB048:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB02C
+
+ thumb_func_start sub_81CB050
+sub_81CB050: @ 81CB050
+ push {r4,lr}
+ sub sp, 0x8
+ adds r2, r0, 0
+ adds r4, r1, 0
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _081CB088
+ ldrh r0, [r2, 0x2]
+ bl sub_81D15BC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTrainers
+ adds r1, r0
+ ldrb r2, [r1, 0x1]
+ movs r0, 0xD
+ muls r0, r2
+ ldr r2, =gTrainerClassNames
+ adds r0, r2
+ str r0, [sp]
+ adds r1, 0x4
+ str r1, [sp, 0x4]
+ b _081CB092
+ .pool
+_081CB088:
+ ldrh r0, [r2, 0x2]
+ add r2, sp, 0x4
+ mov r1, sp
+ bl sub_81D1A78
+_081CB092:
+ ldr r2, [sp]
+ cmp r2, 0
+ beq _081CB0B4
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ beq _081CB0B4
+ adds r0, r4, 0
+ movs r1, 0x7
+ movs r3, 0x45
+ bl sub_81DB494
+ ldr r2, [sp, 0x4]
+ movs r1, 0x7
+ movs r3, 0x33
+ bl sub_81DB494
+ b _081CB0C0
+_081CB0B4:
+ adds r0, r4, 0
+ movs r1, 0x7
+ movs r2, 0
+ movs r3, 0x78
+ bl sub_81DB494
+_081CB0C0:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CB050
+
+ thumb_func_start sub_81CB0C8
+sub_81CB0C8: @ 81CB0C8
+ push {lr}
+ ldr r1, =gUnknown_085500A4
+ lsls r0, 4
+ adds r0, r1
+ ldrh r2, [r0, 0xA]
+ ldrh r1, [r0, 0xC]
+ adds r0, r2, 0
+ bl get_mapheader_by_bank_and_number
+ ldrb r0, [r0, 0x14]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CB0C8
+
+ thumb_func_start sub_81CB0E4
+sub_81CB0E4: @ 81CB0E4
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r0, 0x5
+ bl sub_81C763C
+ adds r7, r0, 0
+ movs r6, 0x1
+ adds r5, 0x1
+ ldrh r0, [r7, 0xA]
+ cmp r5, r0
+ bge _081CB120
+ lsls r0, r5, 2
+ adds r0, 0x1C
+ adds r4, r0, r7
+_081CB100:
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _081CB110
+ ldrh r0, [r4, 0x2]
+ bl sub_81D17E8
+ cmp r0, 0
+ beq _081CB114
+_081CB110:
+ adds r0, r6, 0
+ b _081CB122
+_081CB114:
+ adds r6, 0x1
+ adds r4, 0x4
+ adds r5, 0x1
+ ldrh r0, [r7, 0xA]
+ cmp r5, r0
+ blt _081CB100
+_081CB120:
+ movs r0, 0
+_081CB122:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB0E4
+
+ thumb_func_start sub_81CB128
+sub_81CB128: @ 81CB128
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r0, 0x5
+ bl sub_81C763C
+ adds r1, r0, 0
+ movs r6, 0x1
+ negs r6, r6
+ subs r5, 0x1
+ cmp r5, 0
+ blt _081CB162
+ lsls r0, r5, 2
+ adds r0, 0x1C
+ adds r4, r0, r1
+_081CB144:
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _081CB154
+ ldrh r0, [r4, 0x2]
+ bl sub_81D17E8
+ cmp r0, 0
+ beq _081CB158
+_081CB154:
+ adds r0, r6, 0
+ b _081CB164
+_081CB158:
+ subs r6, 0x1
+ subs r4, 0x4
+ subs r5, 0x1
+ cmp r5, 0
+ bge _081CB144
+_081CB162:
+ movs r0, 0
+_081CB164:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB128
+
+ thumb_func_start sub_81CB16C
+sub_81CB16C: @ 81CB16C
+ push {r4,lr}
+ movs r4, 0
+_081CB170:
+ adds r0, r4, 0
+ bl sub_81CAE08
+ cmp r0, 0
+ beq _081CB18A
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x000009ca
+ adds r0, r1
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081CB1B2
+_081CB18A:
+ adds r4, 0x1
+ cmp r4, 0x4D
+ ble _081CB170
+ movs r4, 0
+_081CB192:
+ adds r0, r4, 0
+ bl sub_81D15F4
+ cmp r0, 0
+ beq _081CB1C0
+ adds r0, r4, 0
+ bl sub_81D1854
+ ldr r1, =gSaveBlock1Ptr
+ ldr r1, [r1]
+ ldr r2, =0x000009ca
+ adds r1, r2
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _081CB1C0
+_081CB1B2:
+ movs r0, 0x1
+ b _081CB1C8
+ .pool
+_081CB1C0:
+ adds r4, 0x1
+ cmp r4, 0x14
+ ble _081CB192
+ movs r0, 0
+_081CB1C8:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB16C
+
+ thumb_func_start sub_81CB1D0
+sub_81CB1D0: @ 81CB1D0
+ push {r4,lr}
+ movs r0, 0x5
+ bl sub_81C763C
+ adds r4, r0, 0
+ bl sub_81C875C
+ adds r1, r0, 0
+ lsls r0, r1, 2
+ adds r4, r0
+ ldrb r0, [r4, 0x1C]
+ cmp r0, 0
+ bne _081CB218
+ adds r0, r1, 0
+ bl sub_81CAEA4
+ ldr r1, =gMapHeader
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r1, 0x14]
+ cmp r0, r1
+ bne _081CB258
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x000009ca
+ adds r0, r1
+ ldrh r4, [r4, 0x1E]
+ adds r0, r4
+ ldrb r0, [r0]
+ b _081CB246
+ .pool
+_081CB218:
+ ldrh r0, [r4, 0x1E]
+ cmp r0, 0xB
+ bne _081CB258
+ adds r0, r1, 0
+ bl sub_81CAEA4
+ ldr r1, =gMapHeader
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r1, 0x14]
+ cmp r0, r1
+ bne _081CB258
+ ldr r0, =0x0000086b
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081CB258
+ movs r0, 0x5B
+ bl FlagGet
+ lsls r0, 24
+_081CB246:
+ cmp r0, 0
+ bne _081CB258
+ movs r0, 0x1
+ b _081CB25A
+ .pool
+_081CB258:
+ movs r0, 0
+_081CB25A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB1D0
+
+ thumb_func_start sub_81CB260
+sub_81CB260: @ 81CB260
+ push {r4,lr}
+ ldr r1, =0x00002048
+ movs r0, 0x6
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081CB294
+ movs r0, 0
+ strb r0, [r4, 0x19]
+ ldr r0, =sub_81CB324
+ movs r1, 0x1
+ bl sub_81C7078
+ str r0, [r4, 0x4]
+ ldr r0, =sub_81CB310
+ str r0, [r4]
+ movs r0, 0x1
+ b _081CB296
+ .pool
+_081CB294:
+ movs r0, 0
+_081CB296:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB260
+
+ thumb_func_start sub_81CB29C
+sub_81CB29C: @ 81CB29C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x6
+ bl sub_81C763C
+ adds r5, r0, 0
+ ldr r0, =gUnknown_08622798
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ movs r1, 0x1
+ bl sub_81C7078
+ str r0, [r5, 0x4]
+ ldr r0, =sub_81CB310
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CB29C
+
+ thumb_func_start sub_81CB2CC
+sub_81CB2CC: @ 81CB2CC
+ push {lr}
+ movs r0, 0x6
+ bl sub_81C763C
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB2CC
+
+ thumb_func_start sub_81CB2E0
+sub_81CB2E0: @ 81CB2E0
+ push {r4,lr}
+ movs r0, 0x6
+ bl sub_81C763C
+ adds r4, r0, 0
+ bl sub_81CC2B4
+ bl sub_81CBC1C
+ ldrb r0, [r4, 0x12]
+ bl RemoveWindow
+ ldrb r0, [r4, 0x10]
+ bl RemoveWindow
+ ldrb r0, [r4, 0x14]
+ bl RemoveWindow
+ movs r0, 0x6
+ bl sub_81C7650
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CB2E0
+
+ thumb_func_start sub_81CB310
+sub_81CB310: @ 81CB310
+ push {lr}
+ movs r0, 0x6
+ bl sub_81C763C
+ ldr r0, [r0, 0x4]
+ bl sub_81C70D8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB310
+
+ thumb_func_start sub_81CB324
+sub_81CB324: @ 81CB324
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ movs r0, 0x6
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x7
+ bls _081CB338
+ b _081CB504
+_081CB338:
+ lsls r0, r4, 2
+ ldr r1, =_081CB348
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081CB348:
+ .4byte _081CB368
+ .4byte _081CB3D4
+ .4byte _081CB424
+ .4byte _081CB468
+ .4byte _081CB482
+ .4byte _081CB494
+ .4byte _081CB4A6
+ .4byte _081CB4EA
+_081CB368:
+ ldr r0, =gUnknown_0862278C
+ movs r1, 0x3
+ bl sub_81C7B54
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ ldr r1, =gUnknown_08622530
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ ldr r0, =0x00001024
+ adds r1, r5, r0
+ movs r0, 0x2
+ bl SetBgTilemapBuffer
+ ldr r1, =gUnknown_086225D4
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl CopyToBgTilemapBuffer
+ movs r0, 0x2
+ bl CopyBgTilemapBufferToVram
+ ldr r0, =gUnknown_08622510
+ movs r1, 0x20
+ movs r2, 0x20
+ bl sub_81C7944
+ movs r0, 0x2
+ b _081CB418
+ .pool
+_081CB3D4:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ cmp r0, 0
+ beq _081CB3E0
+ b _081CB4FA
+_081CB3E0:
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_8199DF0
+ adds r1, r5, 0
+ adds r1, 0x24
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0x14
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ ldr r0, =gUnknown_086226E0
+ movs r1, 0x10
+ movs r2, 0x20
+ bl sub_81C7944
+ movs r0, 0x1
+_081CB418:
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0
+ b _081CB506
+ .pool
+_081CB424:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _081CB4FA
+ adds r0, r5, 0
+ bl sub_81CC034
+ ldr r1, =gUnknown_08622760
+ str r4, [sp]
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ ldr r0, =gUnknown_08622700
+ movs r1, 0x30
+ movs r2, 0x20
+ bl sub_81C7944
+ ldr r0, =gUnknown_08622720
+ movs r1, 0x50
+ movs r2, 0x20
+ bl sub_81C7944
+ movs r0, 0
+ b _081CB506
+ .pool
+_081CB468:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CB4FA
+ bl sub_81CAE28
+ cmp r0, 0
+ beq _081CB4FA
+ bl sub_81CBBB8
+ movs r0, 0
+ b _081CB506
+_081CB482:
+ bl sub_81C8224
+ cmp r0, 0
+ bne _081CB4FA
+ adds r0, r5, 0
+ bl sub_81CBD78
+ movs r0, 0
+ b _081CB506
+_081CB494:
+ adds r0, r5, 0
+ bl sub_81CBDC0
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_81CBEF8
+ movs r0, 0
+ b _081CB506
+_081CB4A6:
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x2
+ bl ShowBg
+ movs r0, 0x3
+ bl ShowBg
+ movs r0, 0x1
+ bl ShowBg
+ bl sub_81CC214
+ movs r0, 0x3
+ bl sub_81C7DFC
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_81C7FA0
+ movs r0, 0x1
+ bl sub_81C7AC0
+ movs r0, 0
+ b _081CB506
+_081CB4EA:
+ bl sub_81C7B34
+ cmp r0, 0
+ bne _081CB4FA
+ bl sub_81C8010
+ cmp r0, 0
+ beq _081CB4FE
+_081CB4FA:
+ movs r0, 0x2
+ b _081CB506
+_081CB4FE:
+ movs r0, 0x1
+ bl sub_81CBC38
+_081CB504:
+ movs r0, 0x4
+_081CB506:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB324
+
+ thumb_func_start sub_81CB510
+sub_81CB510: @ 81CB510
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x6
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081CB55E
+ cmp r4, 0x1
+ bgt _081CB52A
+ cmp r4, 0
+ beq _081CB534
+ b _081CB580
+_081CB52A:
+ cmp r4, 0x2
+ beq _081CB566
+ cmp r4, 0x3
+ beq _081CB572
+ b _081CB580
+_081CB534:
+ bl sub_81C868C
+ cmp r0, 0x1
+ beq _081CB54C
+ cmp r0, 0x1
+ bgt _081CB546
+ cmp r0, 0
+ beq _081CB580
+ b _081CB56E
+_081CB546:
+ cmp r0, 0x2
+ beq _081CB556
+ b _081CB56E
+_081CB54C:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x7
+ b _081CB582
+_081CB556:
+ movs r0, 0x5
+ bl PlaySE
+ b _081CB56E
+_081CB55E:
+ bl sub_81C8630
+ cmp r0, 0
+ bne _081CB57C
+_081CB566:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_81CBEF8
+_081CB56E:
+ movs r0, 0
+ b _081CB582
+_081CB572:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081CB580
+_081CB57C:
+ movs r0, 0x2
+ b _081CB582
+_081CB580:
+ movs r0, 0x4
+_081CB582:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB510
+
+ thumb_func_start sub_81CB588
+sub_81CB588: @ 81CB588
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x6
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081CB5D6
+ cmp r4, 0x1
+ bgt _081CB5A2
+ cmp r4, 0
+ beq _081CB5AC
+ b _081CB5F8
+_081CB5A2:
+ cmp r4, 0x2
+ beq _081CB5DE
+ cmp r4, 0x3
+ beq _081CB5EA
+ b _081CB5F8
+_081CB5AC:
+ bl sub_81C8658
+ cmp r0, 0x1
+ beq _081CB5C4
+ cmp r0, 0x1
+ bgt _081CB5BE
+ cmp r0, 0
+ beq _081CB5F8
+ b _081CB5E6
+_081CB5BE:
+ cmp r0, 0x2
+ beq _081CB5CE
+ b _081CB5E6
+_081CB5C4:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x7
+ b _081CB5FA
+_081CB5CE:
+ movs r0, 0x5
+ bl PlaySE
+ b _081CB5E6
+_081CB5D6:
+ bl sub_81C8630
+ cmp r0, 0
+ bne _081CB5F4
+_081CB5DE:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_81CBEF8
+_081CB5E6:
+ movs r0, 0
+ b _081CB5FA
+_081CB5EA:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081CB5F8
+_081CB5F4:
+ movs r0, 0x2
+ b _081CB5FA
+_081CB5F8:
+ movs r0, 0x4
+_081CB5FA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB588
+
+ thumb_func_start sub_81CB600
+sub_81CB600: @ 81CB600
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x6
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081CB64E
+ cmp r4, 0x1
+ bgt _081CB61A
+ cmp r4, 0
+ beq _081CB624
+ b _081CB670
+_081CB61A:
+ cmp r4, 0x2
+ beq _081CB656
+ cmp r4, 0x3
+ beq _081CB662
+ b _081CB670
+_081CB624:
+ bl sub_81C870C
+ cmp r0, 0x1
+ beq _081CB63C
+ cmp r0, 0x1
+ bgt _081CB636
+ cmp r0, 0
+ beq _081CB670
+ b _081CB65E
+_081CB636:
+ cmp r0, 0x2
+ beq _081CB646
+ b _081CB65E
+_081CB63C:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x7
+ b _081CB672
+_081CB646:
+ movs r0, 0x5
+ bl PlaySE
+ b _081CB65E
+_081CB64E:
+ bl sub_81C8630
+ cmp r0, 0
+ bne _081CB66C
+_081CB656:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_81CBEF8
+_081CB65E:
+ movs r0, 0
+ b _081CB672
+_081CB662:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081CB670
+_081CB66C:
+ movs r0, 0x2
+ b _081CB672
+_081CB670:
+ movs r0, 0x4
+_081CB672:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB600
+
+ thumb_func_start sub_81CB678
+sub_81CB678: @ 81CB678
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x6
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081CB6C6
+ cmp r4, 0x1
+ bgt _081CB692
+ cmp r4, 0
+ beq _081CB69C
+ b _081CB6E8
+_081CB692:
+ cmp r4, 0x2
+ beq _081CB6CE
+ cmp r4, 0x3
+ beq _081CB6DA
+ b _081CB6E8
+_081CB69C:
+ bl sub_81C86CC
+ cmp r0, 0x1
+ beq _081CB6B4
+ cmp r0, 0x1
+ bgt _081CB6AE
+ cmp r0, 0
+ beq _081CB6E8
+ b _081CB6D6
+_081CB6AE:
+ cmp r0, 0x2
+ beq _081CB6BE
+ b _081CB6D6
+_081CB6B4:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x7
+ b _081CB6EA
+_081CB6BE:
+ movs r0, 0x5
+ bl PlaySE
+ b _081CB6D6
+_081CB6C6:
+ bl sub_81C8630
+ cmp r0, 0
+ bne _081CB6E4
+_081CB6CE:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_81CBEF8
+_081CB6D6:
+ movs r0, 0
+ b _081CB6EA
+_081CB6DA:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081CB6E8
+_081CB6E4:
+ movs r0, 0x2
+ b _081CB6EA
+_081CB6E8:
+ movs r0, 0x4
+_081CB6EA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB678
+
+ thumb_func_start sub_81CB6F0
+sub_81CB6F0: @ 81CB6F0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x6
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0
+ beq _081CB706
+ cmp r4, 0x1
+ beq _081CB71C
+ b _081CB72A
+_081CB706:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_81CBF60
+ movs r0, 0x7
+ bl sub_81C7BA4
+ movs r0, 0
+ b _081CB72C
+_081CB71C:
+ adds r0, r5, 0
+ bl sub_81CBFC4
+ cmp r0, 0
+ beq _081CB72A
+ movs r0, 0x2
+ b _081CB72C
+_081CB72A:
+ movs r0, 0x4
+_081CB72C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB6F0
+
+ thumb_func_start sub_81CB734
+sub_81CB734: @ 81CB734
+ push {r4,lr}
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x6
+ bl sub_81C763C
+ adds r4, r0, 0
+ bl sub_81CB01C
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_81CC344
+ movs r0, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB734
+
+ thumb_func_start sub_81CB75C
+sub_81CB75C: @ 81CB75C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x6
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0
+ beq _081CB772
+ cmp r4, 0x1
+ beq _081CB788
+ b _081CB796
+_081CB772:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_81CBFF0
+ movs r0, 0x6
+ bl sub_81C7BA4
+ movs r0, 0
+ b _081CB798
+_081CB788:
+ adds r0, r5, 0
+ bl sub_81CC004
+ cmp r0, 0
+ beq _081CB796
+ movs r0, 0x2
+ b _081CB798
+_081CB796:
+ movs r0, 0x4
+_081CB798:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB75C
+
+ thumb_func_start sub_81CB7A0
+sub_81CB7A0: @ 81CB7A0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x6
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081CB7D4
+ cmp r4, 0x1
+ bgt _081CB7BA
+ cmp r4, 0
+ beq _081CB7C4
+ b _081CB81A
+_081CB7BA:
+ cmp r4, 0x2
+ beq _081CB7F8
+ cmp r4, 0x3
+ beq _081CB80C
+ b _081CB81A
+_081CB7C4:
+ movs r0, 0x1
+ bl sub_81C9148
+ adds r0, r5, 0
+ bl sub_81CC058
+ movs r0, 0
+ b _081CB81C
+_081CB7D4:
+ adds r0, r5, 0
+ bl sub_81CC0D0
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _081CB816
+ adds r0, r5, 0
+ bl sub_81CC0E0
+ ldr r0, =0x00000107
+ bl PlaySE
+ strb r4, [r5, 0xE]
+ movs r0, 0
+ b _081CB81C
+ .pool
+_081CB7F8:
+ adds r0, r5, 0
+ bl sub_81CC104
+ cmp r0, 0
+ bne _081CB816
+ adds r0, r5, 0
+ bl sub_81CC158
+ movs r0, 0
+ b _081CB81C
+_081CB80C:
+ adds r0, r5, 0
+ bl sub_81CC194
+ cmp r0, 0
+ beq _081CB81A
+_081CB816:
+ movs r0, 0x2
+ b _081CB81C
+_081CB81A:
+ movs r0, 0x4
+_081CB81C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB7A0
+
+ thumb_func_start sub_81CB824
+sub_81CB824: @ 81CB824
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x6
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081CB85E
+ cmp r4, 0x1
+ bgt _081CB83E
+ cmp r4, 0
+ beq _081CB844
+ b _081CB880
+_081CB83E:
+ cmp r4, 0x2
+ beq _081CB872
+ b _081CB880
+_081CB844:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_81CC09C
+ movs r0, 0x1
+ bl sub_81C9148
+ movs r0, 0x1
+ strb r0, [r5, 0xE]
+ movs r0, 0
+ b _081CB882
+_081CB85E:
+ adds r0, r5, 0
+ bl sub_81CC0D0
+ cmp r0, 0
+ bne _081CB87C
+ adds r0, r5, 0
+ bl sub_81CC11C
+ movs r0, 0
+ b _081CB882
+_081CB872:
+ adds r0, r5, 0
+ bl sub_81CC140
+ cmp r0, 0
+ beq _081CB880
+_081CB87C:
+ movs r0, 0x2
+ b _081CB882
+_081CB880:
+ movs r0, 0x4
+_081CB882:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB824
+
+ thumb_func_start sub_81CB888
+sub_81CB888: @ 81CB888
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r0, 0x6
+ bl sub_81C763C
+ adds r4, r0, 0
+ movs r6, 0
+ cmp r5, 0x6
+ bhi _081CB934
+ lsls r0, r5, 2
+ ldr r1, =_081CB8A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081CB8A8:
+ .4byte _081CB8C4
+ .4byte _081CB8DA
+ .4byte _081CB8E2
+ .4byte _081CB8F0
+ .4byte _081CB8F8
+ .4byte _081CB90C
+ .4byte _081CB922
+_081CB8C4:
+ ldrb r0, [r4, 0xE]
+ cmp r0, 0
+ bne _081CB8D2
+ movs r0, 0x84
+ lsls r0, 1
+ bl PlaySE
+_081CB8D2:
+ movs r0, 0x5
+ bl PlaySE
+ b _081CB934
+_081CB8DA:
+ adds r0, r4, 0
+ bl sub_81CC1DC
+ b _081CB934
+_081CB8E2:
+ adds r0, r4, 0
+ bl sub_81CC204
+ cmp r0, 0
+ beq _081CB934
+_081CB8EC:
+ movs r6, 0x2
+ b _081CB934
+_081CB8F0:
+ adds r0, r4, 0
+ bl sub_81CBFF0
+ b _081CB934
+_081CB8F8:
+ adds r0, r4, 0
+ bl sub_81CC004
+ cmp r0, 0
+ beq _081CB904
+ movs r6, 0x2
+_081CB904:
+ movs r0, 0x6
+ bl sub_81C7BA4
+ b _081CB934
+_081CB90C:
+ bl sub_81C7BE8
+ cmp r0, 0
+ bne _081CB8EC
+ ldrb r0, [r4, 0xF]
+ cmp r0, 0
+ beq _081CB92C
+ bl sub_81C8838
+ movs r6, 0x1
+ b _081CB934
+_081CB922:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CB8EC
+_081CB92C:
+ movs r0, 0
+ bl sub_81C9148
+ movs r6, 0x4
+_081CB934:
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB888
+
+ thumb_func_start sub_81CB93C
+sub_81CB93C: @ 81CB93C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x6
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081CB974
+ cmp r4, 0x1
+ bgt _081CB956
+ cmp r4, 0
+ beq _081CB960
+ b _081CB9BE
+_081CB956:
+ cmp r4, 0x2
+ beq _081CB990
+ cmp r4, 0x3
+ beq _081CB9A0
+ b _081CB9BE
+_081CB960:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_81C877C
+ adds r0, r5, 0
+ bl sub_81CC014
+ movs r0, 0
+ b _081CB9C0
+_081CB974:
+ bl sub_81C8820
+ cmp r0, 0
+ bne _081CB9BA
+ adds r0, r5, 0
+ bl sub_81CC004
+ cmp r0, 0
+ bne _081CB9BA
+ movs r0, 0x8
+ bl sub_81C7BA4
+ movs r0, 0
+ b _081CB9C0
+_081CB990:
+ movs r0, 0
+ bl sub_81C87AC
+ adds r0, r5, 0
+ bl sub_81CC39C
+ movs r0, 0
+ b _081CB9C0
+_081CB9A0:
+ bl sub_81C8820
+ cmp r0, 0
+ bne _081CB9BA
+ adds r0, r5, 0
+ bl sub_81CC42C
+ cmp r0, 0
+ bne _081CB9BA
+ bl sub_81C7BE8
+ cmp r0, 0
+ beq _081CB9BE
+_081CB9BA:
+ movs r0, 0x2
+ b _081CB9C0
+_081CB9BE:
+ movs r0, 0x4
+_081CB9C0:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB93C
+
+ thumb_func_start sub_81CB9C8
+sub_81CB9C8: @ 81CB9C8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r0, 0x6
+ bl sub_81C763C
+ adds r4, r0, 0
+ cmp r5, 0x4
+ bhi _081CBA60
+ lsls r0, r5, 2
+ ldr r1, =_081CB9E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081CB9E8:
+ .4byte _081CB9FC
+ .4byte _081CBA1C
+ .4byte _081CBA34
+ .4byte _081CBA40
+ .4byte _081CBA4A
+_081CB9FC:
+ bl sub_81C8770
+ bl sub_81CB0E4
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _081CBA60
+ movs r0, 0x5
+ bl PlaySE
+ strh r5, [r4, 0x16]
+ adds r0, r4, 0
+ bl sub_81CC420
+ movs r0, 0
+ b _081CBA62
+_081CBA1C:
+ adds r0, r4, 0
+ bl sub_81CC42C
+ cmp r0, 0
+ bne _081CBA5C
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ adds r0, r4, 0
+ bl sub_81CBEF8
+ movs r0, 0
+ b _081CBA62
+_081CBA34:
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ bl sub_81C87AC
+ movs r0, 0
+ b _081CBA62
+_081CBA40:
+ adds r0, r4, 0
+ bl sub_81CC39C
+ movs r0, 0
+ b _081CBA62
+_081CBA4A:
+ bl sub_81C8820
+ cmp r0, 0
+ bne _081CBA5C
+ adds r0, r4, 0
+ bl sub_81CC42C
+ cmp r0, 0
+ beq _081CBA60
+_081CBA5C:
+ movs r0, 0x2
+ b _081CBA62
+_081CBA60:
+ movs r0, 0x4
+_081CBA62:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CB9C8
+
+ thumb_func_start sub_81CBA68
+sub_81CBA68: @ 81CBA68
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x6
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081CBA9C
+ cmp r4, 0x1
+ bgt _081CBA82
+ cmp r4, 0
+ beq _081CBA88
+ b _081CBACC
+_081CBA82:
+ cmp r4, 0x2
+ beq _081CBABE
+ b _081CBACC
+_081CBA88:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_81CC420
+ bl sub_81C87F0
+ movs r0, 0
+ b _081CBACE
+_081CBA9C:
+ bl sub_81C8820
+ cmp r0, 0
+ bne _081CBAC8
+ adds r0, r5, 0
+ bl sub_81CC42C
+ cmp r0, 0
+ bne _081CBAC8
+ movs r0, 0x6
+ bl sub_81C7BA4
+ adds r0, r5, 0
+ bl sub_81CBDC0
+ movs r0, 0
+ b _081CBACE
+_081CBABE:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081CBACC
+_081CBAC8:
+ movs r0, 0x2
+ b _081CBACE
+_081CBACC:
+ movs r0, 0x4
+_081CBACE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CBA68
+
+ thumb_func_start sub_81CBAD4
+sub_81CBAD4: @ 81CBAD4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r0, 0x6
+ bl sub_81C763C
+ adds r4, r0, 0
+ cmp r5, 0x4
+ bhi _081CBB6C
+ lsls r0, r5, 2
+ ldr r1, =_081CBAF4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081CBAF4:
+ .4byte _081CBB08
+ .4byte _081CBB28
+ .4byte _081CBB40
+ .4byte _081CBB4C
+ .4byte _081CBB56
+_081CBB08:
+ bl sub_81C8770
+ bl sub_81CB128
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _081CBB6C
+ movs r0, 0x5
+ bl PlaySE
+ strh r5, [r4, 0x16]
+ adds r0, r4, 0
+ bl sub_81CC420
+ movs r0, 0
+ b _081CBB6E
+_081CBB28:
+ adds r0, r4, 0
+ bl sub_81CC42C
+ cmp r0, 0
+ bne _081CBB68
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ adds r0, r4, 0
+ bl sub_81CBEF8
+ movs r0, 0
+ b _081CBB6E
+_081CBB40:
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ bl sub_81C87AC
+ movs r0, 0
+ b _081CBB6E
+_081CBB4C:
+ adds r0, r4, 0
+ bl sub_81CC39C
+ movs r0, 0
+ b _081CBB6E
+_081CBB56:
+ bl sub_81C8820
+ cmp r0, 0
+ bne _081CBB68
+ adds r0, r4, 0
+ bl sub_81CC42C
+ cmp r0, 0
+ beq _081CBB6C
+_081CBB68:
+ movs r0, 0x2
+ b _081CBB6E
+_081CBB6C:
+ movs r0, 0x4
+_081CBB6E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CBAD4
+
+ thumb_func_start sub_81CBB74
+sub_81CBB74: @ 81CBB74
+ push {lr}
+ cmp r0, 0
+ beq _081CBB80
+ cmp r0, 0x1
+ beq _081CBB9A
+ b _081CBBB2
+_081CBB80:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_81CBC38
+ movs r0, 0
+ bl sub_81C7AC0
+ bl sub_81C78A0
+ movs r0, 0
+ b _081CBBB4
+_081CBB9A:
+ bl sub_81C7B34
+ cmp r0, 0
+ bne _081CBBAA
+ bl sub_81C78C0
+ cmp r0, 0
+ beq _081CBBAE
+_081CBBAA:
+ movs r0, 0x2
+ b _081CBBB4
+_081CBBAE:
+ bl sub_81C7FDC
+_081CBBB2:
+ movs r0, 0x4
+_081CBBB4:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CBB74
+
+ thumb_func_start sub_81CBBB8
+sub_81CBBB8: @ 81CBBB8
+ push {lr}
+ sub sp, 0x18
+ bl sub_81CAE94
+ str r0, [sp]
+ bl sub_81CAE38
+ mov r1, sp
+ movs r2, 0
+ strh r0, [r1, 0x4]
+ movs r0, 0x4
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strh r2, [r0, 0x6]
+ movs r0, 0xD
+ strb r0, [r1, 0x9]
+ movs r0, 0x10
+ strb r0, [r1, 0xA]
+ movs r0, 0x1
+ strb r0, [r1, 0xB]
+ movs r0, 0x8
+ strb r0, [r1, 0xC]
+ movs r0, 0x3
+ strb r0, [r1, 0xD]
+ movs r0, 0x7
+ strb r0, [r1, 0xE]
+ ldr r0, =sub_81CB050
+ str r0, [sp, 0x10]
+ ldr r0, =sub_81CBCEC
+ str r0, [sp, 0x14]
+ ldr r0, =gUnknown_08622794
+ movs r2, 0x2
+ bl sub_81C81D4
+ ldr r0, =sub_81CBC64
+ movs r1, 0x7
+ bl CreateTask
+ add sp, 0x18
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CBBB8
+
+ thumb_func_start sub_81CBC1C
+sub_81CBC1C: @ 81CBC1C
+ push {lr}
+ bl sub_81C8234
+ ldr r0, =sub_81CBC64
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CBC1C
+
+ thumb_func_start sub_81CBC38
+sub_81CBC38: @ 81CBC38
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =sub_81CBC64
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _081CBC56
+ ldr r1, =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0x26]
+_081CBC56:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CBC38
+
+ thumb_func_start sub_81CBC64
+sub_81CBC64: @ 81CBC64
+ push {r4,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r2, r1, r0
+ movs r1, 0x1E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _081CBCC8
+ ldrh r0, [r2]
+ adds r0, 0x4
+ movs r1, 0x7F
+ ands r0, r1
+ strh r0, [r2]
+ ldr r1, =gSineTable
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x2]
+ ldr r0, =gUnknown_08622720
+ adds r1, r0, 0
+ adds r1, 0x20
+ movs r3, 0x2
+ ldrsh r2, [r2, r3]
+ str r2, [sp]
+ ldr r4, =gPlttBufferUnfaded + 0xA0
+ str r4, [sp, 0x4]
+ movs r2, 0x10
+ movs r3, 0x10
+ bl sub_81C79BC
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081CBCC8
+ ldr r1, =gPlttBufferFaded + 0xA0
+ ldr r2, =0x04000008
+ adds r0, r4, 0
+ bl CpuSet
+_081CBCC8:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CBC64
+
+ thumb_func_start sub_81CBCEC
+sub_81CBCEC: @ 81CBCEC
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl GetWindowAttribute
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBgTilemapBuffer
+ adds r6, r0, 0
+ lsls r4, 7
+ adds r4, 0x3A
+ adds r6, r4
+ adds r0, r5, 0
+ bl sub_81CAEBC
+ cmp r0, 0
+ beq _081CBD30
+ movs r1, 0xA0
+ lsls r1, 7
+ adds r0, r1, 0
+ strh r0, [r6]
+ adds r1, r6, 0
+ adds r1, 0x40
+ ldr r2, =0x00005001
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _081CBD3C
+ .pool
+_081CBD30:
+ ldr r0, =0x00005002
+ adds r1, r0, 0
+ strh r1, [r6]
+ adds r0, r6, 0
+ adds r0, 0x40
+ strh r1, [r0]
+_081CBD3C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CBCEC
+
+ thumb_func_start sub_81CBD48
+sub_81CBD48: @ 81CBD48
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl GetWindowAttribute
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBgTilemapBuffer
+ lsls r4, 7
+ adds r4, 0x3A
+ adds r0, r4
+ ldr r2, =0x00005002
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x40
+ strh r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CBD48
+
+ thumb_func_start sub_81CBD78
+sub_81CBD78: @ 81CBD78
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gUnknown_086227D8
+ bl AddWindow
+ strh r0, [r4, 0x10]
+ ldr r0, =gUnknown_086227E0
+ bl AddWindow
+ strh r0, [r4, 0x12]
+ ldrb r0, [r4, 0x10]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldrb r0, [r4, 0x10]
+ bl PutWindowTilemap
+ ldrb r0, [r4, 0x12]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldrb r0, [r4, 0x12]
+ bl PutWindowTilemap
+ ldrb r0, [r4, 0x10]
+ movs r1, 0x1
+ bl CopyWindowToVram
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CBD78
+
+ thumb_func_start sub_81CBDC0
+sub_81CBDC0: @ 81CBDC0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x12]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldrh r0, [r4, 0x12]
+ bl sub_81CBDF4
+ ldrh r0, [r4, 0x12]
+ bl sub_81CBE0C
+ ldrh r0, [r4, 0x12]
+ bl sub_81CBE38
+ ldrh r0, [r4, 0x12]
+ bl sub_81CBE50
+ ldrb r0, [r4, 0x12]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CBDC0
+
+ thumb_func_start sub_81CBDF4
+sub_81CBDF4: @ 81CBDF4
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, =gUnknown_085EBE5F
+ movs r2, 0
+ bl sub_81CBE88
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CBDF4
+
+ thumb_func_start sub_81CBE0C
+sub_81CBE0C: @ 81CBE0C
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl sub_81CAE38
+ adds r1, r0, 0
+ mov r0, sp
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r0, r4, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_81CBEB4
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CBE0C
+
+ thumb_func_start sub_81CBE38
+sub_81CBE38: @ 81CBE38
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, =gUnknown_085EBE6E
+ movs r2, 0x2
+ bl sub_81CBE88
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CBE38
+
+ thumb_func_start sub_81CBE50
+sub_81CBE50: @ 81CBE50
+ push {r4,lr}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0x9
+ bl GetGameStat
+ adds r1, r0, 0
+ ldr r0, =0x0001869f
+ cmp r1, r0
+ ble _081CBE68
+ adds r1, r0, 0
+_081CBE68:
+ mov r0, sp
+ movs r2, 0
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ adds r0, r4, 0
+ mov r1, sp
+ movs r2, 0x3
+ bl sub_81CBEB4
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CBE50
+
+ thumb_func_start sub_81CBE88
+sub_81CBE88: @ 81CBE88
+ push {lr}
+ sub sp, 0xC
+ adds r3, r1, 0
+ lsls r2, 4
+ adds r2, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x7
+ adds r2, r3, 0
+ movs r3, 0x2
+ bl PrintTextOnWindow
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CBE88
+
+ thumb_func_start sub_81CBEB4
+sub_81CBEB4: @ 81CBEB4
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ adds r6, r1, 0
+ adds r4, r2, 0
+ lsls r5, 16
+ lsrs r5, 16
+ movs r0, 0x7
+ movs r2, 0x56
+ bl GetStringRightAlignXOffset
+ adds r3, r0, 0
+ lsls r4, 4
+ adds r4, 0x1
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ adds r0, r5, 0
+ movs r1, 0x7
+ adds r2, r6, 0
+ bl PrintTextOnWindow
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CBEB4
+
+ thumb_func_start sub_81CBEF8
+sub_81CBEF8: @ 81CBEF8
+ push {r4,r5,lr}
+ sub sp, 0x2C
+ adds r5, r0, 0
+ adds r4, r1, 0
+ bl sub_81C875C
+ adds r0, r4
+ bl sub_81CAEA4
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xD5
+ beq _081CBF1C
+ add r0, sp, 0xC
+ movs r2, 0
+ bl GetMapName
+ b _081CBF24
+_081CBF1C:
+ ldr r1, =gUnknown_085EC00F
+ add r0, sp, 0xC
+ bl StringCopy
+_081CBF24:
+ movs r0, 0x7
+ add r1, sp, 0xC
+ movs r2, 0x58
+ bl GetStringCenterAlignXOffset
+ adds r4, r0, 0
+ ldrb r0, [r5, 0x10]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldrb r0, [r5, 0x10]
+ lsls r4, 24
+ lsrs r4, 24
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x7
+ add r2, sp, 0xC
+ adds r3, r4, 0
+ bl PrintTextOnWindow
+ add sp, 0x2C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CBEF8
+
+ thumb_func_start sub_81CBF60
+sub_81CBF60: @ 81CBF60
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ ldrb r0, [r5, 0x12]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ movs r4, 0
+ movs r6, 0x80
+ lsls r6, 17
+ b _081CBF9C
+_081CBF76:
+ ldrb r0, [r5, 0x12]
+ ldr r2, =gUnknown_086227E8
+ lsls r1, 2
+ adds r1, r2
+ ldr r2, [r1]
+ lsrs r1, r6, 24
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x7
+ movs r3, 0x10
+ bl PrintTextOnWindow
+ movs r0, 0x80
+ lsls r0, 21
+ adds r6, r0
+ adds r4, 0x1
+_081CBF9C:
+ cmp r4, 0x2
+ bhi _081CBFAE
+ adds r0, r4, 0
+ bl sub_81CB02C
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3
+ bne _081CBF76
+_081CBFAE:
+ ldrb r0, [r5, 0x12]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CBF60
+
+ thumb_func_start sub_81CBFC4
+sub_81CBFC4: @ 81CBFC4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081CBFD6
+ movs r0, 0x1
+ b _081CBFE8
+_081CBFD6:
+ bl sub_81CB01C
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_81CC2F0
+ movs r0, 0
+_081CBFE8:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CBFC4
+
+ thumb_func_start sub_81CBFF0
+sub_81CBFF0: @ 81CBFF0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_81CC330
+ adds r0, r4, 0
+ bl sub_81CBDC0
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CBFF0
+
+ thumb_func_start sub_81CC004
+sub_81CC004: @ 81CC004
+ push {lr}
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CC004
+
+ thumb_func_start sub_81CC014
+sub_81CC014: @ 81CC014
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_81CC330
+ ldrb r0, [r4, 0x12]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldrb r0, [r4, 0x12]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CC014
+
+ thumb_func_start sub_81CC034
+sub_81CC034: @ 81CC034
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gUnknown_08622808
+ bl AddWindow
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0x14]
+ movs r1, 0x1
+ movs r2, 0x4
+ bl sub_8197184
+ bl sub_81C7B40
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CC034
+
+ thumb_func_start sub_81CC058
+sub_81CC058: @ 81CC058
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x14]
+ movs r1, 0x1
+ movs r2, 0x4
+ bl sub_8197184
+ ldrh r0, [r4, 0x14]
+ movs r1, 0x1
+ movs r2, 0x4
+ bl sub_81971C4
+ ldrb r0, [r4, 0x14]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldrb r0, [r4, 0x14]
+ bl PutWindowTilemap
+ ldrb r0, [r4, 0x14]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ bl sub_81C7CCC
+ movs r2, 0
+ movs r1, 0x18
+ strh r1, [r0, 0x20]
+ movs r1, 0x70
+ strh r1, [r0, 0x22]
+ strh r2, [r0, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CC058
+
+ thumb_func_start sub_81CC09C
+sub_81CC09C: @ 81CC09C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x14]
+ movs r1, 0x1
+ movs r2, 0x40
+ bl sub_809882C
+ ldrb r0, [r4, 0x14]
+ movs r1, 0x1
+ movs r2, 0x4
+ bl sub_8098858
+ ldrb r0, [r4, 0x14]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldrb r0, [r4, 0x14]
+ bl PutWindowTilemap
+ ldrb r0, [r4, 0x14]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CC09C
+
+ thumb_func_start sub_81CC0D0
+sub_81CC0D0: @ 81CC0D0
+ push {lr}
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CC0D0
+
+ thumb_func_start sub_81CC0E0
+sub_81CC0E0: @ 81CC0E0
+ push {lr}
+ sub sp, 0xC
+ ldrb r0, [r0, 0x14]
+ ldr r2, =gUnknown_086227F4
+ movs r1, 0x1
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x20
+ bl PrintTextOnWindow
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CC0E0
+
+ thumb_func_start sub_81CC104
+sub_81CC104: @ 81CC104
+ push {r4,lr}
+ adds r4, r0, 0
+ bl RunTextPrinters
+ ldrb r0, [r4, 0x14]
+ bl IsTextPrinterActive
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CC104
+
+ thumb_func_start sub_81CC11C
+sub_81CC11C: @ 81CC11C
+ push {lr}
+ sub sp, 0xC
+ ldrb r0, [r0, 0x14]
+ ldr r2, =gUnknown_085EBF95
+ movs r1, 0x1
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CC11C
+
+ thumb_func_start sub_81CC140
+sub_81CC140: @ 81CC140
+ push {r4,lr}
+ adds r4, r0, 0
+ bl RunTextPrinters
+ ldrb r0, [r4, 0x14]
+ bl IsTextPrinterActive
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CC140
+
+ thumb_func_start sub_81CC158
+sub_81CC158: @ 81CC158
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ bl sub_81C875C
+ adds r1, r4, 0
+ adds r1, 0xF
+ bl sub_81CAF78
+ adds r5, r0, 0
+ bl sav2_get_text_speed
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r2, [r4, 0x14]
+ movs r1, 0x1
+ str r1, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ adds r0, r2, 0
+ adds r2, r5, 0
+ movs r3, 0x20
+ bl PrintTextOnWindow
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CC158
+
+ thumb_func_start sub_81CC194
+sub_81CC194: @ 81CC194
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2C]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081CC1B8
+ ldr r0, =gTextFlags
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ b _081CC1C4
+ .pool
+_081CC1B8:
+ ldr r2, =gTextFlags
+ ldrb r1, [r2]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_081CC1C4:
+ bl RunTextPrinters
+ ldrb r0, [r4, 0x14]
+ bl IsTextPrinterActive
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CC194
+
+ thumb_func_start sub_81CC1DC
+sub_81CC1DC: @ 81CC1DC
+ push {lr}
+ sub sp, 0x8
+ bl sub_81C7CE4
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0x14
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CC1DC
+
+ thumb_func_start sub_81CC204
+sub_81CC204: @ 81CC204
+ push {lr}
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CC204
+
+ thumb_func_start sub_81CC214
+sub_81CC214: @ 81CC214
+ push {r4-r6,lr}
+ sub sp, 0x8
+ movs r0, 0x6
+ bl sub_81C763C
+ adds r6, r0, 0
+ movs r5, 0
+ ldr r4, =gUnknown_08622810
+_081CC224:
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ adds r4, 0x8
+ adds r5, 0x1
+ cmp r5, 0
+ beq _081CC224
+ ldr r0, =gUnknown_08622818
+ bl sub_81C795C
+ movs r0, 0
+ str r0, [r6, 0x1C]
+ ldr r1, =0x00001828
+ adds r0, r6, r1
+ str r0, [sp]
+ ldr r1, =0xffff0000
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 4
+ orrs r0, r1
+ ldr r1, =0x0000ffff
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ ldr r2, =0x00001824
+ adds r1, r6, r2
+ lsls r0, 16
+ lsrs r0, 11
+ ldr r2, =0x06010000
+ adds r0, r2
+ str r0, [r1]
+ movs r0, 0xD
+ bl AllocSpritePalette
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r6, 0x1A]
+ bl sub_81CC370
+ str r0, [r6, 0x20]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CC214
+
+ thumb_func_start sub_81CC2B4
+sub_81CC2B4: @ 81CC2B4
+ push {r4,lr}
+ movs r0, 0x6
+ bl sub_81C763C
+ adds r4, r0, 0
+ ldr r0, [r4, 0x1C]
+ cmp r0, 0
+ beq _081CC2C8
+ bl DestroySprite
+_081CC2C8:
+ ldr r0, [r4, 0x20]
+ cmp r0, 0
+ beq _081CC2D2
+ bl DestroySprite
+_081CC2D2:
+ movs r0, 0x8
+ bl FreeSpriteTilesByTag
+ movs r0, 0x7
+ bl FreeSpriteTilesByTag
+ movs r0, 0xC
+ bl FreeSpritePaletteByTag
+ movs r0, 0xD
+ bl FreeSpritePaletteByTag
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CC2B4
+
+ thumb_func_start sub_81CC2F0
+sub_81CC2F0: @ 81CC2F0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r0, [r4, 0x1C]
+ cmp r0, 0
+ bne _081CC320
+ ldr r0, =gUnknown_08622830
+ movs r1, 0x4
+ movs r2, 0x50
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =gSprites
+ adds r1, r0
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_81CC344
+_081CC320:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CC2F0
+
+ thumb_func_start sub_81CC330
+sub_81CC330: @ 81CC330
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, [r4, 0x1C]
+ bl DestroySprite
+ movs r0, 0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CC330
+
+ thumb_func_start sub_81CC344
+sub_81CC344: @ 81CC344
+ ldr r0, [r0, 0x1C]
+ lsls r1, 4
+ strh r1, [r0, 0x26]
+ bx lr
+ thumb_func_end sub_81CC344
+
+ thumb_func_start sub_81CC34C
+sub_81CC34C: @ 81CC34C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _081CC36C
+ movs r0, 0
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x1
+ movs r1, 0x7
+ ands r0, r1
+ strh r0, [r2, 0x24]
+_081CC36C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CC34C
+
+ thumb_func_start sub_81CC370
+sub_81CC370: @ 81CC370
+ push {lr}
+ ldr r0, =gUnknown_08622850
+ movs r1, 0x2C
+ movs r2, 0x68
+ movs r3, 0x6
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CC370
+
+ thumb_func_start sub_81CC39C
+sub_81CC39C: @ 81CC39C
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ bl sub_81C875C
+ bl sub_81CAF04
+ cmp r0, 0
+ blt _081CC400
+ lsls r4, r0, 3
+ ldr r0, =gTrainerFrontPicTable
+ adds r0, r4, r0
+ ldr r1, =0x00001828
+ adds r5, r7, r1
+ adds r1, r5, 0
+ movs r2, 0
+ bl DecompressPicFromTable
+ ldr r0, =gTrainerFrontPicPaletteTable
+ adds r4, r0
+ ldr r0, [r4]
+ ldr r1, =0x00002028
+ adds r6, r7, r1
+ adds r1, r6, 0
+ bl LZ77UnCompWram
+ ldr r1, =0x00001824
+ adds r0, r7, r1
+ ldr r1, [r0]
+ movs r2, 0x80
+ lsls r2, 4
+ adds r0, r5, 0
+ movs r3, 0x1
+ bl RequestDma3Copy
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrh r1, [r7, 0x1A]
+ adds r0, r6, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, [r7, 0x20]
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, [r7, 0x20]
+ strh r4, [r0, 0x3C]
+ ldr r1, [r7, 0x20]
+ ldr r0, =sub_81CC440
+ str r0, [r1, 0x1C]
+_081CC400:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CC39C
+
+ thumb_func_start sub_81CC420
+sub_81CC420: @ 81CC420
+ ldr r1, [r0, 0x20]
+ ldr r0, =sub_81CC4A4
+ str r0, [r1, 0x1C]
+ bx lr
+ .pool
+ thumb_func_end sub_81CC420
+
+ thumb_func_start sub_81CC42C
+sub_81CC42C: @ 81CC42C
+ ldr r0, [r0, 0x20]
+ ldr r1, [r0, 0x1C]
+ ldr r0, =SpriteCallbackDummy
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ bx lr
+ .pool
+ thumb_func_end sub_81CC42C
+
+ thumb_func_start sub_81CC440
+sub_81CC440: @ 81CC440
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _081CC452
+ cmp r0, 0x1
+ beq _081CC484
+ b _081CC498
+_081CC452:
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ bl CheckForSpaceForDma3Request
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _081CC498
+ ldr r0, =0x0000ffb0
+ strh r0, [r4, 0x24]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _081CC498
+ .pool
+_081CC484:
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x8
+ strh r0, [r4, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ blt _081CC498
+ movs r0, 0
+ strh r0, [r4, 0x24]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+_081CC498:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CC440
+
+ thumb_func_start sub_81CC4A4
+sub_81CC4A4: @ 81CC4A4
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x24]
+ subs r0, 0x8
+ strh r0, [r3, 0x24]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x50
+ negs r1, r1
+ cmp r0, r1
+ bgt _081CC4CA
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r3, 0x1C]
+_081CC4CA:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CC4A4
+
+ thumb_func_start sub_81CC4D4
+sub_81CC4D4: @ 81CC4D4
+ push {r4,lr}
+ movs r0, 0x3
+ movs r1, 0x14
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081CC4F0
+ ldr r1, =0x00000884
+ movs r0, 0x10
+ bl sub_81C761C
+ cmp r0, 0
+ bne _081CC4F8
+_081CC4F0:
+ movs r0, 0
+ b _081CC51A
+ .pool
+_081CC4F8:
+ ldr r0, =gMapHeader
+ ldrb r0, [r0, 0x14]
+ bl sub_8124668
+ str r0, [r4, 0xC]
+ cmp r0, 0
+ bne _081CC514
+ ldr r0, =sub_81CC568
+ b _081CC516
+ .pool
+_081CC514:
+ ldr r0, =sub_81CC5B4
+_081CC516:
+ str r0, [r4, 0x10]
+ movs r0, 0x1
+_081CC51A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CC4D4
+
+ thumb_func_start sub_81CC524
+sub_81CC524: @ 81CC524
+ push {lr}
+ bl sub_8124658
+ ldr r1, =gSaveBlock2Ptr
+ ldr r3, [r1]
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 3
+ ldrb r2, [r3, 0x15]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x15]
+ movs r0, 0x10
+ bl sub_81C7650
+ movs r0, 0x3
+ bl sub_81C7650
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CC524
+
+ thumb_func_start sub_81CC554
+sub_81CC554: @ 81CC554
+ push {lr}
+ movs r0, 0x3
+ bl sub_81C763C
+ ldr r1, [r0, 0x10]
+ bl _call_via_r1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CC554
+
+ thumb_func_start sub_81CC568
+sub_81CC568: @ 81CC568
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_81230AC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ beq _081CC58C
+ cmp r0, 0x4
+ bgt _081CC582
+ cmp r0, 0x3
+ beq _081CC588
+ b _081CC5AC
+_081CC582:
+ cmp r0, 0x5
+ beq _081CC59E
+ b _081CC5AC
+_081CC588:
+ movs r0, 0x1
+ b _081CC5AE
+_081CC58C:
+ bl sub_8124658
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CC59A
+ movs r0, 0x3
+ b _081CC5AE
+_081CC59A:
+ movs r0, 0x2
+ b _081CC5AE
+_081CC59E:
+ ldr r0, =sub_81CC5DC
+ str r0, [r4, 0x10]
+ movs r0, 0x4
+ b _081CC5AE
+ .pool
+_081CC5AC:
+ movs r0, 0
+_081CC5AE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CC568
+
+ thumb_func_start sub_81CC5B4
+sub_81CC5B4: @ 81CC5B4
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _081CC5CC
+ movs r0, 0
+ b _081CC5D2
+ .pool
+_081CC5CC:
+ ldr r0, =sub_81CC5DC
+ str r0, [r2, 0x10]
+ movs r0, 0x4
+_081CC5D2:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CC5B4
+
+ thumb_func_start sub_81CC5DC
+sub_81CC5DC: @ 81CC5DC
+ ldr r0, =0x000186a1
+ bx lr
+ .pool
+ thumb_func_end sub_81CC5DC
+
+ thumb_func_start sub_81CC5E4
+sub_81CC5E4: @ 81CC5E4
+ push {lr}
+ movs r0, 0x3
+ bl sub_81C763C
+ ldr r0, [r0, 0xC]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CC5E4
+
+ thumb_func_start sub_81CC5F4
+sub_81CC5F4: @ 81CC5F4
+ push {r4,lr}
+ ldr r1, =0x00001948
+ movs r0, 0x4
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081CC624
+ ldr r0, =sub_81CC6F4
+ movs r1, 0x1
+ bl sub_81C7078
+ str r0, [r4, 0x4]
+ ldr r0, =sub_81CC6BC
+ str r0, [r4]
+ movs r0, 0x1
+ b _081CC626
+ .pool
+_081CC624:
+ movs r0, 0
+_081CC626:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CC5F4
+
+ thumb_func_start sub_81CC62C
+sub_81CC62C: @ 81CC62C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x4
+ bl sub_81C763C
+ adds r5, r0, 0
+ ldr r0, =gUnknown_086230E4
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ movs r1, 0x1
+ bl sub_81C7078
+ str r0, [r5, 0x4]
+ ldr r0, =sub_81CC6BC
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CC62C
+
+ thumb_func_start sub_81CC65C
+sub_81CC65C: @ 81CC65C
+ push {lr}
+ movs r0, 0x4
+ bl sub_81C763C
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CC65C
+
+ thumb_func_start sub_81CC670
+sub_81CC670: @ 81CC670
+ push {r4,lr}
+ movs r0, 0x4
+ bl sub_81C763C
+ adds r4, r0, 0
+ bl sub_812305C
+ bl sub_81CC9EC
+ ldrb r0, [r4, 0x8]
+ bl RemoveWindow
+ movs r0, 0x10
+ bl sub_81C7650
+ movs r0, 0x4
+ bl sub_81C7650
+ bl sub_81C760C
+ movs r0, 0
+ bl SetBgMode
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CC670
+
+ thumb_func_start sub_81CC6A4
+sub_81CC6A4: @ 81CC6A4
+ push {lr}
+ bl TransferPlttBuffer
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl sub_81237B4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CC6A4
+
+ thumb_func_start sub_81CC6BC
+sub_81CC6BC: @ 81CC6BC
+ push {lr}
+ movs r0, 0x4
+ bl sub_81C763C
+ ldr r0, [r0, 0x4]
+ bl sub_81C70D8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CC6BC
+
+ thumb_func_start sub_81CC6D0
+sub_81CC6D0: @ 81CC6D0
+ push {lr}
+ bl sub_81CC5E4
+ cmp r0, 0
+ bne _081CC6EC
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x15]
+ lsrs r0, 3
+ movs r1, 0x1
+ ands r0, r1
+ b _081CC6EE
+ .pool
+_081CC6EC:
+ movs r0, 0
+_081CC6EE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CC6D0
+
+ thumb_func_start sub_81CC6F4
+sub_81CC6F4: @ 81CC6F4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x4
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x7
+ bls _081CC706
+ b _081CC83E
+_081CC706:
+ lsls r0, r4, 2
+ ldr r1, =_081CC714
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081CC714:
+ .4byte _081CC734
+ .4byte _081CC784
+ .4byte _081CC7B6
+ .4byte _081CC7BE
+ .4byte _081CC7CE
+ .4byte _081CC7E2
+ .4byte _081CC804
+ .4byte _081CC82A
+_081CC734:
+ movs r0, 0
+ bl c3args_set_0toR1_1to0
+ movs r0, 0x1
+ bl HideBg
+ movs r0, 0x2
+ bl HideBg
+ movs r0, 0x3
+ bl HideBg
+ movs r0, 0x1
+ bl SetBgMode
+ ldr r4, =gUnknown_086230D8
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_81C7B54
+ movs r0, 0x10
+ bl sub_81C763C
+ adds r5, r0, 0
+ adds r4, 0x4
+ bl sub_81CC6D0
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8122CF8
+ bl sub_81CC9C0
+_081CC77C:
+ movs r0, 0
+ b _081CC840
+ .pool
+_081CC784:
+ bl sub_8122DB0
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CC83A
+ bl sub_81CC5E4
+ cmp r0, 0
+ bne _081CC7AC
+ movs r0, 0x4
+ movs r1, 0x9
+ bl sub_8124288
+ movs r0, 0x5
+ movs r1, 0xA
+ bl sub_81240D4
+ bl sub_812454C
+ b _081CC77C
+_081CC7AC:
+ movs r0, 0
+ movs r1, 0x6
+ bl sub_8123030
+ b _081CC77C
+_081CC7B6:
+ bl sub_81CCD10
+_081CC7BA:
+ movs r0, 0x1
+ b _081CC840
+_081CC7BE:
+ bl sub_81CCD24
+ cmp r0, 0
+ bne _081CC83A
+ adds r0, r5, 0
+ bl sub_81CCA1C
+ b _081CC7BA
+_081CC7CE:
+ bl sub_81CCAFC
+ cmp r0, 0
+ bne _081CC83A
+ adds r0, r5, 0
+ bl sub_81CCB0C
+ bl sub_81C7B40
+ b _081CC77C
+_081CC7E2:
+ adds r0, r5, 0
+ bl sub_81CCC4C
+ cmp r0, 0
+ bne _081CC83A
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ ldr r0, =sub_81CC6A4
+ bl c3args_set_0toR1_1to0
+ b _081CC77C
+ .pool
+_081CC804:
+ bl sub_81CC6D0
+ lsls r0, 24
+ movs r4, 0x5
+ cmp r0, 0
+ bne _081CC812
+ movs r4, 0x4
+_081CC812:
+ adds r0, r4, 0
+ bl sub_81C7DFC
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_81C7FA0
+ movs r0, 0x1
+ bl sub_81C7AC0
+ b _081CC77C
+_081CC82A:
+ bl sub_81C7B34
+ cmp r0, 0
+ bne _081CC83A
+ bl sub_81C8010
+ cmp r0, 0
+ beq _081CC7BA
+_081CC83A:
+ movs r0, 0x2
+ b _081CC840
+_081CC83E:
+ movs r0, 0x4
+_081CC840:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CC6F4
+
+ thumb_func_start sub_81CC848
+sub_81CC848: @ 81CC848
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x4
+ bl sub_81C763C
+ cmp r4, 0
+ beq _081CC85C
+ cmp r4, 0x1
+ beq _081CC864
+ b _081CC870
+_081CC85C:
+ bl sub_81CCB0C
+ movs r0, 0
+ b _081CC872
+_081CC864:
+ bl sub_81CCC4C
+ cmp r0, 0
+ beq _081CC870
+ movs r0, 0x2
+ b _081CC872
+_081CC870:
+ movs r0, 0x4
+_081CC872:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CC848
+
+ thumb_func_start sub_81CC878
+sub_81CC878: @ 81CC878
+ push {lr}
+ cmp r0, 0x1
+ beq _081CC8A2
+ cmp r0, 0x1
+ bgt _081CC888
+ cmp r0, 0
+ beq _081CC88E
+ b _081CC8D0
+_081CC888:
+ cmp r0, 0x2
+ beq _081CC8BE
+ b _081CC8D0
+_081CC88E:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_81CCC5C
+ bl sub_8123418
+ movs r0, 0
+ b _081CC8D2
+_081CC8A2:
+ bl sub_8123514
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CC8C6
+ bl sub_81CCC88
+ cmp r0, 0
+ bne _081CC8C6
+ movs r0, 0x1
+ bl sub_81C7BA4
+ movs r0, 0
+ b _081CC8D2
+_081CC8BE:
+ bl sub_81C7BE8
+ cmp r0, 0
+ beq _081CC8CA
+_081CC8C6:
+ movs r0, 0x2
+ b _081CC8D2
+_081CC8CA:
+ movs r0, 0x4
+ bl sub_81C7E14
+_081CC8D0:
+ movs r0, 0x4
+_081CC8D2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CC878
+
+ thumb_func_start sub_81CC8D8
+sub_81CC8D8: @ 81CC8D8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x4
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081CC90C
+ cmp r4, 0x1
+ bgt _081CC8F2
+ cmp r4, 0
+ beq _081CC8FC
+ b _081CC952
+_081CC8F2:
+ cmp r4, 0x2
+ beq _081CC924
+ cmp r4, 0x3
+ beq _081CC940
+ b _081CC952
+_081CC8FC:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_81CCB0C
+ movs r0, 0
+ b _081CC954
+_081CC90C:
+ adds r0, r5, 0
+ bl sub_81CCC4C
+ cmp r0, 0
+ bne _081CC948
+ movs r0, 0x1
+ bl sub_81CCC5C
+ bl sub_8123418
+ movs r0, 0
+ b _081CC954
+_081CC924:
+ bl sub_8123514
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CC948
+ bl sub_81CCC88
+ cmp r0, 0
+ bne _081CC948
+ movs r0, 0x2
+ bl sub_81C7BA4
+ movs r0, 0
+ b _081CC954
+_081CC940:
+ bl sub_81C7BE8
+ cmp r0, 0
+ beq _081CC94C
+_081CC948:
+ movs r0, 0x2
+ b _081CC954
+_081CC94C:
+ movs r0, 0x5
+ bl sub_81C7E14
+_081CC952:
+ movs r0, 0x4
+_081CC954:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CC8D8
+
+ thumb_func_start sub_81CC95C
+sub_81CC95C: @ 81CC95C
+ push {lr}
+ cmp r0, 0x1
+ beq _081CC982
+ cmp r0, 0x1
+ bgt _081CC96C
+ cmp r0, 0
+ beq _081CC972
+ b _081CC9B8
+_081CC96C:
+ cmp r0, 0x2
+ beq _081CC996
+ b _081CC9B8
+_081CC972:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_81C7AC0
+ movs r0, 0
+ b _081CC9BA
+_081CC982:
+ bl sub_81C7B34
+ cmp r0, 0
+ bne _081CC99E
+ bl sub_81C7FDC
+ bl sub_81C78A0
+ movs r0, 0
+ b _081CC9BA
+_081CC996:
+ bl sub_81C78C0
+ cmp r0, 0
+ beq _081CC9A2
+_081CC99E:
+ movs r0, 0x2
+ b _081CC9BA
+_081CC9A2:
+ movs r0, 0x1
+ bl HideBg
+ movs r0, 0x2
+ bl HideBg
+ movs r0, 0x3
+ bl HideBg
+ movs r0, 0
+ b _081CC9BA
+_081CC9B8:
+ movs r0, 0x4
+_081CC9BA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CC95C
+
+ thumb_func_start sub_81CC9C0
+sub_81CC9C0: @ 81CC9C0
+ push {r4,r5,lr}
+ movs r5, 0
+ ldr r4, =gUnknown_086230F8
+_081CC9C6:
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ adds r4, 0x8
+ adds r5, 0x1
+ cmp r5, 0
+ beq _081CC9C6
+ ldr r0, =gUnknown_08623100
+ bl sub_81C795C
+ bl sub_81CCE58
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CC9C0
+
+ thumb_func_start sub_81CC9EC
+sub_81CC9EC: @ 81CC9EC
+ push {r4,r5,lr}
+ movs r0, 0x4
+ bl sub_81C763C
+ adds r4, r0, 0
+ movs r0, 0x6
+ bl FreeSpriteTilesByTag
+ movs r0, 0xB
+ bl FreeSpritePaletteByTag
+ adds r5, r4, 0
+ adds r5, 0xC
+ movs r4, 0x2
+_081CCA08:
+ ldm r5!, {r0}
+ bl DestroySprite
+ subs r4, 0x1
+ cmp r4, 0
+ bge _081CCA08
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CC9EC
+
+ thumb_func_start sub_81CCA1C
+sub_81CCA1C: @ 81CCA1C
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x40
+ movs r3, 0x1
+ bl sub_8199DF0
+ movs r0, 0x1
+ movs r1, 0x11
+ movs r2, 0x41
+ movs r3, 0x1
+ bl sub_8199DF0
+ add r1, sp, 0x4
+ movs r2, 0x82
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r4, r5, 0
+ adds r4, 0x18
+ ldr r2, =0x01000400
+ adds r0, r1, 0
+ adds r1, r4, 0
+ bl CpuSet
+ movs r0, 0x1
+ adds r1, r4, 0
+ bl SetBgTilemapBuffer
+ ldr r0, =gUnknown_08623110
+ bl AddWindow
+ movs r4, 0
+ strh r0, [r5, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x42
+ movs r2, 0x40
+ bl box_border_load_tiles_and_pal
+ ldrb r0, [r5, 0x8]
+ movs r1, 0x42
+ movs r2, 0x4
+ bl sub_8098858
+ ldr r1, =gUnknown_08622888
+ str r4, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ ldrb r0, [r5, 0x8]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldrb r0, [r5, 0x8]
+ bl PutWindowTilemap
+ ldrb r0, [r5, 0x8]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r0, =gUnknown_08622868
+ movs r1, 0x10
+ movs r2, 0x20
+ bl sub_81C7944
+ ldr r0, =gUnknown_08DC91E8
+ movs r1, 0x30
+ movs r2, 0x20
+ bl sub_81C7944
+ bl sub_8124658
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CCAE0
+ ldr r1, =0xffffa000
+ movs r0, 0x1
+ movs r2, 0
+ bl ChangeBgY
+ b _081CCAEA
+ .pool
+_081CCAE0:
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+_081CCAEA:
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CCA1C
+
+ thumb_func_start sub_81CCAFC
+sub_81CCAFC: @ 81CCAFC
+ push {lr}
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CCAFC
+
+ thumb_func_start sub_81CCB0C
+sub_81CCB0C: @ 81CCB0C
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ movs r0, 0x10
+ bl sub_81C763C
+ adds r5, r0, 0
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0x4
+ bls _081CCB22
+ b _081CCC40
+_081CCB22:
+ lsls r0, 2
+ ldr r1, =_081CCB30
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081CCB30:
+ .4byte _081CCC1C
+ .4byte _081CCBDC
+ .4byte _081CCB44
+ .4byte _081CCB8E
+ .4byte _081CCBDC
+_081CCB44:
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x2
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0xC
+ bl PutWindowRectTilemap
+ ldrb r0, [r4, 0x8]
+ adds r2, r5, 0x4
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x7
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldrh r1, [r5]
+ ldrb r2, [r5, 0x3]
+ adds r0, r4, 0
+ bl sub_81CCD70
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ movs r0, 0
+ bl sub_81CCFA4
+ b _081CCC40
+_081CCB8E:
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x2
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0xC
+ bl PutWindowRectTilemap
+ ldrb r0, [r4, 0x8]
+ adds r2, r5, 0x4
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x7
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldr r1, =0x00001041
+ movs r0, 0xC
+ str r0, [sp]
+ movs r0, 0xB
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ movs r2, 0x11
+ movs r3, 0x6
+ bl FillBgTilemapBufferRect
+ b _081CCC0C
+ .pool
+_081CCBDC:
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldrb r0, [r4, 0x8]
+ bl PutWindowTilemap
+ ldrb r0, [r4, 0x8]
+ adds r2, r5, 0x4
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x7
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldrh r1, [r5]
+ ldrb r2, [r5, 0x3]
+ adds r0, r4, 0
+ bl sub_81CCDE8
+_081CCC0C:
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ movs r0, 0x1
+ bl sub_81CCFA4
+ b _081CCC40
+_081CCC1C:
+ ldr r1, =0x00001041
+ movs r0, 0xC
+ str r0, [sp]
+ movs r0, 0xD
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ movs r2, 0x11
+ movs r3, 0x4
+ bl FillBgTilemapBufferRect
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x1
+ bl sub_81CCFA4
+_081CCC40:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CCB0C
+
+ thumb_func_start sub_81CCC4C
+sub_81CCC4C: @ 81CCC4C
+ push {lr}
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CCC4C
+
+ thumb_func_start sub_81CCC5C
+sub_81CCC5C: @ 81CCC5C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =sub_81CCC9C
+ movs r1, 0x3
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CCC5C
+
+ thumb_func_start sub_81CCC88
+sub_81CCC88: @ 81CCC88
+ push {lr}
+ ldr r0, =sub_81CCC9C
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CCC88
+
+ thumb_func_start sub_81CCC9C
+sub_81CCC9C: @ 81CCC9C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _081CCCE0
+ movs r1, 0x90
+ lsls r1, 3
+ movs r0, 0x1
+ movs r2, 0x1
+ bl ChangeBgY
+ cmp r0, 0
+ blt _081CCCD6
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ adds r0, r4, 0
+ bl DestroyTask
+_081CCCD6:
+ bl sub_81CCF78
+ b _081CCD04
+ .pool
+_081CCCE0:
+ movs r1, 0x90
+ lsls r1, 3
+ movs r0, 0x1
+ movs r2, 0x2
+ bl ChangeBgY
+ ldr r1, =0xffffa000
+ cmp r0, r1
+ bgt _081CCD00
+ movs r0, 0x1
+ movs r2, 0
+ bl ChangeBgY
+ adds r0, r5, 0
+ bl DestroyTask
+_081CCD00:
+ bl sub_81CCF78
+_081CCD04:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CCC9C
+
+ thumb_func_start sub_81CCD10
+sub_81CCD10: @ 81CCD10
+ push {lr}
+ ldr r0, =sub_81CCD34
+ movs r1, 0x1
+ bl sub_81C7078
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CCD10
+
+ thumb_func_start sub_81CCD24
+sub_81CCD24: @ 81CCD24
+ push {lr}
+ ldr r0, =sub_81CCD34
+ bl sub_81C7124
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CCD24
+
+ thumb_func_start sub_81CCD34
+sub_81CCD34: @ 81CCD34
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x4
+ bl sub_81C763C
+ adds r2, r0, 0
+ cmp r4, 0x15
+ ble _081CCD48
+ movs r0, 0x4
+ b _081CCD62
+_081CCD48:
+ ldr r0, =gUnknown_08623118
+ lsls r1, r4, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ movs r1, 0xC8
+ muls r1, r4
+ ldr r3, =0x00000818
+ adds r1, r3
+ adds r1, r2, r1
+ bl LZ77UnCompWram
+ movs r0, 0x1
+_081CCD62:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CCD34
+
+ thumb_func_start sub_81CCD70
+sub_81CCD70: @ 81CCD70
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r3, r1, 0
+ movs r4, 0
+ ldr r0, =gUnknown_08623118
+ ldrh r1, [r0]
+ adds r5, r0, 0
+ cmp r1, r3
+ bne _081CCD8A
+ ldrh r0, [r5, 0x2]
+ cmp r0, r2
+ beq _081CCDA0
+_081CCD8A:
+ adds r4, 0x1
+ cmp r4, 0x15
+ bgt _081CCDA0
+ lsls r0, r4, 3
+ adds r1, r0, r5
+ ldrh r0, [r1]
+ cmp r0, r3
+ bne _081CCD8A
+ ldrh r0, [r1, 0x2]
+ cmp r0, r2
+ bne _081CCD8A
+_081CCDA0:
+ cmp r4, 0x16
+ beq _081CCDD4
+ ldr r1, =0x00001041
+ movs r0, 0xC
+ str r0, [sp]
+ movs r0, 0xB
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r2, 0x11
+ movs r3, 0x6
+ bl FillBgTilemapBufferRect_Palette0
+ movs r0, 0xC8
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, =0x00000818
+ adds r1, r0
+ adds r1, r6, r1
+ movs r0, 0xA
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r2, 0x12
+ movs r3, 0x6
+ bl CopyToBgTilemapBufferRect
+_081CCDD4:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CCD70
+
+ thumb_func_start sub_81CCDE8
+sub_81CCDE8: @ 81CCDE8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ mov r9, r0
+ movs r5, 0
+ ldr r6, =gStringVar1
+ movs r4, 0x88
+ lsls r4, 21
+ lsls r1, 24
+ mov r8, r1
+ lsls r7, r2, 24
+ b _081CCE34
+ .pool
+_081CCE08:
+ adds r0, r6, 0
+ movs r2, 0
+ movs r3, 0xC
+ bl StringCopyPadded
+ mov r1, r9
+ ldrb r0, [r1, 0x8]
+ lsrs r1, r4, 24
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x7
+ adds r2, r6, 0
+ movs r3, 0
+ bl PrintTextOnWindow
+ movs r0, 0x80
+ lsls r0, 21
+ adds r4, r0
+ adds r5, 0x1
+_081CCE34:
+ lsls r2, r5, 24
+ lsrs r2, 24
+ mov r1, r8
+ lsrs r0, r1, 24
+ lsrs r1, r7, 24
+ bl sub_8145CF4
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _081CCE08
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CCDE8
+
+ thumb_func_start sub_81CCE58
+sub_81CCE58: @ 81CCE58
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0x4
+ bl sub_81C763C
+ adds r4, r0, 0
+ bl sub_8124658
+ lsls r0, 24
+ movs r2, 0x84
+ cmp r0, 0
+ bne _081CCE74
+ movs r2, 0xE4
+_081CCE74:
+ movs r5, 0
+ lsls r7, r2, 16
+ adds r4, 0xC
+ mov r8, r4
+ movs r6, 0x98
+ lsls r6, 16
+_081CCE80:
+ asrs r1, r6, 16
+ ldr r0, =gUnknown_086231D0
+ asrs r2, r7, 16
+ movs r3, 0x8
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, =gSprites
+ adds r2, r0
+ movs r0, 0
+ strh r0, [r2, 0x2E]
+ lsls r4, r5, 2
+ strh r4, [r2, 0x30]
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r0, r1, 22
+ adds r1, r0, 0
+ strh r0, [r2, 0x32]
+ movs r0, 0x96
+ strh r0, [r2, 0x34]
+ strh r4, [r2, 0x36]
+ adds r1, r4
+ ldr r4, =0x000003ff
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r4, =0xfffffc00
+ adds r0, r4, 0
+ ands r3, r0
+ orrs r3, r1
+ strh r3, [r2, 0x4]
+ mov r0, r8
+ adds r0, 0x4
+ mov r8, r0
+ subs r0, 0x4
+ stm r0!, {r2}
+ movs r4, 0x80
+ lsls r4, 14
+ adds r6, r4
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _081CCE80
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CCE58
+
+ thumb_func_start sub_81CCEF4
+sub_81CCEF4: @ 81CCEF4
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x34]
+ movs r1, 0x34
+ ldrsh r4, [r3, r1]
+ cmp r4, 0
+ beq _081CCF06
+ subs r0, 0x1
+ b _081CCF6E
+_081CCF06:
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ ble _081CCF16
+ strh r4, [r3, 0x2E]
+_081CCF16:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _081CCF26
+ strh r4, [r3, 0x30]
+_081CCF26:
+ ldrh r5, [r3, 0x30]
+ ldrh r2, [r3, 0x32]
+ adds r1, r5, r2
+ ldr r2, =0x000003ff
+ adds r0, r2, 0
+ ands r1, r0
+ ldrh r2, [r3, 0x4]
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldrh r1, [r3, 0x38]
+ movs r2, 0x38
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x3
+ bgt _081CCF5C
+ movs r2, 0x2E
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _081CCF70
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x38]
+ b _081CCF6C
+ .pool
+_081CCF5C:
+ lsls r0, r5, 16
+ asrs r0, 16
+ movs r2, 0x36
+ ldrsh r1, [r3, r2]
+ cmp r0, r1
+ bne _081CCF70
+ strh r4, [r3, 0x38]
+ strh r4, [r3, 0x2E]
+_081CCF6C:
+ movs r0, 0x78
+_081CCF6E:
+ strh r0, [r3, 0x34]
+_081CCF70:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CCEF4
+
+ thumb_func_start sub_81CCF78
+sub_81CCF78: @ 81CCF78
+ push {r4,lr}
+ movs r0, 0x4
+ bl sub_81C763C
+ adds r4, r0, 0
+ movs r0, 0x1
+ bl GetBgY
+ asrs r0, 8
+ movs r1, 0x84
+ subs r1, r0
+ adds r4, 0xC
+ movs r2, 0x2
+_081CCF92:
+ ldm r4!, {r0}
+ strh r1, [r0, 0x22]
+ subs r2, 0x1
+ cmp r2, 0
+ bge _081CCF92
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CCF78
+
+ thumb_func_start sub_81CCFA4
+sub_81CCFA4: @ 81CCFA4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r0, 0x4
+ bl sub_81C763C
+ movs r1, 0x1
+ ands r4, r1
+ lsls r5, r4, 2
+ movs r6, 0x5
+ negs r6, r6
+ adds r4, r0, 0
+ adds r4, 0xC
+ movs r3, 0x2
+_081CCFBE:
+ ldm r4!, {r0}
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r5
+ strb r1, [r0]
+ subs r3, 0x1
+ cmp r3, 0
+ bge _081CCFBE
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CCFA4
+
+ thumb_func_start sub_81CCFD8
+sub_81CCFD8: @ 81CCFD8
+ push {r4,lr}
+ ldr r1, =0x0000678c
+ movs r0, 0xB
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081CD01C
+ ldr r1, =0x00006428
+ adds r0, r4, r1
+ bl sub_81D1ED4
+ bl sub_81CD970
+ ldr r1, =gKeyRepeatStartDelay
+ movs r0, 0x14
+ strh r0, [r1]
+ ldr r0, =0x00006304
+ adds r1, r4, r0
+ ldr r0, =sub_81CD08C
+ str r0, [r1]
+ movs r0, 0x1
+ b _081CD01E
+ .pool
+_081CD01C:
+ movs r0, 0
+_081CD01E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CCFD8
+
+ thumb_func_start sub_81CD024
+sub_81CD024: @ 81CD024
+ push {r4,lr}
+ ldr r1, =0x0000678c
+ movs r0, 0xB
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081CD068
+ ldr r1, =0x00006428
+ adds r0, r4, r1
+ bl sub_81D1ED4
+ bl sub_81CD9F8
+ ldr r1, =gKeyRepeatStartDelay
+ movs r0, 0x14
+ strh r0, [r1]
+ ldr r0, =0x00006304
+ adds r1, r4, r0
+ ldr r0, =sub_81CD08C
+ str r0, [r1]
+ movs r0, 0x1
+ b _081CD06A
+ .pool
+_081CD068:
+ movs r0, 0
+_081CD06A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CD024
+
+ thumb_func_start sub_81CD070
+sub_81CD070: @ 81CD070
+ push {lr}
+ movs r0, 0xB
+ bl sub_81C763C
+ ldr r2, =0x00006304
+ adds r1, r0, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CD070
+
+ thumb_func_start sub_81CD08C
+sub_81CD08C: @ 81CD08C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x12
+ bl sub_81C763C
+ adds r5, r0, 0
+ adds r0, r4, 0
+ bl sub_81CD1E4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _081CD100
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _081CD0D0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081CD100
+ movs r1, 0xC6
+ lsls r1, 7
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081CD0F0
+ ldrh r1, [r5, 0x2]
+ ldrh r0, [r5]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _081CD100
+_081CD0D0:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =0x00006304
+ adds r1, r4, r0
+ ldr r0, =sub_81CD19C
+ str r0, [r1]
+ movs r2, 0x2
+ b _081CD100
+ .pool
+_081CD0F0:
+ movs r0, 0x5
+ bl PlaySE
+ movs r2, 0x5
+ ldr r0, =0x00006304
+ adds r1, r4, r0
+ ldr r0, =sub_81CD110
+ str r0, [r1]
+_081CD100:
+ adds r0, r2, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CD08C
+
+ thumb_func_start sub_81CD110
+sub_81CD110: @ 81CD110
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ movs r4, 0
+ bl sub_811FBA4
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CD18A
+ bl sub_81CEF14
+ ldr r1, =0x00006786
+ adds r5, r6, r1
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ ldr r2, =0x00006783
+ adds r4, r6, r2
+ adds r1, r4, r1
+ strb r0, [r1]
+ movs r0, 0x12
+ bl sub_81C763C
+ ldrh r1, [r0, 0x2]
+ lsls r1, 2
+ adds r0, r1
+ ldrb r2, [r0, 0x4]
+ ldrb r3, [r0, 0x5]
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ adds r4, r0
+ ldrb r1, [r4]
+ mov r0, sp
+ strb r1, [r0]
+ cmp r2, 0xE
+ bne _081CD174
+ movs r0, 0x64
+ muls r0, r3
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x8
+ mov r2, sp
+ bl SetMonData
+ b _081CD180
+ .pool
+_081CD174:
+ adds r0, r2, 0
+ adds r1, r3, 0
+ movs r2, 0x8
+ mov r3, sp
+ bl SetBoxMonDataFromAnyBox
+_081CD180:
+ ldr r0, =0x00006304
+ adds r1, r6, r0
+ ldr r0, =sub_81CD08C
+ str r0, [r1]
+ movs r4, 0x6
+_081CD18A:
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CD110
+
+ thumb_func_start sub_81CD19C
+sub_81CD19C: @ 81CD19C
+ push {lr}
+ movs r1, 0xC6
+ lsls r1, 7
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081CD1B4
+ ldr r0, =0x000186aa
+ b _081CD1B6
+ .pool
+_081CD1B4:
+ ldr r0, =0x000186a2
+_081CD1B6:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CD19C
+
+ thumb_func_start sub_81CD1C0
+sub_81CD1C0: @ 81CD1C0
+ push {lr}
+ movs r0, 0xB
+ bl sub_81C763C
+ movs r1, 0xC6
+ lsls r1, 7
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081CD1DA
+ movs r0, 0x12
+ bl sub_81C7650
+_081CD1DA:
+ movs r0, 0xB
+ bl sub_81C7650
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CD1C0
+
+ thumb_func_start sub_81CD1E4
+sub_81CD1E4: @ 81CD1E4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x12
+ bl sub_81C763C
+ adds r2, r0, 0
+ movs r3, 0
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2C]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081CD220
+ movs r1, 0xC6
+ lsls r1, 7
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081CD210
+ ldrh r0, [r2, 0x2]
+ cmp r0, 0
+ beq _081CD24E
+_081CD210:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ b _081CD246
+ .pool
+_081CD220:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081CD24E
+ movs r1, 0xC6
+ lsls r1, 7
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081CD23E
+ ldrh r1, [r2, 0x2]
+ ldrh r0, [r2]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _081CD24E
+_081CD23E:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+_081CD246:
+ bl sub_81CD258
+ lsls r0, 24
+ lsrs r3, r0, 24
+_081CD24E:
+ adds r0, r3, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CD1E4
+
+ thumb_func_start sub_81CD258
+sub_81CD258: @ 81CD258
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r0, 0xB
+ bl sub_81C763C
+ adds r4, r0, 0
+ movs r0, 0x12
+ bl sub_81C763C
+ adds r5, r0, 0
+ mov r0, r8
+ cmp r0, 0
+ beq _081CD284
+ ldr r1, =0x00006788
+ adds r0, r4, r1
+ b _081CD288
+ .pool
+_081CD284:
+ ldr r2, =0x00006787
+ adds r0, r4, r2
+_081CD288:
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ adds r7, r0, 0
+ ldr r1, =0x00006428
+ adds r0, r4, r1
+ ldr r2, =0x00006786
+ adds r1, r4, r2
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 2
+ ldr r3, =0x0000643c
+ adds r1, r3
+ adds r1, r4, r1
+ lsls r2, r7, 2
+ adds r2, r7
+ lsls r2, 2
+ adds r2, r3
+ adds r2, r4, r2
+ bl sub_81D1F84
+ ldrh r6, [r5, 0x2]
+ bl sub_81CDD5C
+ cmp r0, 0
+ beq _081CD2D8
+ ldrh r1, [r5]
+ b _081CD2DC
+ .pool
+_081CD2D8:
+ ldrh r1, [r5]
+ subs r1, 0x1
+_081CD2DC:
+ eors r1, r6
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ adds r6, r0, 0
+ mov r0, r8
+ cmp r0, 0
+ beq _081CD332
+ ldr r1, =0x00006787
+ adds r2, r4, r1
+ ldrb r0, [r2]
+ adds r1, 0x1
+ adds r3, r4, r1
+ strb r0, [r3]
+ ldr r0, =0x00006786
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ strb r0, [r2]
+ strb r7, [r1]
+ ldrb r1, [r3]
+ ldr r2, =0x00006789
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldrh r0, [r5, 0x2]
+ cmp r0, 0
+ bne _081CD312
+ ldrh r0, [r5]
+_081CD312:
+ subs r1, r0, 0x1
+ strh r1, [r5, 0x2]
+ lsls r0, r1, 16
+ cmp r0, 0
+ beq _081CD32C
+ subs r1, 0x1
+ b _081CD384
+ .pool
+_081CD32C:
+ ldrh r0, [r5]
+ subs r1, r0, 0x1
+ b _081CD384
+_081CD332:
+ ldr r0, =0x00006788
+ adds r2, r4, r0
+ ldrb r0, [r2]
+ ldr r1, =0x00006787
+ adds r3, r4, r1
+ strb r0, [r3]
+ ldr r0, =0x00006786
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ strb r0, [r2]
+ strb r7, [r1]
+ ldrb r1, [r3]
+ ldr r2, =0x00006789
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldrh r1, [r5, 0x2]
+ ldrh r0, [r5]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _081CD370
+ adds r0, r1, 0x1
+ b _081CD372
+ .pool
+_081CD370:
+ movs r0, 0
+_081CD372:
+ strh r0, [r5, 0x2]
+ ldrh r1, [r5, 0x2]
+ ldrh r0, [r5]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _081CD382
+ adds r1, 0x1
+ b _081CD384
+_081CD382:
+ movs r1, 0
+_081CD384:
+ ldr r2, =0x00006302
+ adds r0, r4, r2
+ strh r1, [r0]
+ ldrh r4, [r5, 0x2]
+ bl sub_81CDD5C
+ cmp r0, 0
+ beq _081CD39C
+ ldrh r1, [r5]
+ b _081CD3A0
+ .pool
+_081CD39C:
+ ldrh r1, [r5]
+ subs r1, 0x1
+_081CD3A0:
+ eors r1, r4
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ cmp r6, 0
+ bne _081CD3B0
+ movs r0, 0x3
+ b _081CD3BA
+_081CD3B0:
+ cmp r0, 0
+ beq _081CD3B8
+ movs r0, 0x1
+ b _081CD3BA
+_081CD3B8:
+ movs r0, 0x4
+_081CD3BA:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CD258
+
+ thumb_func_start sub_81CD3C4
+sub_81CD3C4: @ 81CD3C4
+ push {r4,lr}
+ movs r0, 0xB
+ bl sub_81C763C
+ adds r4, r0, 0
+ movs r0, 0x12
+ bl sub_81C763C
+ adds r2, r0, 0
+ ldr r1, =0x0000678a
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bls _081CD3E2
+ b _081CD530
+_081CD3E2:
+ lsls r0, 2
+ ldr r1, =_081CD3F4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081CD3F4:
+ .4byte _081CD41C
+ .4byte _081CD428
+ .4byte _081CD434
+ .4byte _081CD440
+ .4byte _081CD490
+ .4byte _081CD4A8
+ .4byte _081CD4C0
+ .4byte _081CD4D8
+ .4byte _081CD4F0
+ .4byte _081CD508
+_081CD41C:
+ movs r1, 0x2
+ ldrsh r0, [r2, r1]
+ movs r1, 0
+ bl sub_81CD824
+ b _081CD530
+_081CD428:
+ movs r1, 0x2
+ ldrsh r0, [r2, r1]
+ movs r1, 0
+ bl sub_81CDA1C
+ b _081CD530
+_081CD434:
+ movs r1, 0x2
+ ldrsh r0, [r2, r1]
+ movs r1, 0
+ bl sub_81CDB98
+ b _081CD530
+_081CD440:
+ ldrh r0, [r2]
+ cmp r0, 0x1
+ bne _081CD468
+ ldr r2, =0x00006786
+ adds r0, r4, r2
+ movs r1, 0
+ strb r1, [r0]
+ adds r2, 0x1
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r2, 0x1
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r2, 0x2
+ adds r0, r4, r2
+ strb r1, [r0]
+ movs r0, 0x1
+ b _081CD53C
+ .pool
+_081CD468:
+ ldr r0, =0x00006786
+ adds r1, r4, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r2, =0x00006787
+ adds r1, r4, r2
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, =0x00006788
+ adds r1, r4, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ b _081CD530
+ .pool
+_081CD490:
+ ldrh r0, [r2, 0x2]
+ adds r0, 0x1
+ ldrh r2, [r2]
+ cmp r0, r2
+ blt _081CD49C
+ movs r0, 0
+_081CD49C:
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ bl sub_81CD824
+ b _081CD530
+_081CD4A8:
+ ldrh r0, [r2, 0x2]
+ adds r0, 0x1
+ ldrh r2, [r2]
+ cmp r0, r2
+ blt _081CD4B4
+ movs r0, 0
+_081CD4B4:
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ bl sub_81CDA1C
+ b _081CD530
+_081CD4C0:
+ ldrh r0, [r2, 0x2]
+ adds r0, 0x1
+ ldrh r2, [r2]
+ cmp r0, r2
+ blt _081CD4CC
+ movs r0, 0
+_081CD4CC:
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ bl sub_81CDB98
+ b _081CD530
+_081CD4D8:
+ ldrh r0, [r2, 0x2]
+ subs r0, 0x1
+ cmp r0, 0
+ bge _081CD4E4
+ ldrh r0, [r2]
+ subs r0, 0x1
+_081CD4E4:
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x2
+ bl sub_81CD824
+ b _081CD530
+_081CD4F0:
+ ldrh r0, [r2, 0x2]
+ subs r0, 0x1
+ cmp r0, 0
+ bge _081CD4FC
+ ldrh r0, [r2]
+ subs r0, 0x1
+_081CD4FC:
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x2
+ bl sub_81CDA1C
+ b _081CD530
+_081CD508:
+ ldrh r0, [r2, 0x2]
+ subs r0, 0x1
+ cmp r0, 0
+ bge _081CD514
+ ldrh r0, [r2]
+ subs r0, 0x1
+_081CD514:
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x2
+ bl sub_81CDB98
+ ldr r2, =0x0000678a
+ adds r1, r4, r2
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ b _081CD53C
+ .pool
+_081CD530:
+ ldr r0, =0x0000678a
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+_081CD53C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CD3C4
+
+ thumb_func_start sub_81CD548
+sub_81CD548: @ 81CD548
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ movs r0, 0xB
+ bl sub_81C763C
+ adds r1, r0, 0
+ cmp r4, 0x1
+ beq _081CD588
+ cmp r4, 0x1
+ bgt _081CD566
+ cmp r4, 0
+ beq _081CD56C
+ b _081CD5C4
+_081CD566:
+ cmp r5, 0x2
+ beq _081CD5A4
+ b _081CD5C4
+_081CD56C:
+ ldr r2, =0x00006302
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ ldr r2, =0x00006789
+ adds r1, r2
+ ldrb r1, [r1]
+ bl sub_81CD824
+ b _081CD5C4
+ .pool
+_081CD588:
+ ldr r2, =0x00006302
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ ldr r2, =0x00006789
+ adds r1, r2
+ ldrb r1, [r1]
+ bl sub_81CDA1C
+ b _081CD5C4
+ .pool
+_081CD5A4:
+ ldr r2, =0x00006302
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ ldr r2, =0x00006789
+ adds r1, r2
+ ldrb r1, [r1]
+ bl sub_81CDB98
+ movs r0, 0x1
+ b _081CD5C6
+ .pool
+_081CD5C4:
+ movs r0, 0
+_081CD5C6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CD548
+
+ thumb_func_start sub_81CD5CC
+sub_81CD5CC: @ 81CD5CC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ b _081CD5E4
+_081CD5D6:
+ strb r3, [r4]
+ adds r1, 0x1
+ adds r4, 0x1
+ lsls r0, r2, 16
+ ldr r2, =0xffff0000
+ adds r0, r2
+ lsrs r2, r0, 16
+_081CD5E4:
+ ldrb r3, [r1]
+ adds r0, r3, 0
+ cmp r0, 0xFF
+ bne _081CD5D6
+ adds r1, r2, 0
+ lsls r0, r1, 16
+ ldr r2, =0xffff0000
+ adds r0, r2
+ lsrs r2, r0, 16
+ lsls r1, 16
+ cmp r1, 0
+ ble _081CD612
+ movs r3, 0
+_081CD5FE:
+ strb r3, [r4]
+ adds r4, 0x1
+ adds r1, r2, 0
+ lsls r0, r1, 16
+ ldr r2, =0xffff0000
+ adds r0, r2
+ lsrs r2, r0, 16
+ lsls r1, 16
+ cmp r1, 0
+ bgt _081CD5FE
+_081CD612:
+ movs r0, 0xFF
+ strb r0, [r4]
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CD5CC
+
+ thumb_func_start sub_81CD624
+sub_81CD624: @ 81CD624
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ movs r0, 0x12
+ bl sub_81C763C
+ lsls r4, 2
+ adds r0, r4
+ ldrb r4, [r0, 0x4]
+ mov r8, r4
+ ldrb r6, [r0, 0x5]
+ mov r9, r6
+ movs r0, 0xFC
+ strb r0, [r5]
+ adds r5, 0x1
+ movs r0, 0x4
+ strb r0, [r5]
+ adds r5, 0x1
+ movs r0, 0x8
+ strb r0, [r5]
+ adds r5, 0x1
+ movs r0, 0
+ strb r0, [r5]
+ adds r5, 0x1
+ movs r0, 0x9
+ strb r0, [r5]
+ adds r5, 0x1
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0x2D
+ movs r3, 0
+ bl sub_81D2C68
+ cmp r0, 0
+ beq _081CD690
+ ldr r1, =gText_EggNickname
+ adds r0, r5, 0
+ movs r2, 0
+ movs r3, 0xC
+ bl StringCopyPadded
+ b _081CD80E
+ .pool
+_081CD690:
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0x2
+ adds r3, r5, 0
+ bl sub_81D2C68
+ adds r0, r5, 0
+ bl StringGetEnd10
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0xB
+ movs r3, 0
+ bl sub_81D2C68
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r4, 0xE
+ bne _081CD6E0
+ movs r0, 0x64
+ adds r4, r6, 0
+ muls r4, r0
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r4, 0
+ bl GetMonGender
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _081CD6FE
+ .pool
+_081CD6E0:
+ mov r0, r8
+ mov r1, r9
+ bl GetBoxedMonPtr
+ adds r4, r0, 0
+ bl GetBoxMonGender
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r4, 0
+ bl GetLevelFromBoxMonExp
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+_081CD6FE:
+ cmp r7, 0x1D
+ beq _081CD706
+ cmp r7, 0x20
+ bne _081CD71C
+_081CD706:
+ movs r0, 0xB
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, =gSpeciesNames
+ adds r1, r0
+ adds r0, r5, 0
+ bl StringCompare
+ cmp r0, 0
+ bne _081CD71C
+ movs r6, 0xFF
+_081CD71C:
+ adds r3, r5, 0
+ b _081CD726
+ .pool
+_081CD724:
+ adds r3, 0x1
+_081CD726:
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ bne _081CD724
+ movs r1, 0xFC
+ strb r1, [r3]
+ adds r3, 0x1
+ movs r0, 0x12
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0x3C
+ strb r0, [r3]
+ adds r3, 0x1
+ cmp r6, 0
+ beq _081CD74A
+ cmp r6, 0xFE
+ beq _081CD76E
+ movs r0, 0x77
+ b _081CD790
+_081CD74A:
+ strb r1, [r3]
+ adds r3, 0x1
+ movs r0, 0x1
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0x4
+ strb r0, [r3]
+ adds r3, 0x1
+ strb r1, [r3]
+ adds r3, 0x1
+ movs r0, 0x3
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0x5
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0xB5
+ b _081CD790
+_081CD76E:
+ strb r1, [r3]
+ adds r3, 0x1
+ movs r0, 0x1
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0x6
+ strb r0, [r3]
+ adds r3, 0x1
+ strb r1, [r3]
+ adds r3, 0x1
+ movs r0, 0x3
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0x7
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0xB6
+_081CD790:
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0xFC
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0x4
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0x8
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r5, 0
+ strb r5, [r3]
+ adds r3, 0x1
+ movs r0, 0x9
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0xBA
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0xF9
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0x5
+ strb r0, [r3]
+ adds r3, 0x1
+ adds r4, r3, 0
+ adds r0, r4, 0
+ mov r1, r8
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r3, r0, 0
+ subs r4, r3, r4
+ lsls r4, 16
+ lsrs r4, 16
+ strb r5, [r3]
+ adds r3, 0x1
+ mov r0, r10
+ cmp r0, 0
+ bne _081CD808
+ movs r0, 0x3
+ subs r0, r4
+ lsls r0, 16
+ ldr r1, =0xffff0000
+ adds r0, r1
+ lsrs r4, r0, 16
+ ldr r0, =0x0000ffff
+ cmp r4, r0
+ beq _081CD808
+ movs r2, 0
+ adds r1, r0, 0
+_081CD7FA:
+ strb r2, [r3]
+ adds r3, 0x1
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r1
+ bne _081CD7FA
+_081CD808:
+ movs r0, 0xFF
+ strb r0, [r3]
+ adds r0, r3, 0
+_081CD80E:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CD624
+
+ thumb_func_start sub_81CD824
+sub_81CD824: @ 81CD824
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ movs r0, 0xB
+ bl sub_81C763C
+ adds r5, r0, 0
+ movs r0, 0x12
+ bl sub_81C763C
+ adds r7, r0, 0
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r4, r0, 16
+ bl sub_81CDD5C
+ cmp r0, 0
+ beq _081CD85A
+ ldrh r2, [r7]
+ cmp r4, r2
+ bne _081CD862
+ b _081CD900
+_081CD85A:
+ ldrh r0, [r7]
+ subs r0, 0x1
+ cmp r4, r0
+ beq _081CD900
+_081CD862:
+ lsls r0, r6, 6
+ ldr r1, =0x00006368
+ adds r0, r1
+ adds r0, r5, r0
+ mov r2, r8
+ lsls r4, r2, 16
+ lsrs r1, r4, 16
+ movs r2, 0
+ bl sub_81CD624
+ asrs r4, 14
+ adds r4, r7, r4
+ ldrb r3, [r4, 0x4]
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r4, r0, 3
+ ldr r1, =0x00006320
+ adds r0, r5, r1
+ adds r0, r4
+ movs r2, 0
+ movs r1, 0xFC
+ strb r1, [r0]
+ ldr r1, =0x00006321
+ adds r0, r5, r1
+ adds r0, r4
+ movs r1, 0x4
+ strb r1, [r0]
+ ldr r1, =0x00006322
+ adds r0, r5, r1
+ adds r0, r4
+ movs r1, 0x8
+ strb r1, [r0]
+ ldr r1, =0x00006323
+ adds r0, r5, r1
+ adds r0, r4
+ strb r2, [r0]
+ ldr r2, =0x00006324
+ adds r0, r5, r2
+ adds r0, r4
+ movs r1, 0x9
+ strb r1, [r0]
+ cmp r3, 0xE
+ bne _081CD8E4
+ adds r0, r4, r5
+ ldr r1, =0x00006325
+ adds r0, r1
+ ldr r1, =gUnknown_085EBFCE
+ b _081CD8F4
+ .pool
+_081CD8E4:
+ adds r4, r5
+ ldr r2, =0x00006325
+ adds r4, r2
+ adds r0, r3, 0
+ bl sav3_get_box_name
+ adds r1, r0, 0
+ adds r0, r4, 0
+_081CD8F4:
+ movs r2, 0x8
+ bl sub_81CD5CC
+ b _081CD95C
+ .pool
+_081CD900:
+ movs r1, 0
+ lsls r4, r6, 6
+ lsls r0, r6, 1
+ mov r8, r0
+ adds r3, r4, 0
+ ldr r0, =0x00006368
+ adds r2, r5, r0
+ movs r7, 0
+_081CD910:
+ adds r0, r1, r3
+ adds r0, r2, r0
+ strb r7, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xB
+ bls _081CD910
+ adds r1, r4
+ ldr r2, =0x00006368
+ adds r0, r5, r2
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ movs r1, 0
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r3, r0, 3
+ ldr r0, =0x00006320
+ adds r2, r5, r0
+ movs r4, 0
+_081CD93A:
+ adds r0, r1, r3
+ adds r0, r2, r0
+ strb r4, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x7
+ bls _081CD93A
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1, r0
+ ldr r2, =0x00006320
+ adds r1, r5, r2
+ adds r1, r0
+ movs r0, 0xFF
+ strb r0, [r1]
+_081CD95C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CD824
+
+ thumb_func_start sub_81CD970
+sub_81CD970: @ 81CD970
+ push {r4-r7,lr}
+ movs r0, 0xB
+ bl sub_81C763C
+ adds r7, r0, 0
+ ldr r1, =0x000006ac
+ movs r0, 0x12
+ bl sub_81C761C
+ adds r6, r0, 0
+ movs r0, 0xC6
+ lsls r0, 7
+ adds r1, r7, r0
+ movs r0, 0
+ strb r0, [r1]
+ movs r4, 0
+ movs r5, 0
+ b _081CD9C4
+ .pool
+_081CD998:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ adds r2, r0, 0
+ cmp r2, 0
+ bne _081CD9BE
+ lsls r1, r5, 2
+ adds r1, r6, r1
+ movs r0, 0xE
+ strb r0, [r1, 0x4]
+ strb r4, [r1, 0x5]
+ strh r2, [r1, 0x6]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_081CD9BE:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_081CD9C4:
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcc _081CD998
+ lsls r0, r5, 2
+ adds r0, r6, r0
+ movs r1, 0
+ strb r1, [r0, 0x4]
+ strb r1, [r0, 0x5]
+ movs r2, 0
+ strh r1, [r0, 0x6]
+ strh r1, [r6, 0x2]
+ adds r0, r5, 0x1
+ strh r0, [r6]
+ ldr r1, =0x0000678a
+ adds r0, r7, r1
+ strb r2, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CD970
+
+ thumb_func_start sub_81CD9F8
+sub_81CD9F8: @ 81CD9F8
+ push {lr}
+ movs r0, 0xB
+ bl sub_81C763C
+ movs r1, 0xC6
+ lsls r1, 7
+ adds r2, r0, r1
+ movs r3, 0
+ movs r1, 0x1
+ strb r1, [r2]
+ ldr r1, =0x0000678a
+ adds r0, r1
+ strb r3, [r0]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CD9F8
+
+ thumb_func_start sub_81CDA1C
+sub_81CDA1C: @ 81CDA1C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ movs r0, 0xB
+ bl sub_81C763C
+ mov r8, r0
+ movs r0, 0x12
+ bl sub_81C763C
+ adds r4, r0, 0
+ lsls r0, r6, 16
+ asrs r5, r0, 16
+ bl sub_81CDD5C
+ cmp r0, 0
+ beq _081CDA52
+ ldrh r0, [r4]
+ cmp r5, r0
+ bne _081CDA5A
+ b _081CDB48
+_081CDA52:
+ ldrh r0, [r4]
+ subs r0, 0x1
+ cmp r5, r0
+ beq _081CDB48
+_081CDA5A:
+ lsls r0, r6, 16
+ asrs r0, 14
+ adds r0, r4, r0
+ ldrb r6, [r0, 0x4]
+ ldrb r7, [r0, 0x5]
+ adds r0, r6, 0
+ adds r1, r7, 0
+ movs r2, 0x16
+ movs r3, 0
+ bl sub_81D2C68
+ mov r1, r9
+ lsls r5, r1, 2
+ adds r4, r5, r1
+ ldr r1, =0x00006428
+ add r1, r8
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r6, 0
+ adds r1, r7, 0
+ movs r2, 0x2F
+ movs r3, 0
+ bl sub_81D2C68
+ ldr r1, =0x00006429
+ add r1, r8
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r6, 0
+ adds r1, r7, 0
+ movs r2, 0x21
+ movs r3, 0
+ bl sub_81D2C68
+ ldr r1, =0x0000642a
+ add r1, r8
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r6, 0
+ adds r1, r7, 0
+ movs r2, 0x18
+ movs r3, 0
+ bl sub_81D2C68
+ ldr r1, =0x0000642b
+ add r1, r8
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r6, 0
+ adds r1, r7, 0
+ movs r2, 0x17
+ movs r3, 0
+ bl sub_81D2C68
+ ldr r1, =0x0000642c
+ add r1, r8
+ adds r1, r4
+ strb r0, [r1]
+ movs r0, 0xCF
+ lsls r0, 7
+ add r0, r8
+ mov r2, r9
+ adds r4, r0, r2
+ adds r0, r6, 0
+ adds r1, r7, 0
+ movs r2, 0x30
+ movs r3, 0
+ bl sub_81D2C68
+ cmp r0, 0xFF
+ beq _081CDB10
+ adds r0, r6, 0
+ adds r1, r7, 0
+ movs r2, 0x30
+ movs r3, 0
+ bl sub_81D2C68
+ movs r1, 0x1D
+ bl __udivsi3
+ b _081CDB12
+ .pool
+_081CDB10:
+ movs r0, 0x9
+_081CDB12:
+ strb r0, [r4]
+ adds r0, r6, 0
+ adds r1, r7, 0
+ movs r2, 0x8
+ movs r3, 0
+ bl sub_81D2C68
+ ldr r1, =0x00006783
+ add r1, r8
+ add r1, r9
+ strb r0, [r1]
+ mov r0, r9
+ adds r1, r5, r0
+ ldr r2, =0x00006428
+ adds r0, r1, r2
+ add r0, r8
+ lsls r1, 2
+ adds r2, 0x14
+ adds r1, r2
+ add r1, r8
+ bl sub_81D2754
+ b _081CDB80
+ .pool
+_081CDB48:
+ movs r2, 0
+ mov r0, r9
+ lsls r5, r0, 2
+ add r5, r9
+ ldr r4, =0x00006428
+ add r4, r8
+ lsls r3, r5, 2
+ mov r9, r2
+ ldr r7, =0x0000643c
+ movs r6, 0x9B
+_081CDB5C:
+ adds r0, r2, r5
+ adds r0, r4, r0
+ mov r1, r9
+ strb r1, [r0]
+ lsls r0, r2, 2
+ adds r0, r3
+ add r0, r8
+ adds r1, r0, r7
+ strh r6, [r1]
+ ldr r1, =0x0000643e
+ adds r0, r1
+ movs r1, 0x5B
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x4
+ bls _081CDB5C
+_081CDB80:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CDA1C
+
+ thumb_func_start sub_81CDB98
+sub_81CDB98: @ 81CDB98
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ movs r0, 0xB
+ bl sub_81C763C
+ adds r7, r0, 0
+ movs r0, 0x12
+ bl sub_81C763C
+ adds r4, r0, 0
+ lsls r0, r6, 16
+ asrs r5, r0, 16
+ bl sub_81CDD5C
+ cmp r0, 0
+ beq _081CDBCC
+ ldrh r0, [r4]
+ b _081CDBD0
+_081CDBCC:
+ ldrh r0, [r4]
+ subs r0, 0x1
+_081CDBD0:
+ cmp r5, r0
+ beq _081CDC3E
+ lsls r0, r6, 16
+ asrs r0, 14
+ adds r0, r4, r0
+ ldrb r5, [r0, 0x4]
+ ldrb r6, [r0, 0x5]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x41
+ movs r3, 0
+ bl sub_81D2C68
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl sub_81D2C68
+ mov r8, r0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_81D2C68
+ adds r5, r0, 0
+ lsls r0, r4, 3
+ ldr r1, =gMonFrontPicTable
+ adds r0, r1
+ mov r2, r9
+ lsls r1, r2, 13
+ movs r2, 0xC0
+ lsls r2, 2
+ adds r1, r2
+ adds r1, r7, r1
+ movs r2, 0x1
+ str r2, [sp]
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl LoadSpecialPokePic
+ adds r0, r4, 0
+ mov r1, r8
+ adds r2, r5, 0
+ bl species_and_otid_get_pal
+ mov r2, r9
+ lsls r1, r2, 7
+ adds r1, r7, r1
+ bl LZ77UnCompWram
+_081CDC3E:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CDB98
+
+ thumb_func_start sub_81CDC50
+sub_81CDC50: @ 81CDC50
+ push {lr}
+ movs r0, 0x12
+ bl sub_81C763C
+ ldrh r0, [r0]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CDC50
+
+ thumb_func_start sub_81CDC60
+sub_81CDC60: @ 81CDC60
+ push {lr}
+ movs r0, 0x12
+ bl sub_81C763C
+ ldrh r0, [r0, 0x2]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CDC60
+
+ thumb_func_start sub_81CDC70
+sub_81CDC70: @ 81CDC70
+ push {lr}
+ movs r0, 0xB
+ bl sub_81C763C
+ ldr r1, =0x00006428
+ adds r0, r1
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CDC70
+
+ thumb_func_start sub_81CDC84
+sub_81CDC84: @ 81CDC84
+ push {lr}
+ movs r0, 0xB
+ bl sub_81C763C
+ ldr r1, =0x00006786
+ adds r0, r1
+ ldrb r0, [r0]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CDC84
+
+ thumb_func_start sub_81CDC9C
+sub_81CDC9C: @ 81CDC9C
+ push {lr}
+ movs r0, 0xB
+ bl sub_81C763C
+ ldr r1, =0x00006302
+ adds r0, r1
+ ldrb r0, [r0]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CDC9C
+
+ thumb_func_start sub_81CDCB4
+sub_81CDCB4: @ 81CDCB4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0xB
+ bl sub_81C763C
+ lsls r4, 13
+ movs r1, 0xC0
+ lsls r1, 2
+ adds r4, r1
+ adds r0, r4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CDCB4
+
+ thumb_func_start sub_81CDCD4
+sub_81CDCD4: @ 81CDCD4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0xB
+ bl sub_81C763C
+ lsls r4, 7
+ adds r0, r4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CDCD4
+
+ thumb_func_start sub_81CDCEC
+sub_81CDCEC: @ 81CDCEC
+ push {lr}
+ movs r0, 0xB
+ bl sub_81C763C
+ ldr r1, =0x00006789
+ adds r0, r1
+ ldrb r0, [r0]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CDCEC
+
+ thumb_func_start sub_81CDD04
+sub_81CDD04: @ 81CDD04
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0xB
+ bl sub_81C763C
+ lsls r4, 6
+ ldr r1, =0x00006368
+ adds r4, r1
+ adds r0, r4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CDD04
+
+ thumb_func_start sub_81CDD24
+sub_81CDD24: @ 81CDD24
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0xB
+ bl sub_81C763C
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 3
+ ldr r2, =0x00006320
+ adds r1, r2
+ adds r0, r1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CDD24
+
+ thumb_func_start sub_81CDD48
+sub_81CDD48: @ 81CDD48
+ push {lr}
+ movs r0, 0x12
+ bl sub_81C763C
+ ldrh r1, [r0, 0x2]
+ lsls r1, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x6]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CDD48
+
+ thumb_func_start sub_81CDD5C
+sub_81CDD5C: @ 81CDD5C
+ push {lr}
+ movs r0, 0xB
+ bl sub_81C763C
+ movs r1, 0xC6
+ lsls r1, 7
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _081CDD74
+ movs r0, 0
+ b _081CDD76
+_081CDD74:
+ movs r0, 0x1
+_081CDD76:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CDD5C
+
+ thumb_func_start sub_81CDD7C
+sub_81CDD7C: @ 81CDD7C
+ push {lr}
+ movs r0, 0xB
+ bl sub_81C763C
+ adds r2, r0, 0
+ movs r1, 0xC6
+ lsls r1, 7
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _081CDD96
+ movs r0, 0
+ b _081CDDA6
+_081CDD96:
+ ldr r3, =0x00006786
+ adds r0, r2, r3
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ subs r3, 0x3
+ adds r0, r2, r3
+ adds r0, r1
+ ldrb r0, [r0]
+_081CDDA6:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CDD7C
+
+ thumb_func_start sub_81CDDB0
+sub_81CDDB0: @ 81CDDB0
+ push {lr}
+ movs r0, 0xB
+ bl sub_81C763C
+ ldr r2, =0x00006786
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ subs r2, 0x6
+ adds r0, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CDDB0
+
+ thumb_func_start sub_81CDDD4
+sub_81CDDD4: @ 81CDDD4
+ push {r4,lr}
+ ldr r1, =0x000038ac
+ movs r0, 0xC
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081CDE24
+ ldr r0, =0x00001816
+ adds r1, r4, r0
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r0, =sub_81CDE94
+ movs r1, 0x1
+ bl sub_81C7078
+ str r0, [r4]
+ ldr r0, =0x00001810
+ adds r1, r4, r0
+ ldr r0, =sub_81CDE80
+ str r0, [r1]
+ ldr r0, =0x00002908
+ adds r1, r4, r0
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ b _081CDE26
+ .pool
+_081CDE24:
+ movs r0, 0
+_081CDE26:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CDDD4
+
+ thumb_func_start sub_81CDE2C
+sub_81CDE2C: @ 81CDE2C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0xC
+ bl sub_81C763C
+ adds r5, r0, 0
+ ldr r0, =gUnknown_08623384
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ movs r1, 0x1
+ bl sub_81C7078
+ str r0, [r5]
+ ldr r0, =0x00001810
+ adds r5, r0
+ ldr r0, =sub_81CDE80
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CDE2C
+
+ thumb_func_start sub_81CDE64
+sub_81CDE64: @ 81CDE64
+ push {lr}
+ movs r0, 0xC
+ bl sub_81C763C
+ ldr r1, =0x00001810
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CDE64
+
+ thumb_func_start sub_81CDE80
+sub_81CDE80: @ 81CDE80
+ push {lr}
+ movs r0, 0xC
+ bl sub_81C763C
+ ldr r0, [r0]
+ bl sub_81C70D8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CDE80
+
+ thumb_func_start sub_81CDE94
+sub_81CDE94: @ 81CDE94
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ movs r0, 0xC
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x14
+ bls _081CDEA8
+ b _081CE2C4
+_081CDEA8:
+ lsls r0, r4, 2
+ ldr r1, =_081CDEB8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081CDEB8:
+ .4byte _081CDF0C
+ .4byte _081CDF18
+ .4byte _081CDF94
+ .4byte _081CDFB8
+ .4byte _081CE030
+ .4byte _081CE074
+ .4byte _081CE0B0
+ .4byte _081CE118
+ .4byte _081CE120
+ .4byte _081CE126
+ .4byte _081CE136
+ .4byte _081CE146
+ .4byte _081CE156
+ .4byte _081CE16C
+ .4byte _081CE1C8
+ .4byte _081CE1EC
+ .4byte _081CE218
+ .4byte _081CE23C
+ .4byte _081CE24A
+ .4byte _081CE25A
+ .4byte _081CE262
+_081CDF0C:
+ bl sub_81CD3C4
+ cmp r0, 0x1
+ beq _081CDF16
+ b _081CE2C0
+_081CDF16:
+ b _081CDFB0
+_081CDF18:
+ ldr r0, =gUnknown_08623358
+ movs r1, 0x3
+ bl sub_81C7B54
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ ldr r1, =0x00007940
+ movs r0, 0
+ bl SetGpuReg
+ ldr r1, =0x00000844
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, =0x0000040b
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r1, =gUnknown_08DC6548
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x3
+ b _081CDFA8
+ .pool
+_081CDF94:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _081CDFA2
+ b _081CE2C0
+_081CDFA2:
+ ldr r1, =gUnknown_08623228
+ str r0, [sp]
+ movs r0, 0x2
+_081CDFA8:
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+_081CDFB0:
+ movs r0, 0
+ b _081CE2C6
+ .pool
+_081CDFB8:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ cmp r0, 0
+ beq _081CDFC4
+ b _081CE2C0
+_081CDFC4:
+ ldr r0, =gUnknown_08DC6DFC
+ adds r4, r5, 0x4
+ adds r1, r4, 0
+ bl LZ77UnCompVram
+ movs r0, 0x3
+ adds r1, r4, 0
+ bl SetBgTilemapBuffer
+ bl sub_81CDD5C
+ cmp r0, 0x1
+ bne _081CDFF2
+ ldr r1, =gUnknown_08DC7070
+ movs r0, 0x9
+ str r0, [sp]
+ movs r0, 0x4
+ str r0, [sp, 0x4]
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0x5
+ bl CopyToBgTilemapBufferRect
+_081CDFF2:
+ movs r0, 0x3
+ bl CopyBgTilemapBufferToVram
+ ldr r0, =gUnknown_08DC6528
+ movs r1, 0x10
+ movs r2, 0x20
+ bl sub_81C7944
+ ldr r0, =gUnknown_08623208
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl sub_81C7944
+ ldr r0, =0x00001814
+ adds r1, r5, r0
+ ldr r0, =0x0000ffb0
+ strh r0, [r1]
+ b _081CDFB0
+ .pool
+_081CE030:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ cmp r0, 0
+ beq _081CE03C
+ b _081CE2C0
+_081CE03C:
+ ldr r0, =gUnknown_0862323C
+ ldr r1, =0x00001004
+ adds r4, r5, r1
+ adds r1, r4, 0
+ bl LZ77UnCompVram
+ movs r0, 0x2
+ adds r1, r4, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x2
+ bl CopyBgTilemapBufferToVram
+ ldr r0, =gUnknown_086231E8
+ movs r1, 0x30
+ movs r2, 0x20
+ bl sub_81C7944
+ movs r0, 0x2
+ bl sub_81D21DC
+ b _081CDFB0
+ .pool
+_081CE074:
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_8199DF0
+ movs r0, 0x1
+ movs r1, 0x11
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_8199DF0
+ movs r0, 0
+ str r0, [sp, 0x8]
+ ldr r2, =0x00000804
+ adds r4, r5, r2
+ ldr r2, =0x05000200
+ add r0, sp, 0x8
+ adds r1, r4, 0
+ bl CpuSet
+ movs r0, 0x1
+ adds r1, r4, 0
+ bl SetBgTilemapBuffer
+ b _081CDFB0
+ .pool
+_081CE0B0:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ cmp r0, 0
+ beq _081CE0BC
+ b _081CE2C0
+_081CE0BC:
+ ldr r0, =gUnknown_08623364
+ bl AddWindow
+ movs r2, 0xC1
+ lsls r2, 5
+ adds r1, r5, r2
+ strb r0, [r1]
+ bl sub_81CDD5C
+ cmp r0, 0x1
+ bne _081CE0F6
+ ldr r0, =gUnknown_0862336C
+ bl AddWindow
+ ldr r2, =0x00001821
+ adds r1, r5, r2
+ strb r0, [r1]
+ ldr r0, =gUnknown_08623374
+ bl AddWindow
+ ldr r2, =0x00001822
+ adds r1, r5, r2
+ strb r0, [r1]
+ ldr r0, =gUnknown_0862337C
+ bl AddWindow
+ ldr r2, =0x00001823
+ adds r1, r5, r2
+ strb r0, [r1]
+_081CE0F6:
+ bl DeactivateAllTextPrinters
+ b _081CDFB0
+ .pool
+_081CE118:
+ movs r0, 0
+ bl sub_81CED30
+ b _081CDFB0
+_081CE120:
+ bl sub_81CE9E4
+ b _081CDFB0
+_081CE126:
+ bl sub_81CDD5C
+ cmp r0, 0x1
+ beq _081CE130
+ b _081CDFB0
+_081CE130:
+ bl sub_81CE934
+ b _081CDFB0
+_081CE136:
+ bl sub_81CDC84
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 8
+ lsrs r1, 16
+ movs r0, 0
+ b _081CE164
+_081CE146:
+ bl sub_81CDC84
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 8
+ lsrs r1, 16
+ movs r0, 0x1
+ b _081CE164
+_081CE156:
+ bl sub_81CDC84
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 8
+ lsrs r1, 16
+ movs r0, 0x2
+_081CE164:
+ movs r2, 0x1
+ bl sub_81CE754
+ b _081CDFB0
+_081CE16C:
+ bl sub_81CDC84
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 8
+ lsrs r1, 16
+ movs r0, 0x3
+ movs r2, 0x1
+ bl sub_81CE754
+ cmp r0, 0x1
+ beq _081CE186
+ b _081CE2C0
+_081CE186:
+ movs r1, 0xC1
+ lsls r1, 5
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ bl PutWindowTilemap
+ bl sub_81CDD5C
+ cmp r0, 0x1
+ beq _081CE19C
+ b _081CDFB0
+_081CE19C:
+ ldr r2, =0x00001821
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ bl PutWindowTilemap
+ ldr r1, =0x00001822
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ bl PutWindowTilemap
+ ldr r2, =0x00001823
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ bl PutWindowTilemap
+ b _081CDFB0
+ .pool
+_081CE1C8:
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x2
+ bl HideBg
+ movs r0, 0x3
+ bl ShowBg
+ bl sub_81CDD5C
+ cmp r0, 0x1
+ beq _081CE1E4
+ b _081CDFB0
+_081CE1E4:
+ movs r0, 0x4
+ bl sub_81C7BA4
+ b _081CDFB0
+_081CE1EC:
+ movs r0, 0x1
+ bl sub_81C7AC0
+ bl sub_81CDD5C
+ cmp r0, 0
+ beq _081CE1FC
+ b _081CDFB0
+_081CE1FC:
+ movs r0, 0x6
+ bl sub_81C7DFC
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_81C7FA0
+ movs r0, 0x6
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_81C7FA0
+ b _081CDFB0
+_081CE218:
+ bl sub_81C7B34
+ cmp r0, 0
+ bne _081CE2C0
+ bl sub_81CDD5C
+ cmp r0, 0
+ bne _081CE230
+ bl sub_81C8010
+ cmp r0, 0
+ bne _081CE2C0
+_081CE230:
+ ldr r0, =sub_81CEE44
+ bl c3args_set_0toR1_1to0
+ b _081CDFB0
+ .pool
+_081CE23C:
+ bl sub_81CEE90
+ bl sub_81CDC70
+ bl sub_81D20AC
+ b _081CDFB0
+_081CE24A:
+ bl sub_81CDC70
+ bl sub_81D20BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CE2C0
+ b _081CDFB0
+_081CE25A:
+ movs r0, 0x1
+ bl sub_81CEE74
+ b _081CDFB0
+_081CE262:
+ bl sub_81CDC70
+ ldr r2, =0x00001814
+ adds r1, r5, r2
+ bl sub_81D3178
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CE2C0
+ ldr r0, =0x000028e0
+ adds r6, r5, r0
+ adds r0, r6, 0
+ bl sub_81D3464
+ bl sub_81CDD5C
+ cmp r0, 0x1
+ beq _081CE298
+ bl sub_81CDC60
+ adds r4, r0, 0
+ bl sub_81CDC50
+ lsls r4, 16
+ lsls r0, 16
+ cmp r4, r0
+ beq _081CE2C4
+_081CE298:
+ ldr r1, =0x00001816
+ adds r0, r5, r1
+ ldrb r4, [r0]
+ bl sub_81CDDB0
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_81D3480
+ b _081CE2C4
+ .pool
+_081CE2C0:
+ movs r0, 0x2
+ b _081CE2C6
+_081CE2C4:
+ movs r0, 0x4
+_081CE2C6:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CDE94
+
+ thumb_func_start sub_81CE2D0
+sub_81CE2D0: @ 81CE2D0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0xC
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081CE308
+ cmp r4, 0x1
+ bgt _081CE2EA
+ cmp r4, 0
+ beq _081CE2F4
+ b _081CE374
+_081CE2EA:
+ cmp r4, 0x2
+ beq _081CE328
+ cmp r4, 0x3
+ beq _081CE33E
+ b _081CE374
+_081CE2F4:
+ bl sub_81CEEC8
+ ldr r1, =0x000028e0
+ adds r0, r5, r1
+ bl sub_81D3520
+ movs r0, 0x1
+ b _081CE376
+ .pool
+_081CE308:
+ bl sub_81CDC70
+ ldr r2, =0x00001814
+ adds r1, r5, r2
+ bl sub_81D31A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CE34E
+ movs r0, 0
+ bl sub_81CEE74
+ movs r0, 0x1
+ b _081CE376
+ .pool
+_081CE328:
+ movs r0, 0
+ bl sub_81C7AC0
+ bl sub_81CDD5C
+ cmp r0, 0
+ bne _081CE33A
+ bl sub_81C78A0
+_081CE33A:
+ movs r0, 0
+ b _081CE376
+_081CE33E:
+ bl sub_81C7B34
+ cmp r0, 0
+ bne _081CE34E
+ bl sub_81C78C0
+ cmp r0, 0
+ beq _081CE352
+_081CE34E:
+ movs r0, 0x2
+ b _081CE376
+_081CE352:
+ ldr r1, =0x000028e0
+ adds r0, r5, r1
+ bl sub_81D354C
+ movs r0, 0x1
+ bl HideBg
+ movs r0, 0x2
+ bl HideBg
+ movs r0, 0x3
+ bl HideBg
+ movs r0, 0x1
+ b _081CE376
+ .pool
+_081CE374:
+ movs r0, 0x4
+_081CE376:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CE2D0
+
+ thumb_func_start sub_81CE37C
+sub_81CE37C: @ 81CE37C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r0, 0xC
+ bl sub_81C763C
+ adds r6, r0, 0
+ bl sub_81CDC70
+ adds r2, r0, 0
+ cmp r4, 0x9
+ bls _081CE394
+ b _081CE4D0
+_081CE394:
+ lsls r0, r4, 2
+ ldr r1, =_081CE3A4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081CE3A4:
+ .4byte _081CE3CC
+ .4byte _081CE3D0
+ .4byte _081CE3DA
+ .4byte _081CE3F0
+ .4byte _081CE3F8
+ .4byte _081CE418
+ .4byte _081CE428
+ .4byte _081CE438
+ .4byte _081CE44E
+ .4byte _081CE468
+_081CE3CC:
+ movs r0, 0
+ b _081CE3D2
+_081CE3D0:
+ movs r0, 0x1
+_081CE3D2:
+ bl sub_81CD548
+_081CE3D6:
+ movs r0, 0x1
+ b _081CE4D2
+_081CE3DA:
+ movs r0, 0x2
+ bl sub_81CD548
+ ldr r1, =0x000028e0
+ adds r0, r6, r1
+ bl sub_81D3520
+ b _081CE3D6
+ .pool
+_081CE3F0:
+ adds r0, r2, 0
+ bl sub_81D2074
+ b _081CE3D6
+_081CE3F8:
+ ldr r1, =0x00001814
+ adds r0, r6, r1
+ bl sub_81D3150
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CE4CC
+ bl sub_81CDC84
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81CED30
+ b _081CE3D6
+ .pool
+_081CE418:
+ bl sub_81CDC84
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 8
+ lsrs r1, 16
+ movs r0, 0
+ b _081CE446
+_081CE428:
+ bl sub_81CDC84
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 8
+ lsrs r1, 16
+ movs r0, 0x1
+ b _081CE446
+_081CE438:
+ bl sub_81CDC84
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 8
+ lsrs r1, 16
+ movs r0, 0x2
+_081CE446:
+ movs r2, 0
+ bl sub_81CE754
+ b _081CE3D6
+_081CE44E:
+ bl sub_81CDC84
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 8
+ lsrs r1, 16
+ movs r0, 0x3
+ movs r2, 0
+ bl sub_81CE754
+ cmp r0, 0x1
+ beq _081CE3D6
+ b _081CE4CC
+_081CE468:
+ bl sub_81CDC70
+ adds r2, r0, 0
+ ldr r0, =0x00001814
+ adds r1, r6, r0
+ adds r0, r2, 0
+ bl sub_81D3178
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CE4CC
+ ldr r1, =0x000028e0
+ adds r0, r6, r1
+ bl sub_81D3464
+ bl sub_81CDD5C
+ cmp r0, 0x1
+ beq _081CE4A0
+ bl sub_81CDC60
+ adds r4, r0, 0
+ bl sub_81CDC50
+ lsls r4, 16
+ lsls r0, 16
+ cmp r4, r0
+ beq _081CE3D6
+_081CE4A0:
+ ldr r0, =0x000028e0
+ adds r5, r6, r0
+ ldr r1, =0x00001816
+ adds r0, r6, r1
+ ldrb r4, [r0]
+ bl sub_81CDDB0
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81D3480
+ b _081CE3D6
+ .pool
+_081CE4CC:
+ movs r0, 0x2
+ b _081CE4D2
+_081CE4D0:
+ movs r0, 0x4
+_081CE4D2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CE37C
+
+ thumb_func_start sub_81CE4D8
+sub_81CE4D8: @ 81CE4D8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0xC
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x8
+ bhi _081CE5DC
+ lsls r0, r4, 2
+ ldr r1, =_081CE4F8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081CE4F8:
+ .4byte _081CE51C
+ .4byte _081CE520
+ .4byte _081CE524
+ .4byte _081CE52E
+ .4byte _081CE53E
+ .4byte _081CE54E
+ .4byte _081CE55E
+ .4byte _081CE576
+ .4byte _081CE592
+_081CE51C:
+ movs r0, 0
+ b _081CE526
+_081CE520:
+ movs r0, 0x1
+ b _081CE526
+_081CE524:
+ movs r0, 0x2
+_081CE526:
+ bl sub_81CD548
+ movs r0, 0x1
+ b _081CE5DE
+_081CE52E:
+ bl sub_81CDC84
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81CED30
+ movs r0, 0x1
+ b _081CE5DE
+_081CE53E:
+ bl sub_81CDC84
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 8
+ lsrs r1, 16
+ movs r0, 0
+ b _081CE56C
+_081CE54E:
+ bl sub_81CDC84
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 8
+ lsrs r1, 16
+ movs r0, 0x1
+ b _081CE56C
+_081CE55E:
+ bl sub_81CDC84
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 8
+ lsrs r1, 16
+ movs r0, 0x2
+_081CE56C:
+ movs r2, 0
+ bl sub_81CE754
+ movs r0, 0x1
+ b _081CE5DE
+_081CE576:
+ bl sub_81CDC84
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 8
+ lsrs r1, 16
+ movs r0, 0x3
+ movs r2, 0
+ bl sub_81CE754
+ cmp r0, 0x1
+ bne _081CE5D8
+ movs r0, 0x1
+ b _081CE5DE
+_081CE592:
+ bl sub_81CDC70
+ ldr r2, =0x00001814
+ adds r1, r5, r2
+ bl sub_81D3178
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CE5D8
+ ldr r0, =0x000028e0
+ adds r4, r5, r0
+ adds r0, r4, 0
+ bl sub_81D3464
+ ldr r1, =0x00001816
+ adds r0, r5, r1
+ ldrb r5, [r0]
+ bl sub_81CDDB0
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_81D3480
+ movs r0, 0x1
+ b _081CE5DE
+ .pool
+_081CE5D8:
+ movs r0, 0x2
+ b _081CE5DE
+_081CE5DC:
+ movs r0, 0x4
+_081CE5DE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CE4D8
+
+ thumb_func_start sub_81CE5E4
+sub_81CE5E4: @ 81CE5E4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0xC
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x7
+ bhi _081CE6B2
+ lsls r0, r4, 2
+ ldr r1, =_081CE604
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081CE604:
+ .4byte _081CE624
+ .4byte _081CE628
+ .4byte _081CE632
+ .4byte _081CE648
+ .4byte _081CE660
+ .4byte _081CE670
+ .4byte _081CE680
+ .4byte _081CE696
+_081CE624:
+ movs r0, 0
+ b _081CE62A
+_081CE628:
+ movs r0, 0x1
+_081CE62A:
+ bl sub_81CD548
+_081CE62E:
+ movs r0, 0x1
+ b _081CE6B4
+_081CE632:
+ movs r0, 0x2
+ bl sub_81CD548
+ ldr r1, =0x000028e0
+ adds r0, r5, r1
+ bl sub_81D3520
+ b _081CE62E
+ .pool
+_081CE648:
+ bl sub_81CDC70
+ ldr r2, =0x00001814
+ adds r1, r5, r2
+ bl sub_81D31A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _081CE62E
+ b _081CE6AE
+ .pool
+_081CE660:
+ bl sub_81CDC84
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 8
+ lsrs r1, 16
+ movs r0, 0
+ b _081CE68E
+_081CE670:
+ bl sub_81CDC84
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 8
+ lsrs r1, 16
+ movs r0, 0x1
+ b _081CE68E
+_081CE680:
+ bl sub_81CDC84
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 8
+ lsrs r1, 16
+ movs r0, 0x2
+_081CE68E:
+ movs r2, 0
+ bl sub_81CE754
+ b _081CE62E
+_081CE696:
+ bl sub_81CDC84
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 8
+ lsrs r1, 16
+ movs r0, 0x3
+ movs r2, 0
+ bl sub_81CE754
+ cmp r0, 0x1
+ beq _081CE62E
+_081CE6AE:
+ movs r0, 0x2
+ b _081CE6B4
+_081CE6B2:
+ movs r0, 0x4
+_081CE6B4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CE5E4
+
+ thumb_func_start sub_81CE6BC
+sub_81CE6BC: @ 81CE6BC
+ push {lr}
+ cmp r0, 0x1
+ beq _081CE6E6
+ cmp r0, 0x1
+ bgt _081CE6CC
+ cmp r0, 0
+ beq _081CE6D2
+ b _081CE6FA
+_081CE6CC:
+ cmp r0, 0x2
+ beq _081CE6EE
+ b _081CE6FA
+_081CE6D2:
+ bl sub_81CDD7C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl sub_811FAA4
+_081CE6E2:
+ movs r0, 0x1
+ b _081CE6FC
+_081CE6E6:
+ movs r0, 0x5
+ bl sub_81C7BA4
+ b _081CE6E2
+_081CE6EE:
+ bl sub_81C7BE8
+ cmp r0, 0x1
+ bne _081CE6E2
+ movs r0, 0x2
+ b _081CE6FC
+_081CE6FA:
+ movs r0, 0x4
+_081CE6FC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CE6BC
+
+ thumb_func_start sub_81CE700
+sub_81CE700: @ 81CE700
+ push {lr}
+ cmp r0, 0x1
+ beq _081CE71E
+ cmp r0, 0x1
+ bgt _081CE710
+ cmp r0, 0
+ beq _081CE716
+ b _081CE732
+_081CE710:
+ cmp r0, 0x2
+ beq _081CE726
+ b _081CE732
+_081CE716:
+ bl sub_811FAF8
+_081CE71A:
+ movs r0, 0x1
+ b _081CE734
+_081CE71E:
+ movs r0, 0x4
+ bl sub_81C7BA4
+ b _081CE71A
+_081CE726:
+ bl sub_81C7BE8
+ cmp r0, 0x1
+ bne _081CE71A
+ movs r0, 0x2
+ b _081CE734
+_081CE732:
+ movs r0, 0x4
+_081CE734:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CE700
+
+ thumb_func_start sub_81CE738
+sub_81CE738: @ 81CE738
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r1, =gUnknown_085EBFD7
+ bl StringCopy
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CE738
+
+ thumb_func_start sub_81CE754
+sub_81CE754: @ 81CE754
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x2C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r7, r4, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ lsls r2, 24
+ lsrs r5, r2, 24
+ movs r0, 0xC
+ bl sub_81C763C
+ adds r6, r0, 0
+ cmp r4, 0x1
+ beq _081CE7B8
+ cmp r4, 0x1
+ bgt _081CE782
+ cmp r4, 0
+ beq _081CE78E
+ b _081CE924
+_081CE782:
+ cmp r4, 0x2
+ beq _081CE800
+ cmp r4, 0x3
+ bne _081CE78C
+ b _081CE89C
+_081CE78C:
+ b _081CE924
+_081CE78E:
+ movs r1, 0xC1
+ lsls r1, 5
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ bl sub_81CDD5C
+ cmp r0, 0x1
+ beq _081CE7A6
+ b _081CE924
+_081CE7A6:
+ ldr r1, =0x00001821
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ b _081CE924
+ .pool
+_081CE7B8:
+ bl sub_81CDC60
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl sub_81CDC50
+ lsls r0, 16
+ lsrs r0, 16
+ subs r0, 0x1
+ cmp r4, r0
+ bne _081CE7DA
+ bl sub_81CDD5C
+ cmp r0, 0x1
+ beq _081CE7DA
+ b _081CE924
+_081CE7DA:
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl sub_81CDD04
+ adds r2, r0, 0
+ movs r1, 0xC1
+ lsls r1, 5
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ str r7, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ b _081CE924
+_081CE800:
+ bl sub_81CDD5C
+ adds r7, r0, 0
+ cmp r7, 0x1
+ beq _081CE80C
+ b _081CE924
+_081CE80C:
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl sub_81CDD24
+ adds r2, r0, 0
+ movs r1, 0xC1
+ lsls r1, 5
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ movs r1, 0x11
+ str r1, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ add r1, sp, 0xC
+ movs r0, 0xFC
+ strb r0, [r1]
+ movs r0, 0x4
+ strb r0, [r1, 0x1]
+ movs r0, 0x8
+ strb r0, [r1, 0x2]
+ adds r0, r1, 0
+ strb r4, [r0, 0x3]
+ movs r0, 0x9
+ strb r0, [r1, 0x4]
+ mov r5, sp
+ adds r5, 0x11
+ ldr r1, =gUnknown_085EBFD7
+ adds r0, r5, 0
+ bl StringCopy
+ ldr r0, =0x00001821
+ adds r6, r0
+ ldrb r0, [r6]
+ str r7, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ add r2, sp, 0xC
+ movs r3, 0x4
+ bl PrintTextOnWindow
+ bl sub_81CDD48
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r5, 0
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldrb r0, [r6]
+ str r7, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ add r2, sp, 0xC
+ movs r3, 0x1C
+ bl PrintTextOnWindow
+ b _081CE924
+ .pool
+_081CE89C:
+ ldr r1, =0x00002908
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081CE8B0
+ cmp r0, 0x1
+ beq _081CE8EC
+ b _081CE924
+ .pool
+_081CE8B0:
+ cmp r5, 0
+ beq _081CE8C4
+ movs r1, 0xC1
+ lsls r1, 5
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ b _081CE8D2
+_081CE8C4:
+ movs r1, 0xC1
+ lsls r1, 5
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl CopyWindowToVram
+_081CE8D2:
+ bl sub_81CDD5C
+ cmp r0, 0x1
+ bne _081CE910
+ ldr r0, =0x00002908
+ adds r1, r6, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081CE924
+ .pool
+_081CE8EC:
+ cmp r5, 0
+ beq _081CE904
+ ldr r1, =0x00001821
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ b _081CE910
+ .pool
+_081CE904:
+ ldr r1, =0x00001821
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl CopyWindowToVram
+_081CE910:
+ ldr r0, =0x00002908
+ adds r1, r6, r0
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ b _081CE926
+ .pool
+_081CE924:
+ movs r0, 0
+_081CE926:
+ add sp, 0x2C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CE754
+
+ thumb_func_start sub_81CE934
+sub_81CE934: @ 81CE934
+ push {r4,lr}
+ movs r0, 0xC
+ bl sub_81C763C
+ adds r4, r0, 0
+ ldr r1, =0x00001822
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r0, =0x00001823
+ adds r4, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CE934
+
+ thumb_func_start sub_81CE964
+sub_81CE964: @ 81CE964
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r0, 0x2E
+ ldrsh r4, [r5, r0]
+ bl sub_81CDC60
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r4, r0
+ bne _081CE982
+ adds r0, r5, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ b _081CE98A
+_081CE982:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_081CE98A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CE964
+
+ thumb_func_start sub_81CE990
+sub_81CE990: @ 81CE990
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_81CDC60
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl sub_81CDC50
+ lsls r0, 16
+ lsrs r0, 16
+ subs r0, 0x1
+ cmp r4, r0
+ bne _081CE9B0
+ movs r0, 0x65
+ b _081CE9B2
+_081CE9B0:
+ movs r0, 0x66
+_081CE9B2:
+ bl IndexOfSpritePaletteTag
+ lsls r0, 4
+ ldrb r2, [r5, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CE990
+
+ thumb_func_start sub_81CE9C8
+sub_81CE9C8: @ 81CE9C8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_81CDD7C
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CE9C8
+
+ thumb_func_start sub_81CE9E4
+sub_81CE9E4: @ 81CE9E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x58
+ movs r0, 0xC
+ bl sub_81C763C
+ adds r6, r0, 0
+ add r4, sp, 0x20
+ add r5, sp, 0x38
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_81D321C
+ bl sub_81CDD5C
+ adds r7, r4, 0
+ mov r10, r5
+ cmp r0, 0x1
+ bne _081CEA78
+ ldr r1, =0x00001824
+ adds r0, r6, r1
+ movs r2, 0x6A
+ strh r2, [r0]
+ ldr r3, =0x00001826
+ adds r1, r6, r3
+ strh r2, [r1]
+ bl sub_811F90C
+ bl sub_811FA90
+ ldr r2, =gUnknown_08623338
+ movs r0, 0x69
+ movs r1, 0x69
+ bl sub_811FF94
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0xC0
+ strh r1, [r0, 0x20]
+ movs r1, 0x20
+ strh r1, [r0, 0x22]
+ ldr r1, =sub_81CE9C8
+ str r1, [r0, 0x1C]
+ ldr r2, =0x000028dc
+ adds r1, r6, r2
+ str r0, [r1]
+ movs r0, 0x69
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_81C7990
+ add r3, sp, 0x50
+ mov r8, r3
+ b _081CEBC6
+ .pool
+_081CEA78:
+ mov r0, sp
+ bl LoadSpriteSheets
+ mov r0, r10
+ bl sub_81C795C
+ movs r4, 0
+ add r0, sp, 0x50
+ mov r8, r0
+ b _081CEAE8
+_081CEA8C:
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 18
+ movs r1, 0x80
+ lsls r1, 12
+ adds r2, r1
+ asrs r2, 16
+ adds r0, r7, 0
+ movs r1, 0xE2
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _081CEAD8
+ ldr r2, =0x00001806
+ adds r0, r6, r2
+ adds r0, r4
+ strb r3, [r0]
+ ldr r2, =gSprites
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ adds r1, r0, r2
+ strh r4, [r1, 0x2E]
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, =sub_81CE964
+ str r1, [r0]
+ b _081CEAE2
+ .pool
+_081CEAD8:
+ ldr r3, =0x00001806
+ adds r0, r6, r3
+ adds r0, r4
+ movs r1, 0xFF
+ strb r1, [r0]
+_081CEAE2:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_081CEAE8:
+ bl sub_81CDC50
+ lsls r0, 16
+ lsrs r0, 16
+ subs r0, 0x1
+ cmp r4, r0
+ blt _081CEA8C
+ movs r0, 0x67
+ strh r0, [r7]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r7, 0x14]
+ cmp r4, 0x5
+ bhi _081CEB5C
+ ldr r0, =0x00001806
+ adds r5, r6, r0
+ ldr r1, =gSprites
+ mov r9, r1
+_081CEB0A:
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 18
+ movs r3, 0x80
+ lsls r3, 12
+ adds r2, r3
+ asrs r2, 16
+ adds r0, r7, 0
+ movs r1, 0xE6
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _081CEB4C
+ adds r0, r5, r4
+ strb r3, [r0]
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ add r1, r9
+ ldrb r2, [r1, 0x3]
+ movs r0, 0x3F
+ ands r0, r2
+ strb r0, [r1, 0x3]
+ b _081CEB52
+ .pool
+_081CEB4C:
+ adds r1, r5, r4
+ movs r0, 0xFF
+ strb r0, [r1]
+_081CEB52:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x5
+ bls _081CEB0A
+_081CEB5C:
+ movs r0, 0x66
+ strh r0, [r7]
+ ldr r0, =sub_81CE990
+ str r0, [r7, 0x14]
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 18
+ movs r0, 0x80
+ lsls r0, 12
+ adds r2, r0
+ asrs r2, 16
+ adds r0, r7, 0
+ movs r1, 0xDE
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _081CEBBC
+ ldr r1, =0x00001806
+ adds r0, r6, r1
+ adds r0, r4
+ strb r3, [r0]
+ ldr r0, =gSprites
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ adds r2, r0
+ ldrb r3, [r2, 0x1]
+ movs r1, 0x3F
+ adds r0, r1, 0
+ ands r0, r3
+ movs r3, 0x40
+ orrs r0, r3
+ strb r0, [r2, 0x1]
+ ldrb r0, [r2, 0x3]
+ ands r1, r0
+ movs r0, 0x80
+ orrs r1, r0
+ strb r1, [r2, 0x3]
+ b _081CEBC6
+ .pool
+_081CEBBC:
+ ldr r2, =0x00001806
+ adds r0, r6, r2
+ adds r0, r4
+ movs r1, 0xFF
+ strb r1, [r0]
+_081CEBC6:
+ mov r0, r8
+ mov r1, r10
+ bl sub_81D32B0
+ mov r0, r8
+ bl LoadSpriteSheet
+ movs r0, 0
+ mov r3, r10
+ str r0, [r3, 0x8]
+ mov r0, r10
+ bl sub_81C795C
+ add sp, 0x58
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CE9E4
+
+ thumb_func_start sub_81CEBF4
+sub_81CEBF4: @ 81CEBF4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_81CDD5C
+ cmp r0, 0x1
+ bne _081CEC28
+ ldr r1, =0x000028dc
+ adds r0, r5, r1
+ ldr r0, [r0]
+ bl DestroySprite
+ movs r0, 0x6A
+ bl FreeSpriteTilesByTag
+ movs r0, 0x69
+ bl FreeSpriteTilesByTag
+ movs r0, 0x6A
+ bl FreeSpritePaletteByTag
+ movs r0, 0x69
+ bl FreeSpritePaletteByTag
+ b _081CEC68
+ .pool
+_081CEC28:
+ movs r4, 0
+_081CEC2A:
+ ldr r1, =0x00001806
+ adds r0, r5, r1
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ bls _081CEC2A
+ movs r0, 0x65
+ bl FreeSpriteTilesByTag
+ movs r0, 0x66
+ bl FreeSpriteTilesByTag
+ movs r0, 0x67
+ bl FreeSpriteTilesByTag
+ movs r0, 0x65
+ bl FreeSpritePaletteByTag
+ movs r0, 0x66
+ bl FreeSpritePaletteByTag
+_081CEC68:
+ ldr r0, =0x00001816
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _081CEC8E
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl DestroySprite
+ movs r0, 0x64
+ bl FreeSpriteTilesByTag
+ movs r0, 0x64
+ bl FreeSpritePaletteByTag
+_081CEC8E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CEBF4
+
+ thumb_func_start sub_81CECA0
+sub_81CECA0: @ 81CECA0
+ push {r4,lr}
+ movs r0, 0xC
+ bl sub_81C763C
+ adds r4, r0, 0
+ movs r1, 0xC1
+ lsls r1, 5
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl RemoveWindow
+ bl sub_81CDD5C
+ cmp r0, 0x1
+ bne _081CECEC
+ ldr r1, =0x00001821
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl RemoveWindow
+ ldr r1, =0x00001822
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl RemoveWindow
+ ldr r1, =0x00001823
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl RemoveWindow
+ b _081CECF0
+ .pool
+_081CECEC:
+ bl sub_81C7FDC
+_081CECF0:
+ movs r1, 0x8A
+ lsls r1, 5
+ movs r0, 0
+ bl SetGpuReg
+ adds r0, r4, 0
+ bl sub_81CEBF4
+ bl sub_81CEE68
+ movs r0, 0xC
+ bl sub_81C7650
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CECA0
+
+ thumb_func_start sub_81CED10
+sub_81CED10: @ 81CED10
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0xC
+ bl sub_81C763C
+ ldr r1, =0x00001814
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, 0x26
+ strh r0, [r4, 0x20]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CED10
+
+ thumb_func_start sub_81CED30
+sub_81CED30: @ 81CED30
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x28
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0xC
+ bl sub_81C763C
+ mov r8, r0
+ ldr r7, =0x00001816
+ add r7, r8
+ ldrb r0, [r7]
+ cmp r0, 0xFF
+ bne _081CEDFC
+ add r5, sp, 0x18
+ add r4, sp, 0x20
+ adds r0, r5, 0
+ mov r1, sp
+ adds r2, r4, 0
+ bl sub_81D31D0
+ adds r0, r6, 0
+ bl sub_81CDCB4
+ str r0, [sp, 0x18]
+ adds r0, r6, 0
+ bl sub_81CDCD4
+ str r0, [sp, 0x20]
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, =0x00001818
+ add r4, r8
+ strh r0, [r4]
+ adds r0, r5, 0
+ bl LoadSpriteSheet
+ ldr r5, =0x0000181a
+ add r5, r8
+ strh r0, [r5]
+ mov r0, sp
+ movs r1, 0x26
+ movs r2, 0x68
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strb r0, [r7]
+ cmp r0, 0x40
+ bne _081CEDBC
+ movs r0, 0x64
+ bl FreeSpriteTilesByTag
+ movs r0, 0x64
+ bl FreeSpritePaletteByTag
+ movs r0, 0xFF
+ strb r0, [r7]
+ b _081CEE26
+ .pool
+_081CEDBC:
+ strb r0, [r7]
+ ldr r2, =gSprites
+ ldrb r1, [r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, =sub_81CED10
+ str r1, [r0]
+ ldr r1, =0x0000181c
+ add r1, r8
+ ldrh r0, [r5]
+ lsls r0, 5
+ ldr r2, =0x06010000
+ adds r0, r2
+ str r0, [r1]
+ ldrh r0, [r4]
+ lsls r0, 4
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r4]
+ b _081CEE26
+ .pool
+_081CEDFC:
+ adds r0, r6, 0
+ bl sub_81CDCB4
+ ldr r1, =0x0000181c
+ add r1, r8
+ ldr r2, [r1]
+ ldr r1, =0x040000d4
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, =0x80000400
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r0, r6, 0
+ bl sub_81CDCD4
+ ldr r1, =0x00001818
+ add r1, r8
+ ldrh r1, [r1]
+ movs r2, 0x20
+ bl LoadPalette
+_081CEE26:
+ add sp, 0x28
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CED30
+
+ thumb_func_start sub_81CEE44
+sub_81CEE44: @ 81CEE44
+ push {r4,lr}
+ bl sub_81CDC70
+ adds r4, r0, 0
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ adds r0, r4, 0
+ bl sub_81D2108
+ bl sub_80BA0A8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CEE44
+
+ thumb_func_start sub_81CEE68
+sub_81CEE68: @ 81CEE68
+ push {lr}
+ bl sub_81C760C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CEE68
+
+ thumb_func_start sub_81CEE74
+sub_81CEE74: @ 81CEE74
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ beq _081CEE84
+ movs r0, 0x2
+ bl ShowBg
+ b _081CEE8A
+_081CEE84:
+ movs r0, 0x2
+ bl HideBg
+_081CEE8A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CEE74
+
+ thumb_func_start sub_81CEE90
+sub_81CEE90: @ 81CEE90
+ push {r4,lr}
+ bl sub_81CDC70
+ adds r4, r0, 0
+ bl sub_81CDC84
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_030012BC
+ strb r0, [r1]
+ adds r1, r4, 0
+ adds r1, 0x50
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 2
+ adds r2, 0x14
+ adds r2, r4, r2
+ adds r0, r4, 0
+ bl sub_81D1F84
+ adds r0, r4, 0
+ bl sub_81D2074
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CEE90
+
+ thumb_func_start sub_81CEEC8
+sub_81CEEC8: @ 81CEEC8
+ push {r4,r5,lr}
+ bl sub_81CDC70
+ adds r5, r0, 0
+ bl sub_81CDD5C
+ cmp r0, 0
+ bne _081CEEF0
+ bl sub_81CDC60
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl sub_81CDC50
+ lsls r0, 16
+ lsrs r0, 16
+ subs r0, 0x1
+ cmp r4, r0
+ beq _081CEF0C
+_081CEEF0:
+ bl sub_81CDC84
+ lsls r0, 24
+ asrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, 0x14
+ adds r1, r5, r1
+ adds r2, r5, 0
+ adds r2, 0x50
+ adds r0, r5, 0
+ bl sub_81D1F84
+_081CEF0C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CEEC8
+
+ thumb_func_start sub_81CEF14
+sub_81CEF14: @ 81CEF14
+ push {r4,lr}
+ movs r0, 0xC
+ bl sub_81C763C
+ adds r4, r0, 0
+ bl sub_81CDD5C
+ cmp r0, 0x1
+ beq _081CEF2A
+ movs r0, 0
+ b _081CEF30
+_081CEF2A:
+ ldr r1, =0x00001828
+ adds r0, r4, r1
+ ldrb r0, [r0]
+_081CEF30:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CEF14
+
+ thumb_func_start sub_81CEF3C
+sub_81CEF3C: @ 81CEF3C
+ push {r4,lr}
+ movs r0, 0x7
+ movs r1, 0x24
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081CEF90
+ ldr r1, =0x000006ac
+ movs r0, 0x12
+ bl sub_81C761C
+ str r0, [r4, 0x20]
+ cmp r0, 0
+ beq _081CEF90
+ ldr r0, =sub_81CF010
+ str r0, [r4]
+ ldr r0, =sub_81CF11C
+ movs r1, 0x1
+ bl sub_81C7078
+ str r0, [r4, 0x4]
+ movs r0, 0
+ str r0, [r4, 0x18]
+ bl sub_81C76AC
+ ldr r1, =gUnknown_086233A0
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r4, 0x14]
+ movs r0, 0x1
+ b _081CEF92
+ .pool
+_081CEF90:
+ movs r0, 0
+_081CEF92:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CEF3C
+
+ thumb_func_start sub_81CEF98
+sub_81CEF98: @ 81CEF98
+ push {r4,lr}
+ movs r0, 0x7
+ movs r1, 0x24
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081CEFD4
+ movs r0, 0x12
+ bl sub_81C763C
+ str r0, [r4, 0x20]
+ ldr r0, =sub_81CF030
+ str r0, [r4]
+ movs r0, 0x1
+ str r0, [r4, 0x18]
+ bl sub_81C76AC
+ ldr r1, =gUnknown_086233A0
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r4, 0x14]
+ movs r0, 0x1
+ b _081CEFD6
+ .pool
+_081CEFD4:
+ movs r0, 0
+_081CEFD6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CEF98
+
+ thumb_func_start sub_81CEFDC
+sub_81CEFDC: @ 81CEFDC
+ push {lr}
+ movs r0, 0x7
+ bl sub_81C763C
+ ldr r1, [r0]
+ bl _call_via_r1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CEFDC
+
+ thumb_func_start sub_81CEFF0
+sub_81CEFF0: @ 81CEFF0
+ push {lr}
+ movs r0, 0x7
+ bl sub_81C763C
+ ldr r0, [r0, 0x1C]
+ cmp r0, 0
+ bne _081CF004
+ movs r0, 0x12
+ bl sub_81C7650
+_081CF004:
+ movs r0, 0x7
+ bl sub_81C7650
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CEFF0
+
+ thumb_func_start sub_81CF010
+sub_81CF010: @ 81CF010
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, [r4, 0x4]
+ bl sub_81C70D8
+ cmp r0, 0
+ bne _081CF022
+ ldr r0, =sub_81CF030
+ str r0, [r4]
+_081CF022:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CF010
+
+ thumb_func_start sub_81CF030
+sub_81CF030: @ 81CF030
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081CF048
+ movs r0, 0x1
+ b _081CF0A6
+ .pool
+_081CF048:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081CF054
+ movs r0, 0x2
+ b _081CF0A6
+_081CF054:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _081CF062
+ movs r0, 0x3
+ b _081CF0A6
+_081CF062:
+ movs r0, 0x10
+ ands r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _081CF072
+ movs r0, 0x4
+ b _081CF0A6
+_081CF072:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081CF088
+ str r2, [r4, 0x1C]
+ ldr r0, =sub_81CF0B0
+ str r0, [r4]
+ movs r0, 0x5
+ b _081CF0A6
+ .pool
+_081CF088:
+ movs r5, 0x1
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _081CF096
+ movs r0, 0
+ b _081CF0A6
+_081CF096:
+ bl sub_81C875C
+ ldr r1, [r4, 0x20]
+ strh r0, [r1, 0x2]
+ str r5, [r4, 0x1C]
+ ldr r0, =sub_81CF0B8
+ str r0, [r4]
+ movs r0, 0x6
+_081CF0A6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CF030
+
+ thumb_func_start sub_81CF0B0
+sub_81CF0B0: @ 81CF0B0
+ ldr r0, =0x000186a3
+ bx lr
+ .pool
+ thumb_func_end sub_81CF0B0
+
+ thumb_func_start sub_81CF0B8
+sub_81CF0B8: @ 81CF0B8
+ ldr r0, =0x000186a9
+ bx lr
+ .pool
+ thumb_func_end sub_81CF0B8
+
+ thumb_func_start sub_81CF0C0
+sub_81CF0C0: @ 81CF0C0
+ push {lr}
+ movs r0, 0x7
+ bl sub_81C763C
+ ldr r0, [r0, 0x18]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CF0C0
+
+ thumb_func_start sub_81CF0D0
+sub_81CF0D0: @ 81CF0D0
+ push {lr}
+ movs r0, 0x7
+ bl sub_81C763C
+ ldr r0, [r0, 0x20]
+ adds r0, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CF0D0
+
+ thumb_func_start sub_81CF0E0
+sub_81CF0E0: @ 81CF0E0
+ push {lr}
+ movs r0, 0x7
+ bl sub_81C763C
+ ldr r0, [r0, 0x20]
+ ldrh r0, [r0]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CF0E0
+
+ thumb_func_start sub_81CF0F0
+sub_81CF0F0: @ 81CF0F0
+ push {r4,lr}
+ movs r0, 0x7
+ bl sub_81C763C
+ adds r4, r0, 0
+ bl sub_81C875C
+ ldr r1, [r4, 0x20]
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x6]
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CF0F0
+
+ thumb_func_start sub_81CF10C
+sub_81CF10C: @ 81CF10C
+ push {lr}
+ movs r0, 0x7
+ bl sub_81C763C
+ ldr r0, [r0, 0x20]
+ ldrh r0, [r0, 0x2]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CF10C
+
+ thumb_func_start sub_81CF11C
+sub_81CF11C: @ 81CF11C
+ push {lr}
+ ldr r2, =gUnknown_086233B4
+ lsls r1, r0, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CF11C
+
+ thumb_func_start sub_81CF134
+sub_81CF134: @ 81CF134
+ push {r4-r6,lr}
+ sub sp, 0x4
+ movs r0, 0x7
+ bl sub_81C763C
+ adds r6, r0, 0
+ ldr r0, [r6, 0x20]
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, [r6, 0x20]
+ strh r1, [r0, 0x2]
+ ldr r1, =0xffffff00
+ ldr r0, [sp]
+ ands r0, r1
+ movs r1, 0xE
+ orrs r0, r1
+ str r0, [sp]
+ movs r5, 0
+_081CF158:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl GetMonData
+ cmp r0, 0
+ beq _081CF1AA
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl GetMonData
+ cmp r0, 0
+ bne _081CF1A4
+ lsls r1, r5, 24
+ lsrs r1, 16
+ ldr r2, =0xffff00ff
+ ldr r0, [sp]
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp]
+ ldr r1, [r6, 0x14]
+ adds r0, r4, 0
+ bl GetMonData
+ lsls r0, 16
+ ldr r2, =0x0000ffff
+ ldr r1, [sp]
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp]
+ adds r0, r6, 0
+ mov r1, sp
+ bl sub_81CF2C4
+_081CF1A4:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081CF158
+_081CF1AA:
+ movs r0, 0x1
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CF134
+
+ thumb_func_start sub_81CF1C4
+sub_81CF1C4: @ 81CF1C4
+ push {lr}
+ movs r0, 0x7
+ bl sub_81C763C
+ movs r1, 0
+ str r1, [r0, 0x10]
+ str r1, [r0, 0xC]
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CF1C4
+
+ thumb_func_start sub_81CF1D8
+sub_81CF1D8: @ 81CF1D8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r0, 0x7
+ bl sub_81C763C
+ adds r6, r0, 0
+ ldr r5, [r6, 0xC]
+ ldr r4, [r6, 0x10]
+ movs r0, 0
+ mov r8, r0
+ cmp r5, 0xD
+ bgt _081CF268
+_081CF1F4:
+ cmp r4, 0x1D
+ bgt _081CF260
+ lsls r0, r5, 24
+ lsrs r7, r0, 24
+_081CF1FC:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80D2270
+ cmp r0, 0
+ beq _081CF23A
+ ldr r1, =0xffffff00
+ ldr r0, [sp]
+ ands r0, r1
+ orrs r0, r7
+ lsls r1, r4, 24
+ lsrs r1, 24
+ lsls r3, r1, 8
+ ldr r2, =0xffff00ff
+ ands r0, r2
+ orrs r0, r3
+ str r0, [sp]
+ ldr r2, [r6, 0x14]
+ adds r0, r7, 0
+ bl GetBoxMonDataFromAnyBox
+ lsls r0, 16
+ ldr r2, =0x0000ffff
+ ldr r1, [sp]
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp]
+ adds r0, r6, 0
+ mov r1, sp
+ bl sub_81CF2C4
+_081CF23A:
+ movs r0, 0x1
+ add r8, r0
+ adds r4, 0x1
+ mov r0, r8
+ cmp r0, 0xE
+ ble _081CF25C
+ str r5, [r6, 0xC]
+ str r4, [r6, 0x10]
+ movs r0, 0x3
+ b _081CF26A
+ .pool
+_081CF25C:
+ cmp r4, 0x1D
+ ble _081CF1FC
+_081CF260:
+ movs r4, 0
+ adds r5, 0x1
+ cmp r5, 0xD
+ ble _081CF1F4
+_081CF268:
+ movs r0, 0x1
+_081CF26A:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CF1D8
+
+ thumb_func_start sub_81CF278
+sub_81CF278: @ 81CF278
+ push {r4-r6,lr}
+ movs r0, 0x7
+ bl sub_81C763C
+ adds r5, r0, 0
+ ldr r0, [r5, 0x20]
+ ldrh r6, [r0]
+ ldrh r4, [r0, 0x6]
+ movs r1, 0x1
+ strh r1, [r0, 0x6]
+ movs r3, 0x1
+ cmp r3, r6
+ bge _081CF2B8
+_081CF292:
+ ldr r2, [r5, 0x20]
+ lsls r0, r3, 2
+ adds r1, r2, r0
+ ldrh r0, [r1, 0x6]
+ cmp r0, r4
+ bne _081CF2AC
+ subs r0, r3, 0x1
+ lsls r0, 2
+ adds r0, r2, r0
+ ldrh r0, [r0, 0x6]
+ strh r0, [r1, 0x6]
+ adds r0, r3, 0x1
+ b _081CF2B2
+_081CF2AC:
+ adds r4, r0, 0
+ adds r0, r3, 0x1
+ strh r0, [r1, 0x6]
+_081CF2B2:
+ adds r3, r0, 0
+ cmp r3, r6
+ blt _081CF292
+_081CF2B8:
+ movs r0, 0x1
+ str r0, [r5, 0x18]
+ movs r0, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CF278
+
+ thumb_func_start sub_81CF2C4
+sub_81CF2C4: @ 81CF2C4
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r7, r1, 0
+ movs r1, 0
+ ldr r0, [r5, 0x20]
+ ldrh r2, [r0]
+ lsrs r3, r2, 1
+ cmp r2, r3
+ beq _081CF2F4
+ adds r6, r0, 0
+ ldrh r4, [r7, 0x2]
+_081CF2DA:
+ lsls r0, r3, 2
+ adds r0, r6, r0
+ ldrh r0, [r0, 0x6]
+ cmp r4, r0
+ bls _081CF2E8
+ adds r2, r3, 0
+ b _081CF2EA
+_081CF2E8:
+ adds r1, r3, 0x1
+_081CF2EA:
+ subs r0, r2, r1
+ lsrs r0, 1
+ adds r3, r1, r0
+ cmp r2, r3
+ bne _081CF2DA
+_081CF2F4:
+ ldr r0, [r5, 0x20]
+ ldrh r2, [r0]
+ lsls r6, r3, 2
+ cmp r2, r3
+ bls _081CF318
+ lsls r0, r2, 2
+ subs r4, r0, 0x4
+_081CF302:
+ ldr r0, [r5, 0x20]
+ lsls r1, r2, 2
+ adds r0, 0x4
+ adds r1, r0, r1
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ subs r4, 0x4
+ subs r2, 0x1
+ cmp r2, r3
+ bhi _081CF302
+_081CF318:
+ ldr r0, [r5, 0x20]
+ adds r0, 0x4
+ adds r0, r6
+ ldr r1, [r7]
+ str r1, [r0]
+ ldr r1, [r5, 0x20]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CF2C4
+
+ thumb_func_start sub_81CF330
+sub_81CF330: @ 81CF330
+ push {r4,lr}
+ movs r1, 0x81
+ lsls r1, 4
+ movs r0, 0x8
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081CF360
+ ldr r0, =sub_81CF418
+ movs r1, 0x1
+ bl sub_81C7078
+ str r0, [r4, 0x4]
+ ldr r0, =sub_81CF3E4
+ str r0, [r4]
+ movs r0, 0
+ str r0, [r4, 0xC]
+ movs r0, 0x1
+ b _081CF362
+ .pool
+_081CF360:
+ movs r0, 0
+_081CF362:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CF330
+
+ thumb_func_start sub_81CF368
+sub_81CF368: @ 81CF368
+ push {r4,lr}
+ movs r1, 0x81
+ lsls r1, 4
+ movs r0, 0x8
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081CF398
+ ldr r0, =sub_81CF418
+ movs r1, 0x1
+ bl sub_81C7078
+ str r0, [r4, 0x4]
+ ldr r0, =sub_81CF3E4
+ str r0, [r4]
+ movs r0, 0x1
+ str r0, [r4, 0xC]
+ b _081CF39A
+ .pool
+_081CF398:
+ movs r0, 0
+_081CF39A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CF368
+
+ thumb_func_start sub_81CF3A0
+sub_81CF3A0: @ 81CF3A0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x8
+ bl sub_81C763C
+ adds r5, r0, 0
+ ldr r0, =gUnknown_08623598
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ movs r1, 0x1
+ bl sub_81C7078
+ str r0, [r5, 0x4]
+ ldr r0, =sub_81CF3E4
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CF3A0
+
+ thumb_func_start sub_81CF3D0
+sub_81CF3D0: @ 81CF3D0
+ push {lr}
+ movs r0, 0x8
+ bl sub_81C763C
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CF3D0
+
+ thumb_func_start sub_81CF3E4
+sub_81CF3E4: @ 81CF3E4
+ push {lr}
+ movs r0, 0x8
+ bl sub_81C763C
+ ldr r0, [r0, 0x4]
+ bl sub_81C70D8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CF3E4
+
+ thumb_func_start sub_81CF3F8
+sub_81CF3F8: @ 81CF3F8
+ push {r4,lr}
+ movs r0, 0x8
+ bl sub_81C763C
+ adds r4, r0, 0
+ bl sub_81C8234
+ ldrb r0, [r4, 0x8]
+ bl RemoveWindow
+ movs r0, 0x8
+ bl sub_81C7650
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CF3F8
+
+ thumb_func_start sub_81CF418
+sub_81CF418: @ 81CF418
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r0, 0x8
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x5
+ bls _081CF42C
+ b _081CF56E
+_081CF42C:
+ lsls r0, r4, 2
+ ldr r1, =_081CF43C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081CF43C:
+ .4byte _081CF454
+ .4byte _081CF4AC
+ .4byte _081CF4C0
+ .4byte _081CF4E0
+ .4byte _081CF4F6
+ .4byte _081CF55A
+_081CF454:
+ ldr r0, =gUnknown_08623590
+ movs r1, 0x2
+ bl sub_81C7B54
+ ldr r1, =gUnknown_086233E4
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ adds r1, r5, 0
+ adds r1, 0x10
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ ldr r1, =gUnknown_086234AC
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl CopyToBgTilemapBuffer
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ ldr r0, =gUnknown_086233C4
+ movs r1, 0x10
+ movs r2, 0x20
+ bl sub_81C7944
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+_081CF498:
+ movs r0, 0
+ b _081CF570
+ .pool
+_081CF4AC:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CF56A
+ bl sub_81CF0C0
+ cmp r0, 0
+ beq _081CF56A
+ b _081CF498
+_081CF4C0:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CF56A
+ ldr r0, =gUnknown_08623570
+ movs r1, 0x20
+ movs r2, 0x20
+ bl sub_81C7944
+ bl sub_81CF88C
+ b _081CF498
+ .pool
+_081CF4E0:
+ bl sub_81C8224
+ cmp r0, 0
+ bne _081CF56A
+ adds r0, r5, 0
+ bl sub_81CF7C8
+ movs r0, 0x3
+ bl sub_81C7BA4
+ b _081CF498
+_081CF4F6:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CF56A
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ movs r0, 0x3
+ bl HideBg
+ ldr r0, [r5, 0xC]
+ cmp r0, 0
+ bne _081CF552
+ bl sub_81C76AC
+ adds r4, r0, 0
+ adds r4, 0x8
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_81C7DFC
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_81C7FA0
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_81C7FA0
+_081CF552:
+ movs r0, 0x1
+ bl sub_81C7AC0
+ b _081CF498
+_081CF55A:
+ bl sub_81C7B34
+ cmp r0, 0
+ bne _081CF56A
+ bl sub_81C8010
+ cmp r0, 0
+ beq _081CF56E
+_081CF56A:
+ movs r0, 0x2
+ b _081CF570
+_081CF56E:
+ movs r0, 0x4
+_081CF570:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CF418
+
+ thumb_func_start sub_81CF578
+sub_81CF578: @ 81CF578
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x8
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081CF5C6
+ cmp r4, 0x1
+ bgt _081CF592
+ cmp r4, 0
+ beq _081CF59C
+ b _081CF5E6
+_081CF592:
+ cmp r4, 0x2
+ beq _081CF5CE
+ cmp r4, 0x3
+ beq _081CF5D8
+ b _081CF5E6
+_081CF59C:
+ bl sub_81C8658
+ cmp r0, 0x1
+ beq _081CF5B4
+ cmp r0, 0x1
+ bgt _081CF5AE
+ cmp r0, 0
+ beq _081CF5E6
+ b _081CF5D4
+_081CF5AE:
+ cmp r0, 0x2
+ beq _081CF5BE
+ b _081CF5D4
+_081CF5B4:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x7
+ b _081CF5E8
+_081CF5BE:
+ movs r0, 0x5
+ bl PlaySE
+ b _081CF5D4
+_081CF5C6:
+ bl sub_81C8630
+ cmp r0, 0
+ bne _081CF5E2
+_081CF5CE:
+ adds r0, r5, 0
+ bl sub_81CF7F4
+_081CF5D4:
+ movs r0, 0
+ b _081CF5E8
+_081CF5D8:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081CF5E6
+_081CF5E2:
+ movs r0, 0x2
+ b _081CF5E8
+_081CF5E6:
+ movs r0, 0x4
+_081CF5E8:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CF578
+
+ thumb_func_start sub_81CF5F0
+sub_81CF5F0: @ 81CF5F0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x8
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081CF63E
+ cmp r4, 0x1
+ bgt _081CF60A
+ cmp r4, 0
+ beq _081CF614
+ b _081CF65E
+_081CF60A:
+ cmp r4, 0x2
+ beq _081CF646
+ cmp r4, 0x3
+ beq _081CF650
+ b _081CF65E
+_081CF614:
+ bl sub_81C868C
+ cmp r0, 0x1
+ beq _081CF62C
+ cmp r0, 0x1
+ bgt _081CF626
+ cmp r0, 0
+ beq _081CF65E
+ b _081CF64C
+_081CF626:
+ cmp r0, 0x2
+ beq _081CF636
+ b _081CF64C
+_081CF62C:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x7
+ b _081CF660
+_081CF636:
+ movs r0, 0x5
+ bl PlaySE
+ b _081CF64C
+_081CF63E:
+ bl sub_81C8630
+ cmp r0, 0
+ bne _081CF65A
+_081CF646:
+ adds r0, r5, 0
+ bl sub_81CF7F4
+_081CF64C:
+ movs r0, 0
+ b _081CF660
+_081CF650:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081CF65E
+_081CF65A:
+ movs r0, 0x2
+ b _081CF660
+_081CF65E:
+ movs r0, 0x4
+_081CF660:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CF5F0
+
+ thumb_func_start sub_81CF668
+sub_81CF668: @ 81CF668
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x8
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081CF6B6
+ cmp r4, 0x1
+ bgt _081CF682
+ cmp r4, 0
+ beq _081CF68C
+ b _081CF6D6
+_081CF682:
+ cmp r4, 0x2
+ beq _081CF6BE
+ cmp r4, 0x3
+ beq _081CF6C8
+ b _081CF6D6
+_081CF68C:
+ bl sub_81C86CC
+ cmp r0, 0x1
+ beq _081CF6A4
+ cmp r0, 0x1
+ bgt _081CF69E
+ cmp r0, 0
+ beq _081CF6D6
+ b _081CF6C4
+_081CF69E:
+ cmp r0, 0x2
+ beq _081CF6AE
+ b _081CF6C4
+_081CF6A4:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x7
+ b _081CF6D8
+_081CF6AE:
+ movs r0, 0x5
+ bl PlaySE
+ b _081CF6C4
+_081CF6B6:
+ bl sub_81C8630
+ cmp r0, 0
+ bne _081CF6D2
+_081CF6BE:
+ adds r0, r5, 0
+ bl sub_81CF7F4
+_081CF6C4:
+ movs r0, 0
+ b _081CF6D8
+_081CF6C8:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081CF6D6
+_081CF6D2:
+ movs r0, 0x2
+ b _081CF6D8
+_081CF6D6:
+ movs r0, 0x4
+_081CF6D8:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CF668
+
+ thumb_func_start sub_81CF6E0
+sub_81CF6E0: @ 81CF6E0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x8
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081CF72E
+ cmp r4, 0x1
+ bgt _081CF6FA
+ cmp r4, 0
+ beq _081CF704
+ b _081CF74E
+_081CF6FA:
+ cmp r4, 0x2
+ beq _081CF736
+ cmp r4, 0x3
+ beq _081CF740
+ b _081CF74E
+_081CF704:
+ bl sub_81C870C
+ cmp r0, 0x1
+ beq _081CF71C
+ cmp r0, 0x1
+ bgt _081CF716
+ cmp r0, 0
+ beq _081CF74E
+ b _081CF73C
+_081CF716:
+ cmp r0, 0x2
+ beq _081CF726
+ b _081CF73C
+_081CF71C:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x7
+ b _081CF750
+_081CF726:
+ movs r0, 0x5
+ bl PlaySE
+ b _081CF73C
+_081CF72E:
+ bl sub_81C8630
+ cmp r0, 0
+ bne _081CF74A
+_081CF736:
+ adds r0, r5, 0
+ bl sub_81CF7F4
+_081CF73C:
+ movs r0, 0
+ b _081CF750
+_081CF740:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081CF74E
+_081CF74A:
+ movs r0, 0x2
+ b _081CF750
+_081CF74E:
+ movs r0, 0x4
+_081CF750:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CF6E0
+
+ thumb_func_start sub_81CF758
+sub_81CF758: @ 81CF758
+ push {lr}
+ cmp r0, 0
+ beq _081CF764
+ cmp r0, 0x1
+ beq _081CF778
+ b _081CF790
+_081CF764:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_81C7AC0
+ bl sub_81C78A0
+ movs r0, 0
+ b _081CF792
+_081CF778:
+ bl sub_81C7B34
+ cmp r0, 0
+ bne _081CF788
+ bl sub_81C78C0
+ cmp r0, 0
+ beq _081CF78C
+_081CF788:
+ movs r0, 0x2
+ b _081CF792
+_081CF78C:
+ bl sub_81C7FDC
+_081CF790:
+ movs r0, 0x4
+_081CF792:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CF758
+
+ thumb_func_start sub_81CF798
+sub_81CF798: @ 81CF798
+ push {lr}
+ cmp r0, 0
+ beq _081CF7A4
+ cmp r0, 0x1
+ beq _081CF7B4
+ b _081CF7C0
+_081CF7A4:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_81C7AC0
+ movs r0, 0
+ b _081CF7C2
+_081CF7B4:
+ bl sub_81C7B34
+ cmp r0, 0
+ beq _081CF7C0
+ movs r0, 0x2
+ b _081CF7C2
+_081CF7C0:
+ movs r0, 0x4
+_081CF7C2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CF798
+
+ thumb_func_start sub_81CF7C8
+sub_81CF7C8: @ 81CF7C8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gUnknown_086235B4
+ bl AddWindow
+ strh r0, [r4, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ bl PutWindowTilemap
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x1
+ bl CopyWindowToVram
+ adds r0, r4, 0
+ bl sub_81CF7F4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CF7C8
+
+ thumb_func_start sub_81CF7F4
+sub_81CF7F4: @ 81CF7F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ mov r8, r0
+ bl sub_81CF0F0
+ adds r7, r0, 0
+ bl sub_81AFBF0
+ ldr r4, =gStringVar1
+ movs r0, 0
+ adds r1, r4, 0
+ bl sub_81AFC0C
+ movs r0, 0xFF
+ strb r0, [r4]
+ ldr r5, =gStringVar2
+ ldr r1, =gUnknown_085EC029
+ adds r0, r5, 0
+ bl sub_81AFC28
+ mov r1, r8
+ ldrb r0, [r1, 0x8]
+ movs r1, 0x1
+ mov r10, r1
+ str r1, [sp]
+ movs r1, 0xFF
+ mov r9, r1
+ str r1, [sp, 0x4]
+ movs r6, 0
+ str r6, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r5, 0
+ movs r3, 0x4
+ bl PrintTextOnWindow
+ adds r0, r4, 0
+ adds r1, r7, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ mov r1, r8
+ ldrb r0, [r1, 0x8]
+ mov r1, r10
+ str r1, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0x22
+ bl PrintTextOnWindow
+ mov r1, r8
+ ldrb r0, [r1, 0x8]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CF7F4
+
+ thumb_func_start sub_81CF88C
+sub_81CF88C: @ 81CF88C
+ push {r4,lr}
+ sub sp, 0x18
+ bl sub_81CF0D0
+ str r0, [sp]
+ bl sub_81CF0E0
+ mov r1, sp
+ movs r4, 0
+ strh r0, [r1, 0x4]
+ movs r0, 0x4
+ strb r0, [r1, 0x8]
+ bl sub_81CF10C
+ mov r1, sp
+ strh r0, [r1, 0x6]
+ movs r0, 0xD
+ strb r0, [r1, 0x9]
+ movs r0, 0x11
+ strb r0, [r1, 0xA]
+ mov r0, sp
+ movs r2, 0x1
+ strb r2, [r0, 0xB]
+ movs r0, 0x8
+ strb r0, [r1, 0xC]
+ movs r0, 0x2
+ strb r0, [r1, 0xD]
+ mov r0, sp
+ strb r2, [r0, 0xE]
+ ldr r0, =sub_81CF8E4
+ str r0, [sp, 0x10]
+ str r4, [sp, 0x14]
+ ldr r0, =gUnknown_08623594
+ movs r2, 0
+ bl sub_81C81D4
+ add sp, 0x18
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CF88C
+
+ thumb_func_start sub_81CF8E4
+sub_81CF8E4: @ 81CF8E4
+ push {r4-r7,lr}
+ adds r2, r0, 0
+ adds r6, r1, 0
+ ldrb r0, [r2]
+ cmp r0, 0xE
+ bne _081CF924
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x64
+ adds r4, r1, 0
+ muls r4, r0
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ bl GetMonGender
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ bl GetLevelFromMonExp
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, =gStringVar3
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl GetMonData
+ b _081CF94A
+ .pool
+_081CF924:
+ ldrb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ bl GetBoxedMonPtr
+ adds r4, r0, 0
+ bl GetBoxMonGender
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ bl GetLevelFromBoxMonExp
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, =gStringVar3
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl GetBoxMonData
+_081CF94A:
+ ldr r4, =gStringVar3
+ adds r0, r4, 0
+ bl StringGetEnd10
+ adds r0, r6, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0x3C
+ bl sub_81DB494
+ adds r6, r0, 0
+ cmp r5, 0
+ beq _081CF974
+ cmp r5, 0xFE
+ beq _081CF97C
+ ldr r1, =gUnknown_086235D4
+ b _081CF97E
+ .pool
+_081CF974:
+ ldr r1, =gUnknown_086235BC
+ b _081CF97E
+ .pool
+_081CF97C:
+ ldr r1, =gUnknown_086235C8
+_081CF97E:
+ ldr r4, =gStringVar1
+ adds r0, r4, 0
+ bl StringCopy
+ movs r1, 0xBA
+ strb r1, [r0]
+ adds r0, 0x1
+ movs r1, 0xF9
+ strb r1, [r0]
+ adds r0, 0x1
+ movs r1, 0x5
+ strb r1, [r0]
+ adds r0, 0x1
+ adds r1, r7, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r0, r6, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0x28
+ bl sub_81DB494
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CF8E4
+
+ thumb_func_start sub_81CF9BC
+sub_81CF9BC: @ 81CF9BC
+ push {r4,lr}
+ movs r0, 0x9
+ movs r1, 0x20
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081CF9FC
+ ldr r1, =0x000006ac
+ movs r0, 0x12
+ bl sub_81C761C
+ str r0, [r4, 0x1C]
+ cmp r0, 0
+ beq _081CF9FC
+ ldr r0, =sub_81CFA68
+ str r0, [r4]
+ ldr r0, =sub_81CFB74
+ movs r1, 0x1
+ bl sub_81C7078
+ str r0, [r4, 0x4]
+ movs r0, 0
+ str r0, [r4, 0x14]
+ movs r0, 0x1
+ b _081CF9FE
+ .pool
+_081CF9FC:
+ movs r0, 0
+_081CF9FE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CF9BC
+
+ thumb_func_start sub_81CFA04
+sub_81CFA04: @ 81CFA04
+ push {r4,lr}
+ movs r0, 0x9
+ movs r1, 0x20
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081CFA2C
+ movs r0, 0x12
+ bl sub_81C763C
+ str r0, [r4, 0x1C]
+ ldr r0, =sub_81CFA88
+ str r0, [r4]
+ movs r0, 0x1
+ str r0, [r4, 0x14]
+ b _081CFA2E
+ .pool
+_081CFA2C:
+ movs r0, 0
+_081CFA2E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CFA04
+
+ thumb_func_start sub_81CFA34
+sub_81CFA34: @ 81CFA34
+ push {lr}
+ movs r0, 0x9
+ bl sub_81C763C
+ ldr r1, [r0]
+ bl _call_via_r1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CFA34
+
+ thumb_func_start sub_81CFA48
+sub_81CFA48: @ 81CFA48
+ push {lr}
+ movs r0, 0x9
+ bl sub_81C763C
+ ldr r0, [r0, 0x18]
+ cmp r0, 0
+ bne _081CFA5C
+ movs r0, 0x12
+ bl sub_81C7650
+_081CFA5C:
+ movs r0, 0x9
+ bl sub_81C7650
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CFA48
+
+ thumb_func_start sub_81CFA68
+sub_81CFA68: @ 81CFA68
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, [r4, 0x4]
+ bl sub_81C70D8
+ cmp r0, 0
+ bne _081CFA7A
+ ldr r0, =sub_81CFA88
+ str r0, [r4]
+_081CFA7A:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CFA68
+
+ thumb_func_start sub_81CFA88
+sub_81CFA88: @ 81CFA88
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081CFAA0
+ movs r0, 0x1
+ b _081CFAFE
+ .pool
+_081CFAA0:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081CFAAC
+ movs r0, 0x2
+ b _081CFAFE
+_081CFAAC:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _081CFABA
+ movs r0, 0x3
+ b _081CFAFE
+_081CFABA:
+ movs r0, 0x10
+ ands r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _081CFACA
+ movs r0, 0x4
+ b _081CFAFE
+_081CFACA:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081CFAE0
+ str r2, [r4, 0x18]
+ ldr r0, =sub_81CFB08
+ str r0, [r4]
+ movs r0, 0x5
+ b _081CFAFE
+ .pool
+_081CFAE0:
+ movs r5, 0x1
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _081CFAEE
+ movs r0, 0
+ b _081CFAFE
+_081CFAEE:
+ bl sub_81C875C
+ ldr r1, [r4, 0x1C]
+ strh r0, [r1, 0x2]
+ str r5, [r4, 0x18]
+ ldr r0, =sub_81CFB10
+ str r0, [r4]
+ movs r0, 0x6
+_081CFAFE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CFA88
+
+ thumb_func_start sub_81CFB08
+sub_81CFB08: @ 81CFB08
+ ldr r0, =0x000186a5
+ bx lr
+ .pool
+ thumb_func_end sub_81CFB08
+
+ thumb_func_start sub_81CFB10
+sub_81CFB10: @ 81CFB10
+ ldr r0, =0x000186ad
+ bx lr
+ .pool
+ thumb_func_end sub_81CFB10
+
+ thumb_func_start sub_81CFB18
+sub_81CFB18: @ 81CFB18
+ push {lr}
+ movs r0, 0x9
+ bl sub_81C763C
+ ldr r0, [r0, 0x14]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CFB18
+
+ thumb_func_start sub_81CFB28
+sub_81CFB28: @ 81CFB28
+ push {lr}
+ movs r0, 0x9
+ bl sub_81C763C
+ ldr r0, [r0, 0x1C]
+ adds r0, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CFB28
+
+ thumb_func_start sub_81CFB38
+sub_81CFB38: @ 81CFB38
+ push {lr}
+ movs r0, 0x9
+ bl sub_81C763C
+ ldr r0, [r0, 0x1C]
+ ldrh r0, [r0]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CFB38
+
+ thumb_func_start sub_81CFB48
+sub_81CFB48: @ 81CFB48
+ push {r4,lr}
+ movs r0, 0x9
+ bl sub_81C763C
+ adds r4, r0, 0
+ bl sub_81C875C
+ ldr r1, [r4, 0x1C]
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x6]
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CFB48
+
+ thumb_func_start sub_81CFB64
+sub_81CFB64: @ 81CFB64
+ push {lr}
+ movs r0, 0x9
+ bl sub_81C763C
+ ldr r0, [r0, 0x1C]
+ ldrh r0, [r0, 0x2]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CFB64
+
+ thumb_func_start sub_81CFB74
+sub_81CFB74: @ 81CFB74
+ push {lr}
+ ldr r2, =gUnknown_086235D8
+ lsls r1, r0, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CFB74
+
+ thumb_func_start sub_81CFB8C
+sub_81CFB8C: @ 81CFB8C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ movs r0, 0x9
+ bl sub_81C763C
+ adds r6, r0, 0
+ ldr r0, [r6, 0x1C]
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, [r6, 0x1C]
+ strh r1, [r0, 0x2]
+ ldr r1, =0xffffff00
+ ldr r0, [sp]
+ ands r0, r1
+ movs r1, 0xE
+ orrs r0, r1
+ str r0, [sp]
+ movs r5, 0
+_081CFBB0:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl GetMonData
+ cmp r0, 0
+ beq _081CFC10
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl GetMonData
+ cmp r0, 0
+ bne _081CFC0A
+ adds r0, r4, 0
+ movs r1, 0x4
+ bl GetMonData
+ cmp r0, 0
+ bne _081CFC0A
+ adds r0, r4, 0
+ movs r1, 0x52
+ bl GetMonData
+ adds r3, r0, 0
+ cmp r3, 0
+ beq _081CFC0A
+ lsls r1, r5, 24
+ lsrs r1, 16
+ ldr r2, =0xffff00ff
+ ldr r0, [sp]
+ ands r0, r2
+ orrs r0, r1
+ lsls r2, r3, 16
+ ldr r1, =0x0000ffff
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp]
+ adds r0, r6, 0
+ mov r1, sp
+ bl sub_81CFCEC
+_081CFC0A:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081CFBB0
+_081CFC10:
+ movs r0, 0x1
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81CFB8C
+
+ thumb_func_start sub_81CFC2C
+sub_81CFC2C: @ 81CFC2C
+ push {lr}
+ movs r0, 0x9
+ bl sub_81C763C
+ movs r1, 0
+ str r1, [r0, 0x10]
+ str r1, [r0, 0xC]
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CFC2C
+
+ thumb_func_start sub_81CFC40
+sub_81CFC40: @ 81CFC40
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ movs r0, 0x9
+ bl sub_81C763C
+ mov r8, r0
+ ldr r7, [r0, 0xC]
+ ldr r6, [r0, 0x10]
+ movs r0, 0
+ mov r9, r0
+ cmp r7, 0xD
+ bgt _081CFCD4
+ b _081CFCC8
+_081CFC60:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_80D2270
+ cmp r0, 0
+ beq _081CFCA6
+ lsls r0, r7, 24
+ lsrs r5, r0, 24
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x52
+ bl GetBoxMonDataFromAnyBox
+ adds r3, r0, 0
+ cmp r3, 0
+ beq _081CFCA6
+ ldr r1, =0xffffff00
+ ldr r0, [sp]
+ ands r0, r1
+ orrs r0, r5
+ lsls r2, r4, 8
+ ldr r1, =0xffff00ff
+ ands r0, r1
+ orrs r0, r2
+ lsls r2, r3, 16
+ ldr r1, =0x0000ffff
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp]
+ mov r0, r8
+ mov r1, sp
+ bl sub_81CFCEC
+_081CFCA6:
+ movs r1, 0x1
+ add r9, r1
+ adds r6, 0x1
+ mov r0, r9
+ cmp r0, 0xE
+ ble _081CFCC8
+ mov r1, r8
+ str r7, [r1, 0xC]
+ str r6, [r1, 0x10]
+ movs r0, 0x3
+ b _081CFCDC
+ .pool
+_081CFCC8:
+ cmp r6, 0x1D
+ ble _081CFC60
+ movs r6, 0
+ adds r7, 0x1
+ cmp r7, 0xD
+ ble _081CFCC8
+_081CFCD4:
+ movs r0, 0x1
+ mov r1, r8
+ str r0, [r1, 0x14]
+ movs r0, 0x4
+_081CFCDC:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CFC40
+
+ thumb_func_start sub_81CFCEC
+sub_81CFCEC: @ 81CFCEC
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r7, r1, 0
+ movs r1, 0
+ ldr r0, [r5, 0x1C]
+ ldrh r2, [r0]
+ lsrs r3, r2, 1
+ cmp r2, r3
+ beq _081CFD1C
+ adds r6, r0, 0
+ ldrh r4, [r7, 0x2]
+_081CFD02:
+ lsls r0, r3, 2
+ adds r0, r6, r0
+ ldrh r0, [r0, 0x6]
+ cmp r4, r0
+ bls _081CFD10
+ adds r2, r3, 0
+ b _081CFD12
+_081CFD10:
+ adds r1, r3, 0x1
+_081CFD12:
+ subs r0, r2, r1
+ lsrs r0, 1
+ adds r3, r1, r0
+ cmp r2, r3
+ bne _081CFD02
+_081CFD1C:
+ ldr r0, [r5, 0x1C]
+ ldrh r2, [r0]
+ lsls r6, r3, 2
+ cmp r2, r3
+ bls _081CFD40
+ lsls r0, r2, 2
+ subs r4, r0, 0x4
+_081CFD2A:
+ ldr r0, [r5, 0x1C]
+ lsls r1, r2, 2
+ adds r0, 0x4
+ adds r1, r0, r1
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ subs r4, 0x4
+ subs r2, 0x1
+ cmp r2, r3
+ bhi _081CFD2A
+_081CFD40:
+ ldr r0, [r5, 0x1C]
+ adds r0, 0x4
+ adds r0, r6
+ ldr r1, [r7]
+ str r1, [r0]
+ ldr r1, [r5, 0x1C]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CFCEC
+
+ thumb_func_start sub_81CFD58
+sub_81CFD58: @ 81CFD58
+ push {r4-r6,lr}
+ movs r5, 0
+_081CFD5C:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl GetMonData
+ cmp r0, 0
+ beq _081CFD8A
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl GetMonData
+ cmp r0, 0
+ bne _081CFD8A
+ adds r0, r4, 0
+ movs r1, 0x53
+ bl GetMonData
+ cmp r0, 0
+ bne _081CFDB2
+_081CFD8A:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081CFD5C
+ movs r5, 0
+_081CFD92:
+ movs r4, 0
+ lsls r6, r5, 24
+_081CFD96:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80D2270
+ cmp r0, 0
+ beq _081CFDBC
+ lsls r1, r4, 24
+ lsrs r1, 24
+ lsrs r0, r6, 24
+ movs r2, 0x53
+ bl GetBoxMonDataFromAnyBox
+ cmp r0, 0
+ beq _081CFDBC
+_081CFDB2:
+ movs r0, 0x1
+ b _081CFDCA
+ .pool
+_081CFDBC:
+ adds r4, 0x1
+ cmp r4, 0x1D
+ ble _081CFD96
+ adds r5, 0x1
+ cmp r5, 0xD
+ ble _081CFD92
+ movs r0, 0
+_081CFDCA:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CFD58
+
+ thumb_func_start sub_81CFDD0
+sub_81CFDD0: @ 81CFDD0
+ push {r4,lr}
+ movs r1, 0x81
+ lsls r1, 4
+ movs r0, 0xA
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081CFE00
+ ldr r0, =sub_81CFEB8
+ movs r1, 0x1
+ bl sub_81C7078
+ str r0, [r4, 0x4]
+ ldr r0, =sub_81CFE84
+ str r0, [r4]
+ movs r0, 0
+ str r0, [r4, 0xC]
+ movs r0, 0x1
+ b _081CFE02
+ .pool
+_081CFE00:
+ movs r0, 0
+_081CFE02:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CFDD0
+
+ thumb_func_start sub_81CFE08
+sub_81CFE08: @ 81CFE08
+ push {r4,lr}
+ movs r1, 0x81
+ lsls r1, 4
+ movs r0, 0xA
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081CFE38
+ ldr r0, =sub_81CFEB8
+ movs r1, 0x1
+ bl sub_81C7078
+ str r0, [r4, 0x4]
+ ldr r0, =sub_81CFE84
+ str r0, [r4]
+ movs r0, 0x1
+ str r0, [r4, 0xC]
+ b _081CFE3A
+ .pool
+_081CFE38:
+ movs r0, 0
+_081CFE3A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CFE08
+
+ thumb_func_start sub_81CFE40
+sub_81CFE40: @ 81CFE40
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0xA
+ bl sub_81C763C
+ adds r5, r0, 0
+ ldr r0, =gUnknown_086237B8
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ movs r1, 0x1
+ bl sub_81C7078
+ str r0, [r5, 0x4]
+ ldr r0, =sub_81CFE84
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81CFE40
+
+ thumb_func_start sub_81CFE70
+sub_81CFE70: @ 81CFE70
+ push {lr}
+ movs r0, 0xA
+ bl sub_81C763C
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CFE70
+
+ thumb_func_start sub_81CFE84
+sub_81CFE84: @ 81CFE84
+ push {lr}
+ movs r0, 0xA
+ bl sub_81C763C
+ ldr r0, [r0, 0x4]
+ bl sub_81C70D8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CFE84
+
+ thumb_func_start sub_81CFE98
+sub_81CFE98: @ 81CFE98
+ push {r4,lr}
+ movs r0, 0xA
+ bl sub_81C763C
+ adds r4, r0, 0
+ bl sub_81C8234
+ ldrb r0, [r4, 0x8]
+ bl RemoveWindow
+ movs r0, 0xA
+ bl sub_81C7650
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81CFE98
+
+ thumb_func_start sub_81CFEB8
+sub_81CFEB8: @ 81CFEB8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r0, 0xA
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x5
+ bls _081CFECC
+ b _081CFFF2
+_081CFECC:
+ lsls r0, r4, 2
+ ldr r1, =_081CFEDC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081CFEDC:
+ .4byte _081CFEF4
+ .4byte _081CFF48
+ .4byte _081CFF76
+ .4byte _081CFF94
+ .4byte _081CFFA4
+ .4byte _081CFFDE
+_081CFEF4:
+ ldr r0, =gUnknown_086237B0
+ movs r1, 0x2
+ bl sub_81C7B54
+ ldr r1, =gUnknown_08623604
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ adds r1, r5, 0
+ adds r1, 0x10
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ ldr r1, =gUnknown_086236CC
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl CopyToBgTilemapBuffer
+ ldr r0, =gUnknown_086235E4
+ movs r1, 0x10
+ movs r2, 0x20
+ bl sub_81C7944
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+_081CFF32:
+ movs r0, 0
+ b _081CFFF4
+ .pool
+_081CFF48:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CFFEE
+ bl sub_81CFB18
+ cmp r0, 0
+ beq _081CFFEE
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x1
+ bl ShowBg
+ b _081CFF32
+_081CFF76:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CFFEE
+ ldr r0, =gUnknown_08623790
+ movs r1, 0x20
+ movs r2, 0x20
+ bl sub_81C7944
+ bl sub_81D0304
+ b _081CFF32
+ .pool
+_081CFF94:
+ bl sub_81C8224
+ cmp r0, 0
+ bne _081CFFEE
+ adds r0, r5, 0
+ bl sub_81D024C
+ b _081CFF32
+_081CFFA4:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ cmp r0, 0
+ bne _081CFFEE
+ movs r0, 0x2
+ bl ShowBg
+ movs r0, 0x3
+ bl HideBg
+ movs r0, 0x9
+ bl sub_81C7BA4
+ movs r0, 0x1
+ bl sub_81C7AC0
+ ldr r0, [r5, 0xC]
+ cmp r0, 0
+ bne _081CFF32
+ movs r0, 0x2
+ bl sub_81C7DFC
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_81C7FA0
+ b _081CFF32
+_081CFFDE:
+ bl sub_81C7B34
+ cmp r0, 0
+ bne _081CFFEE
+ bl sub_81C8010
+ cmp r0, 0
+ beq _081CFFF2
+_081CFFEE:
+ movs r0, 0x2
+ b _081CFFF4
+_081CFFF2:
+ movs r0, 0x4
+_081CFFF4:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CFEB8
+
+ thumb_func_start sub_81CFFFC
+sub_81CFFFC: @ 81CFFFC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0xA
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081D004A
+ cmp r4, 0x1
+ bgt _081D0016
+ cmp r4, 0
+ beq _081D0020
+ b _081D006A
+_081D0016:
+ cmp r4, 0x2
+ beq _081D0052
+ cmp r4, 0x3
+ beq _081D005C
+ b _081D006A
+_081D0020:
+ bl sub_81C8658
+ cmp r0, 0x1
+ beq _081D0038
+ cmp r0, 0x1
+ bgt _081D0032
+ cmp r0, 0
+ beq _081D006A
+ b _081D0058
+_081D0032:
+ cmp r0, 0x2
+ beq _081D0042
+ b _081D0058
+_081D0038:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x7
+ b _081D006C
+_081D0042:
+ movs r0, 0x5
+ bl PlaySE
+ b _081D0058
+_081D004A:
+ bl sub_81C8630
+ cmp r0, 0
+ bne _081D0066
+_081D0052:
+ adds r0, r5, 0
+ bl sub_81D0288
+_081D0058:
+ movs r0, 0
+ b _081D006C
+_081D005C:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D006A
+_081D0066:
+ movs r0, 0x2
+ b _081D006C
+_081D006A:
+ movs r0, 0x4
+_081D006C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81CFFFC
+
+ thumb_func_start sub_81D0074
+sub_81D0074: @ 81D0074
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0xA
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081D00C2
+ cmp r4, 0x1
+ bgt _081D008E
+ cmp r4, 0
+ beq _081D0098
+ b _081D00E2
+_081D008E:
+ cmp r4, 0x2
+ beq _081D00CA
+ cmp r4, 0x3
+ beq _081D00D4
+ b _081D00E2
+_081D0098:
+ bl sub_81C868C
+ cmp r0, 0x1
+ beq _081D00B0
+ cmp r0, 0x1
+ bgt _081D00AA
+ cmp r0, 0
+ beq _081D00E2
+ b _081D00D0
+_081D00AA:
+ cmp r0, 0x2
+ beq _081D00BA
+ b _081D00D0
+_081D00B0:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x7
+ b _081D00E4
+_081D00BA:
+ movs r0, 0x5
+ bl PlaySE
+ b _081D00D0
+_081D00C2:
+ bl sub_81C8630
+ cmp r0, 0
+ bne _081D00DE
+_081D00CA:
+ adds r0, r5, 0
+ bl sub_81D0288
+_081D00D0:
+ movs r0, 0
+ b _081D00E4
+_081D00D4:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D00E2
+_081D00DE:
+ movs r0, 0x2
+ b _081D00E4
+_081D00E2:
+ movs r0, 0x4
+_081D00E4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D0074
+
+ thumb_func_start sub_81D00EC
+sub_81D00EC: @ 81D00EC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0xA
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081D013A
+ cmp r4, 0x1
+ bgt _081D0106
+ cmp r4, 0
+ beq _081D0110
+ b _081D015A
+_081D0106:
+ cmp r4, 0x2
+ beq _081D0142
+ cmp r4, 0x3
+ beq _081D014C
+ b _081D015A
+_081D0110:
+ bl sub_81C86CC
+ cmp r0, 0x1
+ beq _081D0128
+ cmp r0, 0x1
+ bgt _081D0122
+ cmp r0, 0
+ beq _081D015A
+ b _081D0148
+_081D0122:
+ cmp r0, 0x2
+ beq _081D0132
+ b _081D0148
+_081D0128:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x7
+ b _081D015C
+_081D0132:
+ movs r0, 0x5
+ bl PlaySE
+ b _081D0148
+_081D013A:
+ bl sub_81C8630
+ cmp r0, 0
+ bne _081D0156
+_081D0142:
+ adds r0, r5, 0
+ bl sub_81D0288
+_081D0148:
+ movs r0, 0
+ b _081D015C
+_081D014C:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D015A
+_081D0156:
+ movs r0, 0x2
+ b _081D015C
+_081D015A:
+ movs r0, 0x4
+_081D015C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D00EC
+
+ thumb_func_start sub_81D0164
+sub_81D0164: @ 81D0164
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0xA
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081D01B2
+ cmp r4, 0x1
+ bgt _081D017E
+ cmp r4, 0
+ beq _081D0188
+ b _081D01D2
+_081D017E:
+ cmp r4, 0x2
+ beq _081D01BA
+ cmp r4, 0x3
+ beq _081D01C4
+ b _081D01D2
+_081D0188:
+ bl sub_81C870C
+ cmp r0, 0x1
+ beq _081D01A0
+ cmp r0, 0x1
+ bgt _081D019A
+ cmp r0, 0
+ beq _081D01D2
+ b _081D01C0
+_081D019A:
+ cmp r0, 0x2
+ beq _081D01AA
+ b _081D01C0
+_081D01A0:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x7
+ b _081D01D4
+_081D01AA:
+ movs r0, 0x5
+ bl PlaySE
+ b _081D01C0
+_081D01B2:
+ bl sub_81C8630
+ cmp r0, 0
+ bne _081D01CE
+_081D01BA:
+ adds r0, r5, 0
+ bl sub_81D0288
+_081D01C0:
+ movs r0, 0
+ b _081D01D4
+_081D01C4:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D01D2
+_081D01CE:
+ movs r0, 0x2
+ b _081D01D4
+_081D01D2:
+ movs r0, 0x4
+_081D01D4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D0164
+
+ thumb_func_start sub_81D01DC
+sub_81D01DC: @ 81D01DC
+ push {lr}
+ cmp r0, 0
+ beq _081D01E8
+ cmp r0, 0x1
+ beq _081D01FC
+ b _081D0214
+_081D01E8:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_81C7AC0
+ bl sub_81C78A0
+ movs r0, 0
+ b _081D0216
+_081D01FC:
+ bl sub_81C7B34
+ cmp r0, 0
+ bne _081D020C
+ bl sub_81C78C0
+ cmp r0, 0
+ beq _081D0210
+_081D020C:
+ movs r0, 0x2
+ b _081D0216
+_081D0210:
+ bl sub_81C7FDC
+_081D0214:
+ movs r0, 0x4
+_081D0216:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D01DC
+
+ thumb_func_start sub_81D021C
+sub_81D021C: @ 81D021C
+ push {lr}
+ cmp r0, 0
+ beq _081D0228
+ cmp r0, 0x1
+ beq _081D0238
+ b _081D0244
+_081D0228:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_81C7AC0
+ movs r0, 0
+ b _081D0246
+_081D0238:
+ bl sub_81C7B34
+ cmp r0, 0
+ beq _081D0244
+ movs r0, 0x2
+ b _081D0246
+_081D0244:
+ movs r0, 0x4
+_081D0246:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D021C
+
+ thumb_func_start sub_81D024C
+sub_81D024C: @ 81D024C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gUnknown_086237D4
+ bl AddWindow
+ strh r0, [r4, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ bl PutWindowTilemap
+ bl sub_81CFB38
+ adds r2, r0, 0
+ ldrh r0, [r4, 0x8]
+ movs r1, 0
+ bl sub_81D02B0
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x1
+ bl CopyWindowToVram
+ adds r0, r4, 0
+ bl sub_81D0288
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D024C
+
+ thumb_func_start sub_81D0288
+sub_81D0288: @ 81D0288
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_81C875C
+ adds r4, r0, 0
+ bl sub_81CFB38
+ adds r2, r0, 0
+ ldrh r0, [r5, 0x8]
+ adds r4, 0x1
+ adds r1, r4, 0
+ bl sub_81D02B0
+ ldrb r0, [r5, 0x8]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D0288
+
+ thumb_func_start sub_81D02B0
+sub_81D02B0: @ 81D02B0
+ push {r4,r5,lr}
+ sub sp, 0x1C
+ adds r4, r0, 0
+ adds r5, r2, 0
+ add r0, sp, 0xC
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ movs r1, 0xBA
+ strb r1, [r0]
+ adds r0, 0x1
+ adds r1, r5, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x1
+ add r1, sp, 0xC
+ movs r2, 0x38
+ bl GetStringCenterAlignXOffset
+ adds r3, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x1
+ add r2, sp, 0xC
+ bl PrintTextOnWindow
+ add sp, 0x1C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D02B0
+
+ thumb_func_start sub_81D0304
+sub_81D0304: @ 81D0304
+ push {r4,lr}
+ sub sp, 0x18
+ bl sub_81CFB28
+ str r0, [sp]
+ bl sub_81CFB38
+ mov r1, sp
+ movs r4, 0
+ strh r0, [r1, 0x4]
+ movs r0, 0x4
+ strb r0, [r1, 0x8]
+ bl sub_81CFB64
+ mov r1, sp
+ strh r0, [r1, 0x6]
+ movs r0, 0xD
+ strb r0, [r1, 0x9]
+ movs r0, 0x11
+ strb r0, [r1, 0xA]
+ mov r0, sp
+ movs r2, 0x1
+ strb r2, [r0, 0xB]
+ movs r0, 0x8
+ strb r0, [r1, 0xC]
+ movs r0, 0x2
+ strb r0, [r1, 0xD]
+ mov r0, sp
+ strb r2, [r0, 0xE]
+ ldr r0, =sub_81D035C
+ str r0, [sp, 0x10]
+ str r4, [sp, 0x14]
+ ldr r0, =gUnknown_086237B4
+ movs r2, 0
+ bl sub_81C81D4
+ add sp, 0x18
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D0304
+
+ thumb_func_start sub_81D035C
+sub_81D035C: @ 81D035C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r1, 0
+ adds r7, r0, 0
+ ldrb r0, [r7]
+ cmp r0, 0xE
+ bne _081D03A4
+ ldrb r1, [r7, 0x1]
+ movs r0, 0x64
+ adds r4, r1, 0
+ muls r4, r0
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ bl GetMonGender
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ bl GetLevelFromMonExp
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r2, =gStringVar3
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl GetMonData
+ b _081D03CC
+ .pool
+_081D03A4:
+ ldrb r0, [r7]
+ ldrb r1, [r7, 0x1]
+ bl GetBoxedMonPtr
+ adds r4, r0, 0
+ bl GetBoxMonGender
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ bl GetLevelFromBoxMonExp
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r2, =gStringVar3
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl GetBoxMonData
+_081D03CC:
+ ldr r4, =gStringVar3
+ adds r0, r4, 0
+ bl StringGetEnd10
+ adds r0, r6, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0x3C
+ bl sub_81DB494
+ adds r6, r0, 0
+ cmp r5, 0
+ beq _081D03F8
+ cmp r5, 0xFE
+ beq _081D0400
+ ldr r1, =gUnknown_086237F4
+ b _081D0402
+ .pool
+_081D03F8:
+ ldr r1, =gUnknown_086237DC
+ b _081D0402
+ .pool
+_081D0400:
+ ldr r1, =gUnknown_086237E8
+_081D0402:
+ ldr r4, =gStringVar1
+ adds r0, r4, 0
+ bl StringCopy
+ movs r1, 0xBA
+ strb r1, [r0]
+ adds r0, 0x1
+ movs r1, 0xF9
+ strb r1, [r0]
+ adds r0, 0x1
+ movs r1, 0x5
+ strb r1, [r0]
+ adds r0, 0x1
+ mov r1, r8
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r0, r6, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0x36
+ bl sub_81DB494
+ adds r6, r0, 0
+ ldrh r1, [r7, 0x2]
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D035C
+
+ thumb_func_start sub_81D0450
+sub_81D0450: @ 81D0450
+ push {r4,lr}
+ movs r0, 0xD
+ movs r1, 0x9C
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081D0498
+ movs r0, 0x12
+ bl sub_81C763C
+ str r0, [r4, 0x8]
+ cmp r0, 0
+ beq _081D0498
+ adds r0, r4, 0
+ bl sub_81D0814
+ adds r1, r4, 0
+ adds r1, 0x98
+ ldr r0, =sub_81D04C4
+ str r0, [r1]
+ ldr r1, =gKeyRepeatContinueDelay
+ movs r0, 0x3
+ strh r0, [r1]
+ ldr r1, =gKeyRepeatStartDelay
+ movs r0, 0xA
+ strh r0, [r1]
+ movs r0, 0x1
+ b _081D049A
+ .pool
+_081D0498:
+ movs r0, 0
+_081D049A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D0450
+
+ thumb_func_start sub_81D04A0
+sub_81D04A0: @ 81D04A0
+ push {lr}
+ movs r0, 0xD
+ bl sub_81C763C
+ adds r1, r0, 0
+ adds r1, 0x98
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D04A0
+
+ thumb_func_start sub_81D04B8
+sub_81D04B8: @ 81D04B8
+ push {lr}
+ movs r0, 0xD
+ bl sub_81C7650
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D04B8
+
+ thumb_func_start sub_81D04C4
+sub_81D04C4: @ 81D04C4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081D04E4
+ ldr r3, [r4, 0x8]
+ ldrh r0, [r3, 0x2]
+ cmp r0, 0
+ beq _081D04E4
+ subs r0, 0x1
+ b _081D04FC
+ .pool
+_081D04E4:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081D050C
+ ldr r3, [r4, 0x8]
+ ldrh r1, [r3, 0x2]
+ ldrh r0, [r3]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _081D050C
+ adds r0, r1, 0x1
+_081D04FC:
+ movs r1, 0
+ strh r0, [r3, 0x2]
+ strh r1, [r4, 0xC]
+ adds r0, r4, 0
+ bl sub_81D0814
+ movs r0, 0x1
+ b _081D053E
+_081D050C:
+ ldrh r2, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _081D0528
+ adds r1, r4, 0
+ adds r1, 0x98
+ ldr r0, =sub_81D0548
+ str r0, [r1]
+ movs r0, 0x2
+ b _081D053E
+ .pool
+_081D0528:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ bne _081D0534
+ movs r0, 0
+ b _081D053E
+_081D0534:
+ adds r1, r4, 0
+ adds r1, 0x98
+ ldr r0, =sub_81D05D4
+ str r0, [r1]
+ movs r0, 0x5
+_081D053E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D04C4
+
+ thumb_func_start sub_81D0548
+sub_81D0548: @ 81D0548
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081D0562
+ adds r0, r4, 0
+ bl sub_81D05DC
+ cmp r0, 0
+ bne _081D05A4
+_081D0562:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081D0578
+ adds r0, r4, 0
+ bl sub_81D061C
+ cmp r0, 0
+ bne _081D05A4
+_081D0578:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _081D058E
+ adds r0, r4, 0
+ bl sub_81D0664
+ cmp r0, 0
+ bne _081D05A4
+_081D058E:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081D05AC
+ adds r0, r4, 0
+ bl sub_81D0688
+ cmp r0, 0
+ beq _081D05AC
+_081D05A4:
+ movs r0, 0x3
+ b _081D05CA
+ .pool
+_081D05AC:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _081D05C0
+ movs r0, 0
+ b _081D05CA
+ .pool
+_081D05C0:
+ adds r1, r4, 0
+ adds r1, 0x98
+ ldr r0, =sub_81D04C4
+ str r0, [r1]
+ movs r0, 0x4
+_081D05CA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D0548
+
+ thumb_func_start sub_81D05D4
+sub_81D05D4: @ 81D05D4
+ ldr r0, =0x000186ae
+ bx lr
+ .pool
+ thumb_func_end sub_81D05D4
+
+ thumb_func_start sub_81D05DC
+sub_81D05DC: @ 81D05DC
+ push {r4,lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0xC]
+ adds r2, r0, 0
+ cmp r2, 0x18
+ bhi _081D05F0
+ cmp r2, 0x8
+ bls _081D0612
+ subs r0, 0x9
+ b _081D060C
+_081D05F0:
+ ldrh r3, [r1, 0x10]
+ adds r2, r3, 0
+ cmp r2, 0
+ beq _081D0612
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1B
+ ldrh r4, [r1, 0xE]
+ adds r0, r4
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r2
+ bcc _081D060E
+ subs r0, r3, 0x1
+_081D060C:
+ strh r0, [r1, 0xC]
+_081D060E:
+ movs r0, 0x1
+ b _081D0614
+_081D0612:
+ movs r0, 0
+_081D0614:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D05DC
+
+ thumb_func_start sub_81D061C
+sub_81D061C: @ 81D061C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0xC]
+ adds r1, r0, 0
+ cmp r1, 0x18
+ bhi _081D065C
+ ldrh r3, [r2, 0xE]
+ cmp r1, r3
+ bcs _081D0640
+ adds r0, 0x9
+ strh r0, [r2, 0xC]
+ ldrh r1, [r2, 0x10]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r1
+ bcc _081D0658
+ subs r0, r1, 0x1
+ b _081D0656
+_081D0640:
+ ldrh r0, [r2, 0x12]
+ cmp r0, 0
+ beq _081D065C
+ ldrh r1, [r2, 0xC]
+ ldrh r0, [r2, 0xE]
+ subs r0, r1, r0
+ ldrh r1, [r2, 0x12]
+ cmp r0, r1
+ blt _081D0654
+ subs r0, r1, 0x1
+_081D0654:
+ adds r0, 0x1B
+_081D0656:
+ strh r0, [r2, 0xC]
+_081D0658:
+ movs r0, 0x1
+ b _081D065E
+_081D065C:
+ movs r0, 0
+_081D065E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D061C
+
+ thumb_func_start sub_81D0664
+sub_81D0664: @ 81D0664
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r4, [r5, 0xC]
+ adds r0, r4, 0
+ movs r1, 0x9
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _081D067C
+ movs r0, 0
+ b _081D0682
+_081D067C:
+ subs r0, r4, 0x1
+ strh r0, [r5, 0xC]
+ movs r0, 0x1
+_081D0682:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D0664
+
+ thumb_func_start sub_81D0688
+sub_81D0688: @ 81D0688
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r4, [r5, 0xC]
+ adds r0, r4, 0
+ movs r1, 0x9
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x7
+ bgt _081D06BC
+ cmp r4, 0x1A
+ bhi _081D06AC
+ ldrh r0, [r5, 0x10]
+ subs r0, 0x1
+ cmp r4, r0
+ bge _081D06BC
+ b _081D06B4
+_081D06AC:
+ ldrh r0, [r5, 0x12]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _081D06BC
+_081D06B4:
+ adds r0, r4, 0x1
+ strh r0, [r5, 0xC]
+ movs r0, 0x1
+ b _081D06BE
+_081D06BC:
+ movs r0, 0
+_081D06BE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D0688
+
+ thumb_func_start sub_81D06C4
+sub_81D06C4: @ 81D06C4
+ push {lr}
+ movs r0, 0xD
+ bl sub_81C763C
+ ldr r0, [r0, 0x8]
+ ldrh r0, [r0, 0x2]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D06C4
+
+ thumb_func_start sub_81D06D4
+sub_81D06D4: @ 81D06D4
+ push {lr}
+ movs r0, 0xD
+ bl sub_81C763C
+ ldr r0, [r0, 0x8]
+ ldrh r0, [r0]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D06D4
+
+ thumb_func_start sub_81D06E4
+sub_81D06E4: @ 81D06E4
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r7, r1, 0
+ adds r6, r2, 0
+ movs r0, 0xD
+ bl sub_81C763C
+ ldr r1, [r0, 0x8]
+ ldrh r0, [r1, 0x2]
+ lsls r0, 2
+ adds r0, 0x4
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0xE
+ bne _081D0730
+ ldrb r1, [r1, 0x1]
+ movs r0, 0x64
+ adds r4, r1, 0
+ muls r4, r0
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl GetMonData
+ adds r0, r4, 0
+ bl GetLevelFromMonExp
+ strb r0, [r7]
+ adds r0, r4, 0
+ bl GetMonGender
+ strb r0, [r6]
+ b _081D0752
+ .pool
+_081D0730:
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ bl GetBoxedMonPtr
+ adds r4, r0, 0
+ bl GetBoxMonGender
+ strb r0, [r6]
+ adds r0, r4, 0
+ bl GetLevelFromBoxMonExp
+ strb r0, [r7]
+ adds r0, r4, 0
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl GetBoxMonData
+_081D0752:
+ adds r0, r5, 0
+ bl StringGetEnd10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D06E4
+
+ thumb_func_start sub_81D0760
+sub_81D0760: @ 81D0760
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ adds r7, r2, 0
+ movs r0, 0xD
+ bl sub_81C763C
+ ldr r1, [r0, 0x8]
+ ldrh r0, [r1, 0x2]
+ lsls r0, 2
+ adds r0, 0x4
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0xE
+ bne _081D07AC
+ ldrb r1, [r1, 0x1]
+ movs r0, 0x64
+ adds r4, r1, 0
+ muls r4, r0
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ strh r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [r6]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ b _081D07D0
+ .pool
+_081D07AC:
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ bl GetBoxedMonPtr
+ adds r4, r0, 0
+ movs r1, 0xB
+ bl GetBoxMonData
+ strh r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetBoxMonData
+ str r0, [r6]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetBoxMonData
+_081D07D0:
+ str r0, [r7]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D0760
+
+ thumb_func_start sub_81D07D8
+sub_81D07D8: @ 81D07D8
+ push {lr}
+ movs r0, 0xD
+ bl sub_81C763C
+ ldr r1, [r0, 0x8]
+ ldrh r0, [r1, 0x2]
+ lsls r0, 2
+ adds r0, 0x4
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0xE
+ beq _081D07FA
+ ldrb r1, [r1, 0x1]
+ movs r2, 0x52
+ bl GetBoxMonDataFromAnyBox
+ b _081D080A
+_081D07FA:
+ ldrb r1, [r1, 0x1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x52
+ bl GetMonData
+_081D080A:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D07D8
+
+ thumb_func_start sub_81D0814
+sub_81D0814: @ 81D0814
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r5, r0, 0
+ ldr r0, [r5, 0x8]
+ ldrh r1, [r0, 0x2]
+ lsls r1, 2
+ adds r1, 0x4
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0xE
+ bne _081D0848
+ ldrb r1, [r1, 0x1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x53
+ bl GetMonData
+ b _081D0852
+ .pool
+_081D0848:
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ movs r2, 0x53
+ bl GetBoxMonDataFromAnyBox
+_081D0852:
+ mov r12, r0
+ movs r0, 0
+ strh r0, [r5, 0x10]
+ strh r0, [r5, 0x12]
+ movs r6, 0
+ ldr r0, =gUnknown_086237F8
+ mov r9, r0
+ mov r10, r9
+_081D0862:
+ lsls r2, r6, 2
+ mov r3, r9
+ adds r1, r2, r3
+ movs r0, 0x1
+ ldrb r3, [r1]
+ lsls r0, r3
+ subs r4, r0, 0x1
+ mov r0, r12
+ ands r4, r0
+ ldrb r0, [r1, 0x3]
+ adds r7, r2, 0
+ cmp r0, 0
+ bne _081D08AC
+ movs r3, 0
+ adds r6, 0x1
+ mov r8, r6
+ cmp r3, r4
+ bge _081D08D6
+ adds r6, r5, 0
+ adds r6, 0x14
+ mov r1, r10
+ adds r0, r7, r1
+ ldrb r2, [r0, 0x2]
+_081D0890:
+ ldrh r0, [r5, 0x10]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x10]
+ lsls r0, 16
+ lsrs r0, 14
+ adds r0, r6, r0
+ adds r1, r2, r3
+ str r1, [r0]
+ adds r3, 0x1
+ cmp r3, r4
+ blt _081D0890
+ b _081D08D6
+ .pool
+_081D08AC:
+ movs r3, 0
+ adds r6, 0x1
+ mov r8, r6
+ cmp r3, r4
+ bge _081D08D6
+ adds r6, r5, 0
+ adds r6, 0x78
+ mov r1, r10
+ adds r0, r7, r1
+ ldrb r2, [r0, 0x2]
+_081D08C0:
+ ldrh r0, [r5, 0x12]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x12]
+ lsls r0, 16
+ lsrs r0, 14
+ adds r0, r6, r0
+ adds r1, r2, r3
+ str r1, [r0]
+ adds r3, 0x1
+ cmp r3, r4
+ blt _081D08C0
+_081D08D6:
+ mov r3, r9
+ adds r0, r7, r3
+ mov r1, r12
+ ldrb r0, [r0]
+ lsrs r1, r0
+ mov r12, r1
+ mov r6, r8
+ cmp r6, 0x10
+ bls _081D0862
+ ldrh r0, [r5, 0x10]
+ cmp r0, 0
+ beq _081D0900
+ subs r0, 0x1
+ movs r1, 0x9
+ bl __divsi3
+ lsls r1, r0, 3
+ adds r1, r0
+ movs r0, 0
+ strh r1, [r5, 0xE]
+ b _081D0904
+_081D0900:
+ strh r0, [r5, 0xE]
+ movs r0, 0x1B
+_081D0904:
+ strh r0, [r5, 0xC]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D0814
+
+ thumb_func_start sub_81D0914
+sub_81D0914: @ 81D0914
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0xD
+ bl sub_81C763C
+ ldrh r1, [r0, 0x10]
+ str r1, [r4]
+ adds r0, 0x14
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D0914
+
+ thumb_func_start sub_81D092C
+sub_81D092C: @ 81D092C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0xD
+ bl sub_81C763C
+ ldrh r1, [r0, 0x12]
+ str r1, [r4]
+ adds r0, 0x78
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D092C
+
+ thumb_func_start sub_81D0944
+sub_81D0944: @ 81D0944
+ push {lr}
+ movs r0, 0xD
+ bl sub_81C763C
+ ldrh r0, [r0, 0xC]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D0944
+
+ thumb_func_start sub_81D0954
+sub_81D0954: @ 81D0954
+ push {lr}
+ movs r0, 0xD
+ bl sub_81C763C
+ adds r1, r0, 0
+ ldrh r0, [r1, 0xC]
+ cmp r0, 0x18
+ ble _081D096C
+ subs r0, 0x1B
+ lsls r0, 2
+ adds r1, 0x78
+ b _081D0970
+_081D096C:
+ lsls r0, 2
+ adds r1, 0x14
+_081D0970:
+ adds r1, r0
+ ldr r0, [r1]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D0954
+
+ thumb_func_start sub_81D0978
+sub_81D0978: @ 81D0978
+ push {r4,lr}
+ ldr r1, =0x0000101c
+ movs r0, 0xE
+ bl sub_81C761C
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _081D09A8
+ ldr r0, =sub_81D0A6C
+ movs r1, 0x1
+ bl sub_81C7078
+ str r0, [r4, 0x4]
+ ldr r0, =sub_81D0A58
+ str r0, [r4]
+ movs r0, 0x1
+ b _081D09AA
+ .pool
+_081D09A8:
+ movs r0, 0
+_081D09AA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D0978
+
+ thumb_func_start sub_81D09B0
+sub_81D09B0: @ 81D09B0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0xE
+ bl sub_81C763C
+ adds r5, r0, 0
+ ldr r0, =gUnknown_08624BA0
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ movs r1, 0x1
+ bl sub_81C7078
+ str r0, [r5, 0x4]
+ ldr r0, =sub_81D0A58
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D09B0
+
+ thumb_func_start sub_81D09E0
+sub_81D09E0: @ 81D09E0
+ push {lr}
+ movs r0, 0xE
+ bl sub_81C763C
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D09E0
+
+ thumb_func_start sub_81D09F4
+sub_81D09F4: @ 81D09F4
+ push {r4,lr}
+ movs r0, 0xE
+ bl sub_81C763C
+ adds r4, r0, 0
+ ldrb r0, [r4, 0xA]
+ bl RemoveWindow
+ ldrb r0, [r4, 0x8]
+ bl RemoveWindow
+ ldrb r0, [r4, 0xC]
+ bl RemoveWindow
+ ldrb r0, [r4, 0xE]
+ bl RemoveWindow
+ adds r0, r4, 0
+ bl sub_81D1178
+ movs r0, 0x9
+ bl FreeSpriteTilesByTag
+ movs r0, 0xF
+ bl FreeSpritePaletteByTag
+ movs r0, 0x10
+ bl FreeSpritePaletteByTag
+ movs r0, 0x11
+ bl FreeSpritePaletteByTag
+ movs r0, 0x12
+ bl FreeSpritePaletteByTag
+ movs r0, 0x13
+ bl FreeSpritePaletteByTag
+ ldr r0, [r4, 0x14]
+ bl FreeSpriteOamMatrix
+ ldr r0, [r4, 0x14]
+ bl DestroySprite
+ movs r0, 0xE
+ bl sub_81C7650
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D09F4
+
+ thumb_func_start sub_81D0A58
+sub_81D0A58: @ 81D0A58
+ push {lr}
+ movs r0, 0xE
+ bl sub_81C763C
+ ldr r0, [r0, 0x4]
+ bl sub_81C70D8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D0A58
+
+ thumb_func_start sub_81D0A6C
+sub_81D0A6C: @ 81D0A6C
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ movs r0, 0xE
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x9
+ bls _081D0A80
+ b _081D0C48
+_081D0A80:
+ lsls r0, r4, 2
+ ldr r1, =_081D0A90
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081D0A90:
+ .4byte _081D0AB8
+ .4byte _081D0B04
+ .4byte _081D0B74
+ .4byte _081D0B88
+ .4byte _081D0B9C
+ .4byte _081D0BB0
+ .4byte _081D0BC4
+ .4byte _081D0BD8
+ .4byte _081D0BE8
+ .4byte _081D0C3C
+_081D0AB8:
+ ldr r0, =gUnknown_08624B98
+ movs r1, 0x2
+ bl sub_81C7B54
+ ldr r1, =gUnknown_08DDE030
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ adds r1, r5, 0
+ adds r1, 0x1C
+ movs r0, 0x2
+ bl SetBgTilemapBuffer
+ ldr r1, =gUnknown_08DDE12C
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl CopyToBgTilemapBuffer
+ ldr r0, =gUnknown_08DDE010
+ movs r1, 0x10
+ movs r2, 0x20
+ bl sub_81C7944
+ b _081D0BBA
+ .pool
+_081D0B04:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _081D0B12
+ b _081D0C44
+_081D0B12:
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_8199DF0
+ ldr r1, =gUnknown_086240B8
+ str r4, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0x1
+ bl decompress_and_copy_tile_data_to_vram
+ ldr r0, =0x0000081c
+ adds r1, r5, r0
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0x14
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ ldr r0, =gUnknown_08623FF8
+ movs r1, 0x20
+ movs r2, 0xA0
+ bl sub_81C7944
+ ldr r0, =gUnknown_08624098
+ movs r1, 0xA0
+ movs r2, 0x20
+ bl sub_81C7944
+ movs r0, 0x1
+ b _081D0BBC
+ .pool
+_081D0B74:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ cmp r0, 0
+ bne _081D0C44
+ adds r0, r5, 0
+ bl sub_81D0E60
+ movs r0, 0
+ b _081D0C4A
+_081D0B88:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ cmp r0, 0
+ bne _081D0C44
+ adds r0, r5, 0
+ bl sub_81D0FCC
+ movs r0, 0
+ b _081D0C4A
+_081D0B9C:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ cmp r0, 0
+ bne _081D0C44
+ adds r0, r5, 0
+ bl sub_81D10A4
+ movs r0, 0
+ b _081D0C4A
+_081D0BB0:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _081D0C44
+_081D0BBA:
+ movs r0, 0x2
+_081D0BBC:
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0
+ b _081D0C4A
+_081D0BC4:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _081D0C44
+ adds r0, r5, 0
+ bl sub_81D1148
+ movs r0, 0x1
+ b _081D0C4A
+_081D0BD8:
+ adds r0, r5, 0
+ bl sub_81D12D8
+ movs r0, 0xA
+ bl sub_81C7BA4
+ movs r0, 0
+ b _081D0C4A
+_081D0BE8:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _081D0C44
+ adds r0, r5, 0
+ bl sub_81D13FC
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ movs r0, 0x3
+ bl HideBg
+ movs r0, 0x1
+ bl sub_81C7AC0
+ movs r0, 0
+ b _081D0C4A
+_081D0C3C:
+ bl sub_81C7B34
+ cmp r0, 0
+ beq _081D0C48
+_081D0C44:
+ movs r0, 0x2
+ b _081D0C4A
+_081D0C48:
+ movs r0, 0x4
+_081D0C4A:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D0A6C
+
+ thumb_func_start sub_81D0C54
+sub_81D0C54: @ 81D0C54
+ push {lr}
+ cmp r0, 0
+ beq _081D0C60
+ cmp r0, 0x1
+ beq _081D0C70
+ b _081D0C7C
+_081D0C60:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_81C7AC0
+ movs r0, 0
+ b _081D0C7E
+_081D0C70:
+ bl sub_81C7B34
+ cmp r0, 0
+ beq _081D0C7C
+ movs r0, 0x2
+ b _081D0C7E
+_081D0C7C:
+ movs r0, 0x4
+_081D0C7E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D0C54
+
+ thumb_func_start sub_81D0C84
+sub_81D0C84: @ 81D0C84
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r0, 0xE
+ bl sub_81C763C
+ adds r4, r0, 0
+ cmp r5, 0x6
+ bhi _081D0D24
+ lsls r0, r5, 2
+ ldr r1, =_081D0CA4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081D0CA4:
+ .4byte _081D0CC0
+ .4byte _081D0CD0
+ .4byte _081D0CE4
+ .4byte _081D0CEE
+ .4byte _081D0CF8
+ .4byte _081D0D02
+ .4byte _081D0D16
+_081D0CC0:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_81D11D8
+ movs r0, 0
+ b _081D0D26
+_081D0CD0:
+ adds r0, r4, 0
+ bl sub_81D1234
+ cmp r0, 0
+ bne _081D0D20
+ adds r0, r4, 0
+ bl sub_81D0FF0
+ movs r0, 0x1
+ b _081D0D26
+_081D0CE4:
+ adds r0, r4, 0
+ bl sub_81D12D8
+ movs r0, 0x1
+ b _081D0D26
+_081D0CEE:
+ adds r0, r4, 0
+ bl sub_81D10D0
+ movs r0, 0x1
+ b _081D0D26
+_081D0CF8:
+ adds r0, r4, 0
+ bl sub_81D0E84
+ movs r0, 0x1
+ b _081D0D26
+_081D0D02:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _081D0D20
+ adds r0, r4, 0
+ bl sub_81D11FC
+ movs r0, 0
+ b _081D0D26
+_081D0D16:
+ adds r0, r4, 0
+ bl sub_81D1234
+ cmp r0, 0
+ beq _081D0D24
+_081D0D20:
+ movs r0, 0x2
+ b _081D0D26
+_081D0D24:
+ movs r0, 0x4
+_081D0D26:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D0C84
+
+ thumb_func_start sub_81D0D2C
+sub_81D0D2C: @ 81D0D2C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0xE
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081D0D5C
+ cmp r4, 0x1
+ bgt _081D0D46
+ cmp r4, 0
+ beq _081D0D4C
+ b _081D0D84
+_081D0D46:
+ cmp r4, 0x2
+ beq _081D0D76
+ b _081D0D84
+_081D0D4C:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_81D1448
+ movs r0, 0
+ b _081D0D86
+_081D0D5C:
+ adds r0, r5, 0
+ bl sub_81D1524
+ cmp r0, 0
+ bne _081D0D80
+ adds r0, r5, 0
+ bl sub_81D0EFC
+ movs r0, 0xB
+ bl sub_81C7BA4
+ movs r0, 0
+ b _081D0D86
+_081D0D76:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D0D84
+_081D0D80:
+ movs r0, 0x2
+ b _081D0D86
+_081D0D84:
+ movs r0, 0x4
+_081D0D86:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D0D2C
+
+ thumb_func_start sub_81D0D8C
+sub_81D0D8C: @ 81D0D8C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0xE
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081D0DC0
+ cmp r4, 0x1
+ bgt _081D0DA6
+ cmp r4, 0
+ beq _081D0DB0
+ b _081D0DF6
+_081D0DA6:
+ cmp r4, 0x2
+ beq _081D0DD4
+ cmp r4, 0x3
+ beq _081D0DE8
+ b _081D0DF6
+_081D0DB0:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_81D1500
+ movs r0, 0
+ b _081D0DF8
+_081D0DC0:
+ adds r0, r5, 0
+ bl sub_81D1524
+ cmp r0, 0
+ bne _081D0DF2
+ adds r0, r5, 0
+ bl sub_81D1448
+ movs r0, 0
+ b _081D0DF8
+_081D0DD4:
+ adds r0, r5, 0
+ bl sub_81D1524
+ cmp r0, 0
+ bne _081D0DF2
+ adds r0, r5, 0
+ bl sub_81D0EFC
+ movs r0, 0
+ b _081D0DF8
+_081D0DE8:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D0DF6
+_081D0DF2:
+ movs r0, 0x2
+ b _081D0DF8
+_081D0DF6:
+ movs r0, 0x4
+_081D0DF8:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D0D8C
+
+ thumb_func_start sub_81D0E00
+sub_81D0E00: @ 81D0E00
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0xE
+ bl sub_81C763C
+ adds r5, r0, 0
+ cmp r4, 0x1
+ beq _081D0E30
+ cmp r4, 0x1
+ bgt _081D0E1A
+ cmp r4, 0
+ beq _081D0E20
+ b _081D0E58
+_081D0E1A:
+ cmp r4, 0x2
+ beq _081D0E4A
+ b _081D0E58
+_081D0E20:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_81D1500
+ movs r0, 0
+ b _081D0E5A
+_081D0E30:
+ adds r0, r5, 0
+ bl sub_81D1524
+ cmp r0, 0
+ bne _081D0E54
+ adds r0, r5, 0
+ bl sub_81D0E84
+ movs r0, 0xA
+ bl sub_81C7BA4
+ movs r0, 0
+ b _081D0E5A
+_081D0E4A:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D0E58
+_081D0E54:
+ movs r0, 0x2
+ b _081D0E5A
+_081D0E58:
+ movs r0, 0x4
+_081D0E5A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D0E00
+
+ thumb_func_start sub_81D0E60
+sub_81D0E60: @ 81D0E60
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gUnknown_08624BB8
+ bl AddWindow
+ strh r0, [r4, 0xA]
+ lsls r0, 24
+ lsrs r0, 24
+ bl PutWindowTilemap
+ adds r0, r4, 0
+ bl sub_81D0E84
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D0E60
+
+ thumb_func_start sub_81D0E84
+sub_81D0E84: @ 81D0E84
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ ldr r1, =gUnknown_08624BC0
+ add r0, sp, 0xC
+ movs r2, 0x3
+ bl memcpy
+ ldr r4, =gStringVar1
+ bl sub_81D07D8
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ bl sub_81AFBF0
+ movs r0, 0
+ adds r1, r4, 0
+ bl sub_81AFC0C
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085EC030
+ adds r0, r4, 0
+ bl sub_81AFC28
+ ldrb r0, [r5, 0xA]
+ movs r1, 0x44
+ bl FillWindowPixelBuffer
+ ldrb r0, [r5, 0xA]
+ add r1, sp, 0xC
+ str r1, [sp]
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0x1
+ bl box_print
+ ldrb r0, [r5, 0xA]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D0E84
+
+ thumb_func_start sub_81D0EFC
+sub_81D0EFC: @ 81D0EFC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r7, r0, 0
+ bl sub_81D0954
+ adds r5, r0, 0
+ ldr r1, =gUnknown_08624BC0
+ add r0, sp, 0xC
+ movs r2, 0x3
+ bl memcpy
+ ldrb r0, [r7, 0xA]
+ movs r1, 0x44
+ bl FillWindowPixelBuffer
+ cmp r5, 0x18
+ bhi _081D0F60
+ lsls r1, r5, 3
+ ldr r0, =gRibbonDescriptionPointers
+ adds r6, r1, r0
+ movs r5, 0x80
+ lsls r5, 17
+ movs r4, 0x1
+_081D0F2E:
+ ldrb r0, [r7, 0xA]
+ lsrs r3, r5, 24
+ add r1, sp, 0xC
+ str r1, [sp]
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [sp, 0x4]
+ ldm r6!, {r1}
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r2, 0
+ bl box_print
+ movs r0, 0x80
+ lsls r0, 21
+ adds r5, r0
+ subs r4, 0x1
+ cmp r4, 0
+ bge _081D0F2E
+ b _081D0FAA
+ .pool
+_081D0F60:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ adds r0, r5
+ ldr r1, =0x0000318f
+ adds r0, r1
+ ldrb r5, [r0]
+ cmp r5, 0
+ beq _081D0FB2
+ subs r5, 0x1
+ movs r4, 0
+ ldr r0, =gGiftRibbonDescriptionPointers
+ mov r8, r0
+ movs r6, 0x80
+ lsls r6, 17
+_081D0F7C:
+ ldrb r0, [r7, 0xA]
+ lsrs r3, r6, 24
+ add r1, sp, 0xC
+ str r1, [sp]
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [sp, 0x4]
+ lsls r1, r4, 2
+ lsls r2, r5, 3
+ adds r1, r2
+ add r1, r8
+ ldr r1, [r1]
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r2, 0
+ bl box_print
+ movs r0, 0x80
+ lsls r0, 21
+ adds r6, r0
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _081D0F7C
+_081D0FAA:
+ ldrb r0, [r7, 0xA]
+ movs r1, 0x2
+ bl CopyWindowToVram
+_081D0FB2:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D0EFC
+
+ thumb_func_start sub_81D0FCC
+sub_81D0FCC: @ 81D0FCC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gUnknown_08624BC4
+ bl AddWindow
+ strh r0, [r4, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ bl PutWindowTilemap
+ adds r0, r4, 0
+ bl sub_81D0FF0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D0FCC
+
+ thumb_func_start sub_81D0FF0
+sub_81D0FF0: @ 81D0FF0
+ push {r4-r7,lr}
+ sub sp, 0x10
+ ldrh r7, [r0, 0x8]
+ ldrb r5, [r0, 0x8]
+ adds r0, r5, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r4, =gStringVar3
+ mov r6, sp
+ adds r6, 0xD
+ adds r0, r4, 0
+ add r1, sp, 0xC
+ adds r2, r6, 0
+ bl sub_81D06E4
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ adds r0, r5, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldrb r0, [r6]
+ cmp r0, 0
+ beq _081D1040
+ cmp r0, 0xFE
+ beq _081D1048
+ ldr r1, =gUnknown_08624BE4
+ b _081D104A
+ .pool
+_081D1040:
+ ldr r1, =gUnknown_08624BCC
+ b _081D104A
+ .pool
+_081D1048:
+ ldr r1, =gUnknown_08624BD8
+_081D104A:
+ ldr r5, =gStringVar1
+ adds r0, r5, 0
+ bl StringCopy
+ movs r1, 0xBA
+ strb r1, [r0]
+ adds r0, 0x1
+ movs r1, 0xF9
+ strb r1, [r0]
+ adds r0, 0x1
+ movs r1, 0x5
+ strb r1, [r0]
+ adds r0, 0x1
+ add r1, sp, 0xC
+ ldrb r1, [r1]
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ lsls r4, r7, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x1
+ adds r2, r5, 0
+ movs r3, 0x3C
+ bl PrintTextOnWindow
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl CopyWindowToVram
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D0FF0
+
+ thumb_func_start sub_81D10A4
+sub_81D10A4: @ 81D10A4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gUnknown_08624BE8
+ bl AddWindow
+ strh r0, [r4, 0xC]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldrb r0, [r4, 0xC]
+ bl PutWindowTilemap
+ adds r0, r4, 0
+ bl sub_81D10D0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D10A4
+
+ thumb_func_start sub_81D10D0
+sub_81D10D0: @ 81D10D0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0xC
+ mov r8, r0
+ bl sub_81D06C4
+ adds r4, r0, 0
+ adds r4, 0x1
+ bl sub_81D06D4
+ adds r6, r0, 0
+ ldr r5, =gStringVar1
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ movs r1, 0xBA
+ strb r1, [r0]
+ adds r0, 0x1
+ adds r1, r6, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x1
+ adds r1, r5, 0
+ movs r2, 0x38
+ bl GetStringCenterAlignXOffset
+ adds r3, r0, 0
+ mov r1, r8
+ ldrb r0, [r1, 0xC]
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r5, 0
+ bl PrintTextOnWindow
+ mov r1, r8
+ ldrb r0, [r1, 0xC]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D10D0
+
+ thumb_func_start sub_81D1148
+sub_81D1148: @ 81D1148
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ add r1, sp, 0x4
+ add r2, sp, 0x8
+ mov r0, sp
+ bl sub_81D0760
+ bl dp13_810BB8C
+ movs r0, 0x28
+ movs r1, 0x68
+ bl sub_81D1184
+ strh r0, [r4, 0x10]
+ movs r0, 0xF
+ movs r1, 0
+ bl sub_81C7990
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D1148
+
+ thumb_func_start sub_81D1178
+sub_81D1178: @ 81D1178
+ push {lr}
+ ldrh r0, [r0, 0x10]
+ bl sub_818D820
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D1178
+
+ thumb_func_start sub_81D1184
+sub_81D1184: @ 81D1184
+ push {lr}
+ sub sp, 0x1C
+ add r1, sp, 0x14
+ add r2, sp, 0x18
+ add r0, sp, 0x10
+ bl sub_81D0760
+ add r0, sp, 0x10
+ ldrh r0, [r0]
+ ldr r1, [sp, 0x18]
+ ldr r2, [sp, 0x14]
+ movs r3, 0x28
+ str r3, [sp]
+ movs r3, 0x68
+ str r3, [sp, 0x4]
+ movs r3, 0xF
+ str r3, [sp, 0x8]
+ ldr r3, =0x0000ffff
+ str r3, [sp, 0xC]
+ movs r3, 0x1
+ bl sub_818D7D8
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, =gSprites
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r3
+ strb r1, [r2, 0x5]
+ add sp, 0x1C
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D1184
+
+ thumb_func_start sub_81D11D8
+sub_81D11D8: @ 81D11D8
+ push {lr}
+ ldrh r1, [r0, 0x10]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ movs r2, 0x20
+ negs r2, r2
+ movs r1, 0x28
+ movs r3, 0x6
+ bl sub_81D1258
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D11D8
+
+ thumb_func_start sub_81D11FC
+sub_81D11FC: @ 81D11FC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x10]
+ bl sub_818D820
+ movs r5, 0x20
+ negs r5, r5
+ adds r0, r5, 0
+ movs r1, 0x68
+ bl sub_81D1184
+ strh r0, [r4, 0x10]
+ ldrh r1, [r4, 0x10]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ adds r1, r5, 0
+ movs r2, 0x28
+ movs r3, 0x6
+ bl sub_81D1258
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D11FC
+
+ thumb_func_start sub_81D1234
+sub_81D1234: @ 81D1234
+ ldr r2, =gSprites
+ ldrh r1, [r0, 0x10]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, =SpriteCallbackDummy
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ bx lr
+ .pool
+ thumb_func_end sub_81D1234
+
+ thumb_func_start sub_81D1258
+sub_81D1258: @ 81D1258
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r6, r2, 0
+ adds r5, r3, 0
+ subs r0, r6, r1
+ strh r1, [r4, 0x20]
+ lsls r1, 4
+ strh r1, [r4, 0x2E]
+ lsls r0, 4
+ adds r1, r5, 0
+ bl __udivsi3
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ strh r6, [r4, 0x34]
+ ldr r0, =sub_81D1284
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D1258
+
+ thumb_func_start sub_81D1284
+sub_81D1284: @ 81D1284
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x32]
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _081D12C8
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x32]
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x2E]
+ adds r0, r1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bgt _081D12BA
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _081D12D0
+_081D12BA:
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ b _081D12D0
+_081D12C8:
+ ldrh r0, [r2, 0x34]
+ strh r0, [r2, 0x20]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_081D12D0:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D1284
+
+ thumb_func_start sub_81D12D8
+sub_81D12D8: @ 81D12D8
+ push {r4-r6,lr}
+ bl sub_81D1350
+ ldr r5, =gUnknown_030012C0
+ adds r0, r5, 0
+ bl sub_81D0914
+ adds r6, r0, 0
+ ldr r2, =gUnknown_030012C4
+ movs r1, 0
+ str r1, [r2]
+ ldr r0, [r5]
+ cmp r1, r0
+ bcs _081D130A
+ adds r4, r2, 0
+_081D12F6:
+ ldr r0, [r4]
+ ldm r6!, {r1}
+ bl sub_81D1370
+ ldr r1, [r4]
+ adds r1, 0x1
+ str r1, [r4]
+ ldr r0, [r5]
+ cmp r1, r0
+ bcc _081D12F6
+_081D130A:
+ ldr r4, =gUnknown_030012C0
+ adds r0, r4, 0
+ bl sub_81D092C
+ adds r6, r0, 0
+ ldr r2, =gUnknown_030012C4
+ movs r1, 0
+ str r1, [r2]
+ ldr r0, [r4]
+ cmp r1, r0
+ bcs _081D133A
+ adds r4, r2, 0
+_081D1322:
+ ldr r0, [r4]
+ adds r0, 0x1B
+ ldm r6!, {r1}
+ bl sub_81D1370
+ ldr r1, [r4]
+ adds r1, 0x1
+ str r1, [r4]
+ ldr r0, =gUnknown_030012C0
+ ldr r0, [r0]
+ cmp r1, r0
+ bcc _081D1322
+_081D133A:
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D12D8
+
+ thumb_func_start sub_81D1350
+sub_81D1350: @ 81D1350
+ push {lr}
+ sub sp, 0x8
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0x14
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect_Palette0
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D1350
+
+ thumb_func_start sub_81D1370
+sub_81D1370: @ 81D1370
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r6, r1, 0
+ movs r1, 0x9
+ bl __umodsi3
+ adds r5, r0, 0
+ lsls r5, 1
+ adds r5, 0xB
+ adds r0, r4, 0
+ movs r1, 0x9
+ bl __udivsi3
+ adds r4, r0, 0
+ lsls r4, 1
+ adds r4, 0x4
+ add r0, sp, 0x8
+ adds r1, r6, 0
+ bl sub_81D13BC
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ add r1, sp, 0x8
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl CopyToBgTilemapBufferRect
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D1370
+
+ thumb_func_start sub_81D13BC
+sub_81D13BC: @ 81D13BC
+ push {r4,r5,lr}
+ ldr r2, =gUnknown_08624BF8
+ lsls r1, 2
+ adds r1, r2
+ ldrh r3, [r1, 0x2]
+ adds r3, 0x2
+ lsls r3, 16
+ ldrh r1, [r1]
+ lsls r1, 1
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ lsrs r3, 4
+ adds r2, r1, 0
+ orrs r2, r3
+ strh r2, [r0]
+ movs r5, 0x80
+ lsls r5, 3
+ adds r4, r5, 0
+ orrs r2, r4
+ strh r2, [r0, 0x2]
+ adds r1, 0x1
+ orrs r1, r3
+ strh r1, [r0, 0x4]
+ orrs r1, r4
+ strh r1, [r0, 0x6]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D13BC
+
+ thumb_func_start sub_81D13FC
+sub_81D13FC: @ 81D13FC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gUnknown_08624C78
+ bl LoadCompressedObjectPic
+ ldr r0, =gUnknown_08624C80
+ bl sub_81C795C
+ ldr r0, =gUnknown_08624D04
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =gSprites
+ adds r1, r0
+ str r1, [r4, 0x14]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D13FC
+
+ thumb_func_start sub_81D1448
+sub_81D1448: @ 81D1448
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r6, r0, 0
+ bl sub_81D0944
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ movs r1, 0x9
+ bl __modsi3
+ adds r5, r0, 0
+ lsls r5, 4
+ adds r5, 0x60
+ adds r0, r4, 0
+ movs r1, 0x9
+ bl __divsi3
+ lsls r0, 4
+ adds r0, 0x28
+ ldr r1, [r6, 0x14]
+ movs r2, 0
+ mov r8, r2
+ strh r5, [r1, 0x20]
+ ldr r1, [r6, 0x14]
+ strh r0, [r1, 0x22]
+ bl sub_81D0954
+ adds r4, r0, 0
+ movs r0, 0x9
+ bl GetSpriteTileStartByTag
+ ldr r3, [r6, 0x14]
+ ldr r1, =gUnknown_08624BF8
+ lsls r4, 2
+ adds r4, r1
+ ldrh r1, [r4]
+ lsls r1, 4
+ adds r0, r1
+ ldr r2, =0x000003ff
+ adds r1, r2, 0
+ ands r0, r1
+ ldrh r2, [r3, 0x4]
+ ldr r1, =0xfffffc00
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3, 0x4]
+ ldrh r0, [r4, 0x2]
+ adds r0, 0xF
+ lsls r0, 16
+ lsrs r0, 16
+ bl IndexOfSpritePaletteTag
+ ldr r3, [r6, 0x14]
+ lsls r0, 4
+ ldrb r2, [r3, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x5]
+ ldr r0, [r6, 0x14]
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r1, [r6, 0x14]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, [r6, 0x14]
+ mov r1, r8
+ strh r1, [r0, 0x2E]
+ ldr r1, [r6, 0x14]
+ ldr r0, =sub_81D1538
+ str r0, [r1, 0x1C]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D1448
+
+ thumb_func_start sub_81D1500
+sub_81D1500: @ 81D1500
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, [r4, 0x14]
+ movs r0, 0x1
+ strh r0, [r1, 0x2E]
+ ldr r0, [r4, 0x14]
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldr r1, [r4, 0x14]
+ ldr r0, =sub_81D1538
+ str r0, [r1, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D1500
+
+ thumb_func_start sub_81D1524
+sub_81D1524: @ 81D1524
+ ldr r0, [r0, 0x14]
+ ldr r1, [r0, 0x1C]
+ ldr r0, =SpriteCallbackDummy
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ bx lr
+ .pool
+ thumb_func_end sub_81D1524
+
+ thumb_func_start sub_81D1538
+sub_81D1538: @ 81D1538
+ push {lr}
+ adds r3, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _081D156A
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ movs r0, 0x1
+ ldrh r1, [r3, 0x2E]
+ ands r1, r0
+ lsls r1, 2
+ mov r0, r12
+ ldrb r2, [r0]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r3, 0x1C]
+_081D156A:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D1538
+
+ thumb_func_start sub_81D1574
+sub_81D1574: @ 81D1574
+ push {lr}
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bhi _081D15A4
+ lsls r0, 2
+ ldr r1, =_081D158C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081D158C:
+ .4byte _081D15A4
+ .4byte _081D15A8
+ .4byte _081D15AC
+ .4byte _081D15B4
+ .4byte _081D15B0
+ .4byte _081D15A8
+_081D15A4:
+ movs r0, 0
+ b _081D15B6
+_081D15A8:
+ movs r0, 0x1
+ b _081D15B6
+_081D15AC:
+ movs r0, 0x2
+ b _081D15B6
+_081D15B0:
+ movs r0, 0x3
+ b _081D15B6
+_081D15B4:
+ movs r0, 0x4
+_081D15B6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D1574
+
+ thumb_func_start sub_81D15BC
+sub_81D15BC: @ 81D15BC
+ ldr r1, =gUnknown_085500A4
+ lsls r0, 4
+ adds r0, r1
+ ldrh r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_81D15BC
+
+ thumb_func_start sub_81D15CC
+sub_81D15CC: @ 81D15CC
+ push {lr}
+ adds r3, r0, 0
+ movs r1, 0
+ ldr r2, =gUnknown_085500A4
+_081D15D4:
+ ldrh r0, [r2]
+ cmp r0, r3
+ bne _081D15E4
+ adds r0, r1, 0
+ b _081D15F0
+ .pool
+_081D15E4:
+ adds r2, 0x10
+ adds r1, 0x1
+ cmp r1, 0x4D
+ ble _081D15D4
+ movs r0, 0x1
+ negs r0, r0
+_081D15F0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D15CC
+
+ thumb_func_start sub_81D15F4
+sub_81D15F4: @ 81D15F4
+ push {r4,lr}
+ cmp r0, 0x14
+ bhi _081D1620
+ ldr r1, =gUnknown_086252A8
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_81D1574
+ ldr r1, =gUnknown_086252FC
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _081D1622
+ .pool
+_081D1620:
+ movs r0, 0
+_081D1622:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D15F4
+
+ thumb_func_start sub_81D1628
+sub_81D1628: @ 81D1628
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x2]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ beq _081D1644
+ adds r0, r1, 0
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ b _081D1646
+ .pool
+_081D1644:
+ movs r0, 0x1
+_081D1646:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D1628
+
+ thumb_func_start sub_81D164C
+sub_81D164C: @ 81D164C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x2]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ beq _081D1668
+ adds r0, r1, 0
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ b _081D166A
+ .pool
+_081D1668:
+ movs r0, 0x1
+_081D166A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D164C
+
+ thumb_func_start sub_81D1670
+sub_81D1670: @ 81D1670
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x2]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ beq _081D168C
+ adds r0, r1, 0
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ b _081D168E
+ .pool
+_081D168C:
+ movs r0, 0x1
+_081D168E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D1670
+
+ thumb_func_start sub_81D1694
+sub_81D1694: @ 81D1694
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldrb r0, [r2, 0x1]
+ ldrb r1, [r1, 0x8]
+ cmp r0, r1
+ beq _081D16AC
+ movs r0, 0
+ b _081D16C6
+ .pool
+_081D16AC:
+ ldrh r1, [r2, 0x2]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ beq _081D16C4
+ adds r0, r1, 0
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ b _081D16C6
+ .pool
+_081D16C4:
+ movs r0, 0x1
+_081D16C6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D1694
+
+ thumb_func_start sub_81D16CC
+sub_81D16CC: @ 81D16CC
+ push {lr}
+ ldrh r0, [r0, 0x2]
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D16CC
+
+ thumb_func_start sub_81D16DC
+sub_81D16DC: @ 81D16DC
+ push {r4,lr}
+ cmp r0, 0x14
+ bhi _081D170C
+ ldr r1, =gUnknown_086252A8
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_81D1574
+ ldr r1, =gUnknown_08625310
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ lsrs r0, 24
+ b _081D170E
+ .pool
+_081D170C:
+ movs r0, 0
+_081D170E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D16DC
+
+ thumb_func_start sub_81D1714
+sub_81D1714: @ 81D1714
+ ldrb r0, [r0, 0x1]
+ bx lr
+ thumb_func_end sub_81D1714
+
+ thumb_func_start sub_81D1718
+sub_81D1718: @ 81D1718
+ ldrb r0, [r0, 0x1]
+ bx lr
+ thumb_func_end sub_81D1718
+
+ thumb_func_start sub_81D171C
+sub_81D171C: @ 81D171C
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r6, 0
+ ldr r7, =0x0000ffff
+ b _081D172E
+ .pool
+_081D172C:
+ adds r6, 0x1
+_081D172E:
+ ldr r0, [r5, 0x10]
+ lsls r4, r6, 2
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ cmp r0, r7
+ beq _081D1744
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _081D172C
+_081D1744:
+ ldr r0, [r5, 0x10]
+ adds r0, r4, r0
+ ldrb r0, [r0, 0x2]
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D171C
+
+ thumb_func_start sub_81D1750
+sub_81D1750: @ 81D1750
+ movs r0, 0xD5
+ bx lr
+ thumb_func_end sub_81D1750
+
+ thumb_func_start sub_81D1754
+sub_81D1754: @ 81D1754
+ movs r0, 0xD5
+ bx lr
+ thumb_func_end sub_81D1754
+
+ thumb_func_start sub_81D1758
+sub_81D1758: @ 81D1758
+ push {r4,lr}
+ cmp r0, 0x14
+ bhi _081D1784
+ ldr r1, =gUnknown_086252A8
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_81D1574
+ ldr r1, =gUnknown_08625324
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _081D1786
+ .pool
+_081D1784:
+ movs r0, 0
+_081D1786:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D1758
+
+ thumb_func_start sub_81D178C
+sub_81D178C: @ 81D178C
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_81D178C
+
+ thumb_func_start sub_81D1790
+sub_81D1790: @ 81D1790
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x4]
+ cmp r0, 0x48
+ bhi _081D17B8
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x000009ca
+ adds r0, r2
+ ldrh r1, [r1, 0x4]
+ adds r0, r1
+ ldrb r1, [r0]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ b _081D17BA
+ .pool
+_081D17B8:
+ movs r0, 0
+_081D17BA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D1790
+
+ thumb_func_start sub_81D17C0
+sub_81D17C0: @ 81D17C0
+ ldr r1, =gSaveBlock1Ptr
+ ldr r1, [r1]
+ ldr r2, =0x000009ca
+ adds r1, r2
+ ldrh r0, [r0, 0x4]
+ adds r1, r0
+ ldrb r1, [r1]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ bx lr
+ .pool
+ thumb_func_end sub_81D17C0
+
+ thumb_func_start sub_81D17E0
+sub_81D17E0: @ 81D17E0
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_81D17E0
+
+ thumb_func_start sub_81D17E4
+sub_81D17E4: @ 81D17E4
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_81D17E4
+
+ thumb_func_start sub_81D17E8
+sub_81D17E8: @ 81D17E8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ cmp r5, 0x14
+ bhi _081D1832
+ ldr r1, =gUnknown_086252A8
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_81D1574
+ adds r2, r0, 0
+ ldr r1, =gUnknown_08625338
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ cmp r0, 0
+ beq _081D1820
+_081D1812:
+ movs r0, 0x1
+ b _081D1834
+ .pool
+_081D1820:
+ movs r2, 0
+ ldr r1, =gUnknown_08625388
+_081D1824:
+ ldrh r0, [r1]
+ cmp r0, r5
+ beq _081D1812
+ adds r1, 0x18
+ adds r2, 0x1
+ cmp r2, 0x3
+ bls _081D1824
+_081D1832:
+ movs r0, 0
+_081D1834:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D17E8
+
+ thumb_func_start sub_81D1840
+sub_81D1840: @ 81D1840
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_81D1840
+
+ thumb_func_start sub_81D1844
+sub_81D1844: @ 81D1844
+ movs r0, 0x1
+ bx lr
+ thumb_func_end sub_81D1844
+
+ thumb_func_start sub_81D1848
+sub_81D1848: @ 81D1848
+ movs r0, 0x1
+ bx lr
+ thumb_func_end sub_81D1848
+
+ thumb_func_start sub_81D184C
+sub_81D184C: @ 81D184C
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_81D184C
+
+ thumb_func_start sub_81D1850
+sub_81D1850: @ 81D1850
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_81D1850
+
+ thumb_func_start sub_81D1854
+sub_81D1854: @ 81D1854
+ push {r4,lr}
+ cmp r0, 0x14
+ bhi _081D1880
+ ldr r1, =gUnknown_086252A8
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_81D1574
+ ldr r1, =gUnknown_0862534C
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _081D1882
+ .pool
+_081D1880:
+ movs r0, 0x4E
+_081D1882:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D1854
+
+ thumb_func_start sub_81D1888
+sub_81D1888: @ 81D1888
+ movs r0, 0x4E
+ bx lr
+ thumb_func_end sub_81D1888
+
+ thumb_func_start sub_81D188C
+sub_81D188C: @ 81D188C
+ ldrh r0, [r0, 0x4]
+ bx lr
+ thumb_func_end sub_81D188C
+
+ thumb_func_start sub_81D1890
+sub_81D1890: @ 81D1890
+ ldrh r0, [r0, 0x4]
+ bx lr
+ thumb_func_end sub_81D1890
+
+ thumb_func_start sub_81D1894
+sub_81D1894: @ 81D1894
+ movs r0, 0x4E
+ bx lr
+ thumb_func_end sub_81D1894
+
+ thumb_func_start sub_81D1898
+sub_81D1898: @ 81D1898
+ movs r0, 0x4E
+ bx lr
+ thumb_func_end sub_81D1898
+
+ thumb_func_start sub_81D189C
+sub_81D189C: @ 81D189C
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ cmp r0, 0x14
+ bhi _081D18C2
+ ldr r1, =gUnknown_086252A8
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_81D1574
+ ldr r1, =gUnknown_08625360
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl _call_via_r2
+_081D18C2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D189C
+
+ thumb_func_start sub_81D18D0
+sub_81D18D0: @ 81D18D0
+ push {lr}
+ ldr r0, [r0, 0xC]
+ bl sub_81D1920
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D18D0
+
+ thumb_func_start sub_81D18DC
+sub_81D18DC: @ 81D18DC
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ ldrb r0, [r3]
+ cmp r0, 0x5
+ beq _081D18F0
+ ldr r0, [r3, 0x10]
+ bl sub_81D1920
+ b _081D18F8
+_081D18F0:
+ ldr r0, [r3, 0x10]
+ ldrh r1, [r3, 0x4]
+ bl sub_81D199C
+_081D18F8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D18DC
+
+ thumb_func_start sub_81D18FC
+sub_81D18FC: @ 81D18FC
+ push {lr}
+ ldr r0, [r0, 0xC]
+ bl sub_81D1920
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D18FC
+
+ thumb_func_start sub_81D1908
+sub_81D1908: @ 81D1908
+ push {lr}
+ ldr r0, [r0, 0xC]
+ bl sub_81D1920
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D1908
+
+ thumb_func_start sub_81D1914
+sub_81D1914: @ 81D1914
+ push {lr}
+ adds r0, r1, 0
+ bl sub_8197080
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D1914
+
+ thumb_func_start sub_81D1920
+sub_81D1920: @ 81D1920
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ mov r9, r1
+ movs r5, 0
+ ldr r0, [r6]
+ cmp r0, 0
+ beq _081D1940
+ adds r1, r6, 0
+_081D1936:
+ adds r1, 0x8
+ adds r5, 0x1
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _081D1936
+_081D1940:
+ cmp r5, 0
+ beq _081D1946
+ subs r5, 0x1
+_081D1946:
+ ldr r0, =0x0000ffff
+ mov r8, r0
+ lsls r0, r5, 3
+ adds r0, 0x4
+ adds r4, r0, r6
+ b _081D195C
+ .pool
+_081D1958:
+ subs r4, 0x8
+ subs r5, 0x1
+_081D195C:
+ lsls r7, r5, 3
+ cmp r5, 0
+ beq _081D1974
+ ldrh r0, [r4]
+ cmp r0, r8
+ beq _081D1958
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081D1958
+_081D1974:
+ adds r4, r7, r6
+ ldrh r1, [r4, 0x6]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ beq _081D1984
+ adds r0, r1, 0
+ bl FlagSet
+_081D1984:
+ ldr r1, [r4]
+ mov r0, r9
+ bl StringExpandPlaceholders
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D1920
+
+ thumb_func_start sub_81D199C
+sub_81D199C: @ 81D199C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r6, r0, 0
+ mov r10, r2
+ lsls r1, 16
+ lsrs r7, r1, 16
+ movs r5, 0
+ ldr r0, [r6]
+ cmp r0, 0
+ beq _081D19E6
+ ldrh r0, [r6, 0x4]
+ ldr r1, =0x0000fffe
+ cmp r0, r1
+ beq _081D1A24
+ ldr r0, =0x0000ffff
+ mov r9, r0
+ mov r8, r1
+ adds r4, r6, 0
+_081D19C6:
+ ldrh r0, [r4, 0x4]
+ cmp r0, r9
+ beq _081D19D6
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D19E6
+_081D19D6:
+ adds r4, 0x8
+ adds r5, 0x1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _081D19E6
+ ldrh r0, [r4, 0x4]
+ cmp r0, r8
+ bne _081D19C6
+_081D19E6:
+ lsls r0, r5, 3
+ adds r0, r6
+ ldrh r1, [r0, 0x4]
+ ldr r0, =0x0000fffe
+ cmp r1, r0
+ beq _081D1A24
+ cmp r5, 0
+ beq _081D19F8
+ subs r5, 0x1
+_081D19F8:
+ lsls r0, r5, 3
+ adds r4, r0, r6
+ ldrh r1, [r4, 0x6]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ beq _081D1A0A
+ adds r0, r1, 0
+ bl FlagSet
+_081D1A0A:
+ ldr r1, [r4]
+ mov r0, r10
+ bl StringExpandPlaceholders
+ b _081D1A5C
+ .pool
+_081D1A1C:
+ adds r5, 0x2
+ b _081D1A50
+_081D1A20:
+ adds r5, 0x3
+ b _081D1A50
+_081D1A24:
+ ldr r0, =0x00000864
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D1A50
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x000009ca
+ adds r0, r1
+ adds r0, r7
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081D1A1C
+ adds r0, r7, 0
+ bl sub_80B2318
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _081D1A20
+ adds r5, 0x1
+_081D1A50:
+ lsls r0, r5, 3
+ adds r0, r6
+ ldr r1, [r0]
+ mov r0, r10
+ bl StringExpandPlaceholders
+_081D1A5C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D199C
+
+ thumb_func_start sub_81D1A78
+sub_81D1A78: @ 81D1A78
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ adds r6, r2, 0
+ cmp r0, 0x14
+ bhi _081D1AA2
+ ldr r1, =gUnknown_086252A8
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_81D1574
+ ldr r1, =gUnknown_08625374
+ lsls r0, 2
+ adds r0, r1
+ ldr r3, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl _call_via_r3
+_081D1AA2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D1A78
+
+ thumb_func_start sub_81D1AB0
+sub_81D1AB0: @ 81D1AB0
+ ldr r3, [r0, 0x4]
+ str r3, [r1]
+ ldr r0, [r0, 0x8]
+ str r0, [r2]
+ bx lr
+ thumb_func_end sub_81D1AB0
+
+ thumb_func_start sub_81D1ABC
+sub_81D1ABC: @ 81D1ABC
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ adds r4, r0, 0
+ ldr r0, [r4, 0xC]
+ cmp r0, 0
+ bne _081D1AD0
+ ldrh r0, [r4, 0x4]
+ bl sub_81D1B0C
+ b _081D1AD2
+_081D1AD0:
+ str r0, [r2]
+_081D1AD2:
+ ldr r0, [r4, 0x8]
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D1ABC
+
+ thumb_func_start sub_81D1ADC
+sub_81D1ADC: @ 81D1ADC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldrh r0, [r4, 0x4]
+ bl sub_81D1B0C
+ ldr r0, [r4, 0x8]
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D1ADC
+
+ thumb_func_start sub_81D1AF4
+sub_81D1AF4: @ 81D1AF4
+ ldr r3, [r0, 0x4]
+ str r3, [r1]
+ ldr r0, [r0, 0x8]
+ str r0, [r2]
+ bx lr
+ thumb_func_end sub_81D1AF4
+
+ thumb_func_start sub_81D1B00
+sub_81D1B00: @ 81D1B00
+ ldr r3, [r0, 0x4]
+ str r3, [r1]
+ ldr r0, [r0, 0x8]
+ str r0, [r2]
+ bx lr
+ thumb_func_end sub_81D1B00
+
+ thumb_func_start sub_81D1B0C
+sub_81D1B0C: @ 81D1B0C
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ bl sub_81D15BC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTrainers
+ adds r1, r0
+ ldrb r2, [r1, 0x1]
+ movs r0, 0xD
+ muls r0, r2
+ ldr r2, =gTrainerClassNames
+ adds r0, r2
+ str r0, [r4]
+ adds r1, 0x4
+ str r1, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D1B0C
+
+ thumb_func_start sub_81D1B40
+sub_81D1B40: @ 81D1B40
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ movs r5, 0
+ ldr r2, =gUnknown_08625388
+ movs r0, 0x8
+ adds r0, r2
+ mov r9, r0
+_081D1B54:
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, r6
+ bne _081D1BBC
+ adds r4, r5, 0x1
+ lsls r1, 2
+ mov r8, r1
+ cmp r4, 0x3
+ bhi _081D1BA8
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, r6
+ bne _081D1BA8
+ ldr r7, =gUnknown_08625388
+_081D1B7C:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r7, 0x4
+ adds r0, r1
+ ldrh r0, [r0]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D1BA8
+ adds r5, r4, 0
+ adds r4, r5, 0x1
+ cmp r4, 0x3
+ bhi _081D1BA8
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r7
+ ldrh r0, [r0]
+ cmp r0, r6
+ beq _081D1B7C
+_081D1BA8:
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ add r0, r8
+ add r0, r9
+ ldr r0, [r0]
+ b _081D1BC4
+ .pool
+_081D1BBC:
+ adds r5, 0x1
+ cmp r5, 0x3
+ bls _081D1B54
+ movs r0, 0
+_081D1BC4:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D1B40
+
+ thumb_func_start sub_81D1BD0
+sub_81D1BD0: @ 81D1BD0
+ push {lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r1, =gUnknown_08625388
+_081D1BD8:
+ ldrh r0, [r1]
+ cmp r0, r3
+ bne _081D1BE8
+ ldrh r0, [r1, 0x2]
+ b _081D1BF4
+ .pool
+_081D1BE8:
+ adds r1, 0x18
+ adds r2, 0x1
+ cmp r2, 0x3
+ bls _081D1BD8
+ movs r0, 0x1
+ negs r0, r0
+_081D1BF4:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D1BD0
+
+ thumb_func_start sub_81D1BF8
+sub_81D1BF8: @ 81D1BF8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+_081D1BFE:
+ adds r0, r4, 0
+ bl sub_81D1854
+ cmp r0, 0x4E
+ beq _081D1C10
+ cmp r0, r5
+ bne _081D1C10
+ movs r0, 0x1
+ b _081D1C18
+_081D1C10:
+ adds r4, 0x1
+ cmp r4, 0x14
+ ble _081D1BFE
+ movs r0, 0
+_081D1C18:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D1BF8
+
+ thumb_func_start sub_81D1C20
+sub_81D1C20: @ 81D1C20
+ push {lr}
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ bl sub_81D15CC
+ cmp r0, 0
+ blt _081D1C3C
+ movs r1, 0xAE
+ lsls r1, 1
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagSet
+_081D1C3C:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D1C20
+
+ thumb_func_start sub_81D1C44
+sub_81D1C44: @ 81D1C44
+ push {r4,lr}
+ lsls r0, 24
+ ldr r4, =gUnknown_0203CF4C
+ lsrs r0, 21
+ adds r0, 0x8
+ bl Alloc
+ str r0, [r4]
+ cmp r0, 0
+ bne _081D1C60
+ movs r0, 0
+ b _081D1C7A
+ .pool
+_081D1C60:
+ movs r2, 0
+ ldr r4, =gUnknown_0203CF48
+ movs r3, 0xFF
+_081D1C66:
+ adds r0, r2, r4
+ ldrb r1, [r0]
+ orrs r1, r3
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _081D1C66
+ movs r0, 0x1
+_081D1C7A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D1C44
+
+ thumb_func_start sub_81D1C84
+sub_81D1C84: @ 81D1C84
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r6, =gUnknown_0203CF48
+ adds r5, r4, r6
+ ldrb r0, [r5]
+ cmp r0, 0xFF
+ bne _081D1CEC
+ cmp r4, 0x2
+ bne _081D1CD4
+ ldr r0, =gUnknown_086253E8
+ ldr r1, [r0, 0x14]
+ ldr r0, [r0, 0x10]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r0, =gUnknown_085DFF04
+ movs r1, 0x4
+ 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
+ strb r0, [r6, 0x2]
+ b _081D1CE0
+ .pool
+_081D1CD4:
+ lsls r0, r4, 3
+ ldr r1, =gUnknown_086253E8
+ adds r0, r1
+ bl AddWindow
+ strb r0, [r5]
+_081D1CE0:
+ ldr r0, =gUnknown_0203CF48
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ movs r1, 0
+ bl SetStandardWindowBorderStyle
+_081D1CEC:
+ ldr r0, =gUnknown_0203CF48
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D1C84
+
+ thumb_func_start sub_81D1D04
+sub_81D1D04: @ 81D1D04
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_0203CF48
+ adds r4, r0
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8198070
+ ldrb r0, [r4]
+ bl ClearWindowTilemap
+ ldrb r0, [r4]
+ bl RemoveWindow
+ movs r0, 0xFF
+ strb r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D1D04
+
+ thumb_func_start sub_81D1D34
+sub_81D1D34: @ 81D1D34
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_0203CF48
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_81D1D34
+
+ thumb_func_start sub_81D1D44
+sub_81D1D44: @ 81D1D44
+ push {r4,r5,lr}
+ sub sp, 0x34
+ adds r3, r1, 0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r3, r0
+ beq _081D1DAC
+ ldr r0, =gSaveBlock1Ptr
+ lsls r1, r3, 3
+ adds r1, r3
+ lsls r1, 2
+ ldr r0, [r0]
+ adds r1, r0
+ ldr r0, =0x00002cca
+ adds r1, r0
+ add r0, sp, 0x14
+ bl StringCopy
+ add r0, sp, 0x14
+ bl sub_81DB52C
+ add r0, sp, 0x14
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5
+ bhi _081D1D8C
+ add r0, sp, 0x14
+ movs r1, 0x1
+ bl ConvertInternationalString
+_081D1D8C:
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ ldr r0, =gUnknown_08625400
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp, 0xC]
+ add r0, sp, 0x14
+ str r0, [sp, 0x10]
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0x8
+ adds r3, r5, 0
+ bl AddTextPrinterParametrized2
+_081D1DAC:
+ add sp, 0x34
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D1D44
+
+ thumb_func_start sub_81D1DC0
+sub_81D1DC0: @ 81D1DC0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r5, r0, 0
+ movs r3, 0
+ ldr r7, =gUnknown_0203CF4C
+ ldr r0, =gText_Cancel2
+ mov r12, r0
+ ldr r4, =gUnknown_03006310
+ ldr r1, =gUnknown_0203CF48
+ mov r8, r1
+ ldr r2, =sub_81D1E7C
+ mov r9, r2
+ ldr r0, =sub_81D1D44
+ mov r10, r0
+ ldrb r1, [r5, 0x5]
+ cmp r3, r1
+ bcs _081D1E02
+ adds r6, r7, 0
+ ldr r2, =gUnknown_08625403
+_081D1DEC:
+ ldr r1, [r6]
+ lsls r0, r3, 3
+ adds r0, r1
+ str r2, [r0]
+ str r3, [r0, 0x4]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldrb r0, [r5, 0x5]
+ cmp r3, r0
+ bcc _081D1DEC
+_081D1E02:
+ ldr r2, [r7]
+ lsls r0, r3, 3
+ adds r0, r2
+ mov r1, r12
+ str r1, [r0]
+ movs r1, 0x2
+ negs r1, r1
+ str r1, [r0, 0x4]
+ str r2, [r4]
+ ldrb r0, [r5, 0x5]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0xC]
+ mov r2, r8
+ ldrb r0, [r2, 0x1]
+ strb r0, [r4, 0x10]
+ strb r1, [r4, 0x11]
+ movs r0, 0x8
+ strb r0, [r4, 0x12]
+ strb r1, [r4, 0x13]
+ strh r0, [r4, 0xE]
+ movs r0, 0x29
+ strb r0, [r4, 0x14]
+ movs r0, 0x31
+ strb r0, [r4, 0x15]
+ mov r0, r9
+ str r0, [r4, 0x4]
+ mov r1, r10
+ str r1, [r4, 0x8]
+ movs r0, 0x1
+ strb r0, [r4, 0x17]
+ movs r0, 0
+ strb r0, [r4, 0x16]
+ ldrh r1, [r5, 0x2]
+ ldrh r2, [r5]
+ adds r0, r4, 0
+ bl ListMenuInit
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D1DC0
+
+ thumb_func_start sub_81D1E7C
+sub_81D1E7C: @ 81D1E7C
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x1
+ beq _081D1E8C
+ movs r0, 0x5
+ bl PlaySE
+_081D1E8C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D1E7C
+
+ thumb_func_start sub_81D1E90
+sub_81D1E90: @ 81D1E90
+ push {r4,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x5]
+ ldrb r1, [r4, 0x4]
+ subs r0, r1
+ adds r0, 0x1
+ str r0, [sp]
+ movs r0, 0x6E
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ adds r0, r4, 0x2
+ str r0, [sp, 0xC]
+ movs r0, 0x2
+ movs r1, 0xC8
+ movs r2, 0xC
+ movs r3, 0x94
+ bl AddScrollIndicatorArrowPairParametrized
+ strb r0, [r4, 0x9]
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D1E90
+
+ thumb_func_start sub_81D1EC0
+sub_81D1EC0: @ 81D1EC0
+ push {lr}
+ ldr r0, =gUnknown_0203CF4C
+ ldr r0, [r0]
+ bl Free
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D1EC0
+
+ thumb_func_start sub_81D1ED4
+sub_81D1ED4: @ 81D1ED4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r3, r0, 0
+ movs r6, 0
+ movs r7, 0
+_081D1EE6:
+ movs r2, 0
+ lsls r5, r6, 2
+ adds r0, r6, 0x1
+ mov r10, r0
+ adds r4, r5, 0
+_081D1EF0:
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r4, r0
+ adds r0, r3, r0
+ adds r1, r0, 0
+ adds r1, 0x64
+ strh r7, [r1]
+ adds r0, 0x66
+ strh r7, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x9
+ bls _081D1EF0
+ movs r2, 0
+ mov r9, r2
+ str r5, [sp]
+ movs r1, 0x9B
+ mov r8, r1
+ movs r4, 0x5B
+ mov r12, r4
+_081D1F1C:
+ lsls r0, r2, 2
+ adds r0, r2
+ adds r1, r6, r0
+ adds r1, r3, r1
+ mov r4, r9
+ strb r4, [r1]
+ lsls r0, 2
+ ldr r1, [sp]
+ adds r0, r1, r0
+ adds r0, r3, r0
+ mov r4, r8
+ strh r4, [r0, 0x14]
+ mov r1, r12
+ strh r1, [r0, 0x16]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _081D1F1C
+ adds r1, r3, r5
+ movs r2, 0x96
+ lsls r2, 1
+ adds r0, r1, r2
+ strh r7, [r0]
+ movs r4, 0x97
+ lsls r4, 1
+ adds r0, r1, r4
+ strh r7, [r0]
+ mov r1, r10
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x4
+ bls _081D1EE6
+ movs r2, 0xD5
+ lsls r2, 2
+ adds r0, r3, r2
+ movs r1, 0
+ strb r1, [r0]
+ ldr r4, =0x00000352
+ adds r0, r3, r4
+ strh r1, [r0]
+ 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_81D1ED4
+
+ thumb_func_start sub_81D1F84
+sub_81D1F84: @ 81D1F84
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r8, r0
+ str r1, [sp]
+ mov r9, r2
+ movs r7, 0
+_081D1F98:
+ lsls r4, r7, 2
+ ldr r1, [sp]
+ adds r0, r4, r1
+ ldrh r1, [r0]
+ lsls r5, r1, 8
+ mov r2, r9
+ adds r0, r4, r2
+ ldrh r0, [r0]
+ subs r0, r1
+ lsls r0, 8
+ movs r1, 0xA
+ bl __divsi3
+ adds r6, r0, 0
+ movs r3, 0
+ adds r7, 0x1
+ mov r10, r7
+ mov r12, r4
+_081D1FBC:
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ add r0, r12
+ add r0, r8
+ asrs r2, r5, 8
+ asrs r1, r5, 7
+ movs r7, 0x1
+ ands r1, r7
+ adds r2, r1
+ adds r0, 0x64
+ strh r2, [r0]
+ adds r5, r6
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x8
+ bls _081D1FBC
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r4, r0
+ add r0, r8
+ mov r1, r9
+ adds r2, r4, r1
+ ldrh r1, [r2]
+ adds r0, 0x64
+ strh r1, [r0]
+ ldr r7, [sp]
+ adds r0, r4, r7
+ ldrh r1, [r0, 0x2]
+ lsls r5, r1, 8
+ ldrh r0, [r2, 0x2]
+ subs r0, r1
+ lsls r0, 8
+ movs r1, 0xA
+ bl __divsi3
+ adds r6, r0, 0
+ movs r3, 0
+ str r4, [sp, 0x4]
+ movs r0, 0x1
+ mov r12, r0
+_081D2012:
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, [sp, 0x4]
+ adds r0, r1, r0
+ add r0, r8
+ asrs r2, r5, 8
+ asrs r1, r5, 7
+ mov r7, r12
+ ands r1, r7
+ adds r2, r1
+ adds r0, 0x66
+ strh r2, [r0]
+ adds r5, r6
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x8
+ bls _081D2012
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r4, r0
+ add r0, r8
+ mov r2, r9
+ adds r1, r4, r2
+ ldrh r1, [r1, 0x2]
+ adds r0, 0x66
+ strh r1, [r0]
+ mov r7, r10
+ lsls r0, r7, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x4
+ bls _081D1F98
+ ldr r1, =0x00000352
+ add r1, r8
+ movs r0, 0
+ strh r0, [r1]
+ 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_81D1F84
+
+ thumb_func_start sub_81D2074
+sub_81D2074: @ 81D2074
+ push {r4,lr}
+ adds r1, r0, 0
+ ldr r0, =0x00000352
+ adds r4, r1, r0
+ ldrh r0, [r4]
+ cmp r0, 0x9
+ bls _081D208C
+ movs r0, 0
+ b _081D20A6
+ .pool
+_081D208C:
+ adds r0, r1, 0
+ bl sub_81D2230
+ ldrh r1, [r4]
+ adds r1, 0x1
+ strh r1, [r4]
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0xA
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+_081D20A6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D2074
+
+ thumb_func_start sub_81D20AC
+sub_81D20AC: @ 81D20AC
+ ldr r1, =0x00000355
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_81D20AC
+
+ thumb_func_start sub_81D20BC
+sub_81D20BC: @ 81D20BC
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r1, =0x00000355
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _081D20D4
+ cmp r0, 0x1
+ beq _081D20E2
+ b _081D20FA
+ .pool
+_081D20D4:
+ bl dp12_8087EA4
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r0, 0x1
+ b _081D20FC
+_081D20E2:
+ mov r0, sp
+ ldr r1, =gUnknown_08625404
+ ldm r1!, {r2,r3,r5}
+ stm r0!, {r2,r3,r5}
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80BA038
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_081D20FA:
+ movs r0, 0
+_081D20FC:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D20BC
+
+ thumb_func_start sub_81D2108
+sub_81D2108: @ 81D2108
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ adds r6, r0, 0
+ movs r1, 0xD5
+ lsls r1, 2
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081D21BE
+ adds r0, r6, 0
+ bl sub_81D24A4
+ adds r0, r6, 0
+ bl sub_81D2634
+ movs r7, 0
+ ldr r5, =gUnknown_02038C28
+ mov r12, r5
+ movs r0, 0xF0
+ lsls r0, 3
+ add r0, r12
+ mov r9, r0
+ movs r1, 0xA0
+ lsls r1, 1
+ adds r1, r6, r1
+ str r1, [sp]
+ ldr r5, =0x0000ffff
+ mov r8, r5
+ movs r0, 0xA1
+ lsls r0, 1
+ adds r0, r6, r0
+ str r0, [sp, 0x4]
+ movs r1, 0x92
+ lsls r1, 2
+ adds r1, r6, r1
+ str r1, [sp, 0x8]
+ ldr r5, =0x0000024a
+ adds r5, r6
+ mov r10, r5
+_081D215E:
+ adds r2, r7, 0
+ adds r2, 0x37
+ lsls r3, r2, 2
+ mov r0, r9
+ adds r0, r3, r0
+ str r0, [sp, 0xC]
+ add r3, r12
+ lsls r4, r7, 2
+ ldr r1, [sp]
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ lsls r0, 8
+ ldr r5, [sp, 0x4]
+ adds r1, r5, r4
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r3]
+ mov r1, r8
+ ands r0, r1
+ ldr r5, [sp, 0xC]
+ strh r0, [r5]
+ lsls r2, 1
+ adds r2, 0x1
+ lsls r2, 1
+ mov r0, r9
+ adds r3, r2, r0
+ add r2, r12
+ ldr r1, [sp, 0x8]
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ lsls r0, 8
+ add r4, r10
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r2]
+ mov r5, r8
+ ands r0, r5
+ strh r0, [r3]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x41
+ bls _081D215E
+ movs r0, 0xD5
+ lsls r0, 2
+ adds r1, r6, r0
+ movs r0, 0
+ strb r0, [r1]
+_081D21BE:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D2108
+
+ thumb_func_start sub_81D21DC
+sub_81D21DC: @ 81D21DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _081D21E8
+ movs r1, 0
+_081D21E8:
+ movs r0, 0x1
+ lsls r0, r1
+ movs r5, 0x1F
+ bics r5, r0
+ movs r0, 0x40
+ movs r1, 0xF0
+ bl SetGpuReg
+ movs r0, 0x42
+ movs r1, 0x9B
+ bl SetGpuReg
+ ldr r4, =0x00003879
+ movs r0, 0x44
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x46
+ adds r1, r4, 0
+ bl SetGpuReg
+ ldr r1, =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r5, 0
+ bl SetGpuReg
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D21DC
+
+ thumb_func_start sub_81D2230
+sub_81D2230: @ 81D2230
+ push {r4-r7,lr}
+ mov r12, r0
+ movs r4, 0
+ movs r7, 0x96
+ lsls r7, 1
+ add r7, r12
+ ldr r6, =0x00000352
+ add r6, r12
+ mov r5, r12
+ adds r5, 0x64
+_081D2244:
+ lsls r2, r4, 2
+ adds r3, r7, r2
+ ldrh r1, [r6]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0
+ adds r2, r5, r2
+ ldr r0, [r2]
+ str r0, [r3]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _081D2244
+ movs r1, 0xD5
+ lsls r1, 2
+ add r1, r12
+ movs r0, 0x1
+ strb r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D2230
+
+ thumb_func_start sub_81D2278
+sub_81D2278: @ 81D2278
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ str r0, [sp]
+ adds r6, r1, 0
+ adds r5, r2, 0
+ str r3, [sp, 0x4]
+ ldr r0, [sp, 0x38]
+ ldr r7, [sp, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r3, 0x2]
+ cmp r0, r1
+ bcs _081D22B2
+ adds r2, r0, 0
+ mov r10, r2
+ ldrh r0, [r3, 0x2]
+ ldrh r1, [r5]
+ lsls r4, r1, 10
+ ldrh r3, [r3]
+ str r3, [sp, 0x8]
+ b _081D22C6
+_081D22B2:
+ ldrh r0, [r5, 0x2]
+ ldr r1, [sp, 0x4]
+ ldrh r1, [r1, 0x2]
+ mov r10, r1
+ ldr r2, [sp, 0x4]
+ ldrh r1, [r2]
+ lsls r4, r1, 10
+ ldrh r3, [r5]
+ str r3, [sp, 0x8]
+ mov r2, r10
+_081D22C6:
+ subs r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0
+ beq _081D22DE
+ subs r0, r3, r1
+ lsls r0, 10
+ mov r1, r8
+ bl __divsi3
+ str r0, [sp, 0xC]
+_081D22DE:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r7, 0
+ bne _081D2328
+ mov r0, r10
+ subs r0, 0x38
+ lsls r0, 2
+ adds r6, r0
+ movs r5, 0
+ mov r3, r9
+ lsls r3, 1
+ mov r12, r3
+ ldr r0, [sp, 0x8]
+ add r0, r9
+ str r0, [sp, 0x10]
+ cmp r7, r8
+ bcs _081D23B6
+ movs r7, 0x1
+_081D2308:
+ adds r2, r3, r6
+ asrs r1, r4, 10
+ asrs r0, r4, 9
+ ands r0, r7
+ adds r1, r0
+ add r1, r9
+ strh r1, [r2]
+ ldr r1, [sp, 0xC]
+ adds r4, r1
+ adds r6, 0x4
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _081D2308
+ b _081D23B6
+_081D2328:
+ ldr r2, [sp, 0xC]
+ cmp r2, 0
+ ble _081D23C0
+ mov r0, r10
+ subs r0, 0x38
+ lsls r0, 2
+ adds r7, r0
+ movs r5, 0
+ mov r3, r9
+ lsls r3, 1
+ mov r12, r3
+ ldr r0, [sp, 0x8]
+ add r0, r9
+ str r0, [sp, 0x10]
+ cmp r5, r8
+ bcs _081D237A
+ ldr r0, =0x00026bff
+ cmp r4, r0
+ bgt _081D237A
+ mov r1, r12
+ str r1, [sp, 0x14]
+_081D2352:
+ ldr r3, [sp, 0x14]
+ adds r2, r3, r7
+ asrs r1, r4, 10
+ asrs r0, r4, 9
+ movs r3, 0x1
+ ands r0, r3
+ adds r1, r0
+ add r1, r9
+ strh r1, [r2]
+ ldr r0, [sp, 0xC]
+ adds r4, r0
+ adds r7, 0x4
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcs _081D237A
+ ldr r1, =0x00026bff
+ cmp r4, r1
+ ble _081D2352
+_081D237A:
+ mov r2, r10
+ adds r1, r2, r5
+ ldr r3, [sp]
+ movs r2, 0xD4
+ lsls r2, 2
+ adds r0, r3, r2
+ strh r1, [r0]
+ ldrh r0, [r0]
+ subs r0, 0x38
+ lsls r0, 2
+ adds r6, r0
+ cmp r5, r8
+ bcs _081D23B6
+ mov r3, r12
+ movs r7, 0x1
+_081D2398:
+ adds r2, r3, r6
+ asrs r1, r4, 10
+ asrs r0, r4, 9
+ ands r0, r7
+ adds r1, r0
+ add r1, r9
+ strh r1, [r2]
+ ldr r0, [sp, 0xC]
+ adds r4, r0
+ adds r6, 0x4
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _081D2398
+_081D23B6:
+ subs r0, r6, 0x4
+ b _081D248C
+ .pool
+_081D23C0:
+ ldr r1, [sp, 0xC]
+ cmp r1, 0
+ bge _081D2464
+ mov r0, r10
+ subs r0, 0x38
+ lsls r0, 2
+ adds r6, r0
+ movs r5, 0
+ mov r2, r9
+ lsls r2, 1
+ mov r12, r2
+ ldr r3, [sp, 0x8]
+ add r3, r9
+ str r3, [sp, 0x10]
+ cmp r5, r8
+ bcs _081D241E
+ adds r3, r2, r6
+ asrs r1, r4, 10
+ asrs r0, r4, 9
+ movs r2, 0x1
+ ands r0, r2
+ adds r1, r0
+ add r1, r9
+ strh r1, [r3]
+ b _081D2414
+_081D23F2:
+ ldr r0, [sp, 0xC]
+ adds r4, r0
+ adds r6, 0x4
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcs _081D241E
+ mov r1, r12
+ adds r3, r1, r6
+ asrs r2, r4, 10
+ asrs r0, r4, 9
+ movs r1, 0x1
+ ands r0, r1
+ adds r2, r0
+ add r2, r9
+ strh r2, [r3]
+_081D2414:
+ ldr r0, =0x00026bff
+ cmp r4, r0
+ bgt _081D23F2
+ movs r0, 0x9B
+ strh r0, [r3]
+_081D241E:
+ mov r2, r10
+ adds r1, r2, r5
+ ldr r3, [sp]
+ movs r2, 0xD4
+ lsls r2, 2
+ adds r0, r3, r2
+ strh r1, [r0]
+ ldrh r0, [r0]
+ subs r0, 0x38
+ lsls r0, 2
+ adds r7, r0
+ cmp r5, r8
+ bcs _081D245A
+ mov r3, r12
+ movs r6, 0x1
+_081D243C:
+ adds r2, r3, r7
+ asrs r1, r4, 10
+ asrs r0, r4, 9
+ ands r0, r6
+ adds r1, r0
+ add r1, r9
+ strh r1, [r2]
+ ldr r0, [sp, 0xC]
+ adds r4, r0
+ adds r7, 0x4
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _081D243C
+_081D245A:
+ subs r0, r7, 0x4
+ b _081D248C
+ .pool
+_081D2464:
+ ldr r1, [sp]
+ movs r2, 0xD4
+ lsls r2, 2
+ adds r0, r1, r2
+ mov r3, r10
+ strh r3, [r0]
+ mov r0, r10
+ subs r0, 0x38
+ lsls r0, 2
+ adds r6, r0
+ adds r7, r0
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r6, 0x2]
+ ldr r1, [sp, 0x4]
+ ldrh r0, [r1]
+ strh r0, [r7]
+ movs r0, 0x9B
+ strh r0, [r7, 0x2]
+ b _081D2494
+_081D248C:
+ add r0, r12
+ mov r2, sp
+ ldrh r2, [r2, 0x10]
+ strh r2, [r0]
+_081D2494:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D2278
+
+ thumb_func_start sub_81D24A4
+sub_81D24A4: @ 81D24A4
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ movs r0, 0x97
+ lsls r0, 1
+ adds r2, r4, r0
+ movs r3, 0x99
+ lsls r3, 1
+ adds r1, r4, r3
+ ldrh r0, [r2]
+ ldrh r3, [r1]
+ cmp r0, r3
+ bcs _081D24E0
+ adds r7, r0, 0
+ movs r0, 0xA0
+ lsls r0, 1
+ adds r1, r4, r0
+ movs r3, 0x96
+ lsls r3, 1
+ adds r2, r4, r3
+ subs r0, 0x10
+ adds r3, r4, r0
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ bl sub_81D2278
+ b _081D2500
+_081D24E0:
+ ldrh r7, [r1]
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r1, r4, r2
+ movs r3, 0x98
+ lsls r3, 1
+ adds r2, r4, r3
+ movs r0, 0x96
+ lsls r0, 1
+ adds r3, r4, r0
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ bl sub_81D2278
+_081D2500:
+ movs r1, 0xA0
+ lsls r1, 1
+ adds r5, r4, r1
+ movs r3, 0x98
+ lsls r3, 1
+ adds r2, r4, r3
+ movs r0, 0x9A
+ lsls r0, 1
+ adds r6, r4, r0
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r3, r6, 0
+ bl sub_81D2278
+ movs r2, 0
+ movs r1, 0x9B
+ lsls r1, 1
+ adds r0, r4, r1
+ movs r3, 0x9D
+ lsls r3, 1
+ adds r1, r4, r3
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bhi _081D253C
+ movs r2, 0x1
+_081D253C:
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r3, r4, r0
+ str r2, [sp]
+ movs r1, 0x92
+ lsls r1, 2
+ adds r0, r4, r1
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_81D2278
+ movs r2, 0x38
+ cmp r2, r7
+ bcs _081D257E
+ adds r6, r5, 0
+ movs r3, 0
+ movs r0, 0xA1
+ lsls r0, 1
+ adds r5, r4, r0
+_081D2566:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r1, r6, r0
+ strh r3, [r1]
+ adds r0, r5, r0
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r7
+ bcc _081D2566
+_081D257E:
+ movs r1, 0x97
+ lsls r1, 1
+ adds r0, r4, r1
+ ldrh r2, [r0]
+ movs r3, 0xD4
+ lsls r3, 2
+ adds r0, r4, r3
+ ldrh r1, [r0]
+ cmp r2, r1
+ bhi _081D25B2
+ movs r1, 0xA0
+ lsls r1, 1
+ adds r3, r4, r1
+ movs r5, 0x9B
+ adds r1, r0, 0
+_081D259C:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r0, r3, r0
+ strh r5, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r0, [r1]
+ cmp r2, r0
+ bls _081D259C
+_081D25B2:
+ movs r2, 0x9B
+ lsls r2, 1
+ adds r1, r4, r2
+ movs r3, 0xD4
+ lsls r3, 2
+ adds r0, r4, r3
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bcs _081D25C8
+ adds r0, r1, 0
+_081D25C8:
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x79
+ bhi _081D25F8
+ movs r0, 0xA0
+ lsls r0, 1
+ adds r6, r4, r0
+ movs r3, 0
+ movs r1, 0xA1
+ lsls r1, 1
+ adds r5, r4, r1
+_081D25E0:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r1, r6, r0
+ strh r3, [r1]
+ adds r0, r5, r0
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x79
+ bls _081D25E0
+_081D25F8:
+ movs r2, 0x38
+ movs r3, 0xA0
+ lsls r3, 1
+ adds r5, r4, r3
+ movs r0, 0xA1
+ lsls r0, 1
+ adds r4, r0
+ movs r6, 0x9B
+_081D2608:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r1, r0, 2
+ adds r3, r5, r1
+ ldrh r0, [r3]
+ cmp r0, 0
+ bne _081D2620
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081D2620
+ strh r6, [r3]
+_081D2620:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x79
+ bls _081D2608
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D24A4
+
+ thumb_func_start sub_81D2634
+sub_81D2634: @ 81D2634
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ movs r0, 0x97
+ lsls r0, 1
+ adds r2, r4, r0
+ movs r3, 0x9F
+ lsls r3, 1
+ adds r1, r4, r3
+ ldrh r0, [r2]
+ ldrh r5, [r1]
+ cmp r0, r5
+ bcs _081D266E
+ adds r6, r0, 0
+ movs r0, 0x92
+ lsls r0, 2
+ adds r1, r4, r0
+ subs r3, 0x12
+ adds r2, r4, r3
+ movs r5, 0x9E
+ lsls r5, 1
+ adds r3, r4, r5
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ bl sub_81D2278
+ b _081D2690
+_081D266E:
+ ldrh r6, [r1]
+ movs r0, 0x92
+ lsls r0, 2
+ adds r1, r4, r0
+ movs r3, 0x9E
+ lsls r3, 1
+ adds r2, r4, r3
+ movs r5, 0x96
+ lsls r5, 1
+ adds r3, r4, r5
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ bl sub_81D2278
+_081D2690:
+ movs r0, 0x92
+ lsls r0, 2
+ adds r5, r4, r0
+ movs r1, 0x9E
+ lsls r1, 1
+ adds r2, r4, r1
+ movs r0, 0x9C
+ lsls r0, 1
+ adds r3, r4, r0
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_81D2278
+ cmp r6, 0x38
+ ble _081D26C8
+ movs r0, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ subs r2, 0x38
+_081D26BC:
+ strh r0, [r1]
+ strh r0, [r1, 0x2]
+ adds r1, 0x4
+ subs r2, 0x1
+ cmp r2, 0
+ bne _081D26BC
+_081D26C8:
+ movs r1, 0x97
+ lsls r1, 1
+ adds r0, r4, r1
+ ldrh r2, [r0]
+ movs r3, 0xD4
+ lsls r3, 2
+ adds r0, r4, r3
+ ldrh r5, [r0]
+ cmp r2, r5
+ bgt _081D26F6
+ movs r3, 0x9B
+ adds r1, r0, 0
+ lsls r0, r2, 2
+ movs r5, 0xB5
+ lsls r5, 1
+ adds r0, r5
+ adds r0, r4
+_081D26EA:
+ strh r3, [r0]
+ adds r0, 0x4
+ adds r2, 0x1
+ ldrh r5, [r1]
+ cmp r2, r5
+ ble _081D26EA
+_081D26F6:
+ movs r1, 0x9D
+ lsls r1, 1
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ adds r1, r0, 0x1
+ movs r2, 0xD4
+ lsls r2, 2
+ adds r0, r4, r2
+ ldrh r0, [r0]
+ cmp r0, r1
+ bge _081D270E
+ adds r0, r1, 0
+_081D270E:
+ adds r2, r0, 0
+ cmp r2, 0x79
+ bgt _081D272C
+ movs r1, 0
+ lsls r0, r2, 2
+ movs r3, 0xB4
+ lsls r3, 1
+ adds r0, r3
+ adds r0, r4
+_081D2720:
+ strh r1, [r0]
+ strh r1, [r0, 0x2]
+ adds r0, 0x4
+ adds r2, 0x1
+ cmp r2, 0x79
+ ble _081D2720
+_081D272C:
+ movs r3, 0
+ movs r5, 0x92
+ lsls r5, 2
+ adds r1, r4, r5
+ movs r2, 0x41
+_081D2736:
+ ldrh r0, [r1]
+ ldrh r4, [r1, 0x2]
+ cmp r0, r4
+ bcc _081D2742
+ strh r3, [r1, 0x2]
+ strh r3, [r1]
+_081D2742:
+ adds r1, 0x4
+ subs r2, 0x1
+ cmp r2, 0
+ bge _081D2736
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D2634
+
+ thumb_func_start sub_81D2754
+sub_81D2754: @ 81D2754
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r6, r0, 0
+ mov r8, r1
+ ldr r1, =gUnknown_08625410
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r6, 0x1
+ movs r0, 0x9B
+ mov r3, r8
+ strh r0, [r3]
+ movs r0, 0x5B
+ subs r0, r2
+ strh r0, [r3, 0x2]
+ movs r7, 0x40
+ movs r0, 0
+ mov r12, r0
+ movs r2, 0x1
+ mov r9, r2
+ ldr r3, =gSineTable
+ mov r10, r3
+_081D2786:
+ adds r0, r7, 0
+ adds r0, 0x33
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r1, r12
+ lsls r0, r1, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r0, r2
+ lsrs r3, r0, 24
+ mov r12, r3
+ cmp r0, 0
+ bge _081D27A4
+ movs r0, 0x4
+ mov r12, r0
+_081D27A4:
+ mov r1, r12
+ lsls r0, r1, 24
+ asrs r4, r0, 24
+ cmp r4, 0x2
+ bne _081D27B4
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_081D27B4:
+ ldrb r0, [r6]
+ ldr r2, =gUnknown_08625410
+ adds r0, r2
+ ldrb r2, [r0]
+ adds r6, 0x1
+ lsls r0, r4, 2
+ mov r1, r8
+ adds r3, r0, r1
+ adds r0, r7, 0
+ adds r0, 0x40
+ lsls r0, 1
+ add r0, r10
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ muls r0, r2
+ asrs r5, r0, 8
+ adds r0, r5, 0
+ adds r0, 0x9B
+ strh r0, [r3]
+ lsls r0, r7, 1
+ add r0, r10
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r1, r2, 0
+ muls r1, r0
+ asrs r1, 8
+ movs r0, 0x5B
+ subs r0, r1
+ strh r0, [r3, 0x2]
+ cmp r4, 0x2
+ bgt _081D2800
+ cmp r2, 0x20
+ bne _081D27FA
+ cmp r4, 0x2
+ beq _081D2800
+_081D27FA:
+ adds r0, r5, 0
+ adds r0, 0x9C
+ strh r0, [r3]
+_081D2800:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r0, 0x4
+ bls _081D2786
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D2754
+
+ thumb_func_start sub_81D2824
+sub_81D2824: @ 81D2824
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gUnknown_08625510
+ bl InitWindows
+ bl DeactivateAllTextPrinters
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0xE0
+ bl sub_809882C
+ ldr r0, =gUnknown_0860F074
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ movs r4, 0
+_081D284A:
+ adds r0, r4, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _081D284A
+ cmp r5, 0
+ bne _081D287C
+ movs r0, 0
+ bl PutWindowTilemap
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1
+ movs r3, 0xE
+ bl SetWindowBorderStyle
+ b _081D288E
+ .pool
+_081D287C:
+ movs r0, 0x1
+ bl PutWindowTilemap
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x1
+ movs r3, 0xE
+ bl SetWindowBorderStyle
+_081D288E:
+ movs r0, 0x2
+ bl PutWindowTilemap
+ movs r0, 0x3
+ bl PutWindowTilemap
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0x1
+ movs r3, 0xE
+ bl SetWindowBorderStyle
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0x1
+ movs r3, 0xE
+ bl SetWindowBorderStyle
+ bl nullsub_79
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D2824
+
+ thumb_func_start nullsub_79
+nullsub_79: @ 81D28C4
+ bx lr
+ thumb_func_end nullsub_79
+
+ thumb_func_start sub_81D28C8
+sub_81D28C8: @ 81D28C8
+ push {r4-r7,lr}
+ lsls r1, 16
+ lsrs r4, r1, 16
+ ldr r3, =gUnknown_03006310
+ adds r2, r3, 0
+ ldr r1, =gUnknown_08625548
+ ldm r1!, {r5-r7}
+ stm r2!, {r5-r7}
+ ldm r1!, {r5-r7}
+ stm r2!, {r5-r7}
+ strh r4, [r3, 0xC]
+ str r0, [r3]
+ cmp r4, 0x5
+ bhi _081D28F0
+ strh r4, [r3, 0xE]
+ b _081D28F4
+ .pool
+_081D28F0:
+ movs r0, 0x6
+ strh r0, [r3, 0xE]
+_081D28F4:
+ ldrb r0, [r3, 0xE]
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D28C8
+
+ thumb_func_start sub_81D28FC
+sub_81D28FC: @ 81D28FC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ mov r9, r0
+ movs r0, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r5, =gUnknown_085EFA31
+ movs r0, 0x1
+ adds r1, r5, 0
+ movs r2, 0x80
+ bl GetStringCenterAlignXOffset
+ adds r4, r0, 0
+ lsls r3, r4, 24
+ lsrs r3, 24
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xFF
+ mov r8, r0
+ str r0, [sp, 0x4]
+ movs r7, 0
+ str r7, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x1
+ adds r2, r5, 0
+ bl PrintTextOnWindow
+ ldr r5, =gUnknown_085EFA52
+ movs r1, 0x29
+ mov r10, r1
+ str r1, [sp]
+ mov r0, r8
+ str r0, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x1
+ adds r2, r5, 0
+ movs r3, 0x4
+ bl PrintTextOnWindow
+ ldr r5, =gUnknown_085EFA56
+ movs r0, 0x1
+ adds r1, r5, 0
+ movs r2, 0x6A
+ bl GetStringRightAlignXOffset
+ adds r4, r0, 0
+ lsls r3, r4, 24
+ lsrs r3, 24
+ movs r1, 0x19
+ str r1, [sp]
+ mov r0, r8
+ str r0, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x1
+ adds r2, r5, 0
+ bl PrintTextOnWindow
+ ldr r5, =gUnknown_085EFA5D
+ movs r0, 0x1
+ adds r1, r5, 0
+ movs r2, 0x6A
+ bl GetStringRightAlignXOffset
+ adds r4, r0, 0
+ lsls r3, r4, 24
+ lsrs r3, 24
+ mov r1, r10
+ str r1, [sp]
+ mov r0, r8
+ str r0, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x1
+ adds r2, r5, 0
+ bl PrintTextOnWindow
+ movs r0, 0x2
+ negs r0, r0
+ cmp r9, r0
+ bne _081D29C4
+ movs r0, 0
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _081D2AB6
+ .pool
+_081D29C4:
+ mov r1, r9
+ lsls r0, r1, 1
+ add r0, r9
+ lsls r0, 2
+ ldr r1, =gBattleMoves
+ adds r6, r0, r1
+ ldrb r1, [r6, 0x2]
+ lsls r0, r1, 3
+ subs r0, r1
+ ldr r1, =gTypeNames
+ adds r5, r0, r1
+ movs r0, 0x19
+ str r0, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x1
+ adds r2, r5, 0
+ movs r3, 0x4
+ bl PrintTextOnWindow
+ ldr r1, =gUnknown_085EFA52
+ movs r0, 0x1
+ movs r2, 0
+ bl GetStringWidth
+ adds r4, r0, 0x4
+ ldrb r1, [r6, 0x4]
+ add r0, sp, 0xC
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ lsls r3, r4, 24
+ lsrs r3, 24
+ mov r0, r10
+ str r0, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x1
+ add r2, sp, 0xC
+ bl PrintTextOnWindow
+ ldrb r0, [r6, 0x1]
+ cmp r0, 0x1
+ bhi _081D2A3C
+ ldr r5, =gText_ThreeDashes
+ b _081D2A4A
+ .pool
+_081D2A3C:
+ ldrb r1, [r6, 0x1]
+ add r0, sp, 0xC
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ add r5, sp, 0xC
+_081D2A4A:
+ movs r0, 0x19
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r5, 0
+ movs r3, 0x6A
+ bl PrintTextOnWindow
+ ldrb r0, [r6, 0x3]
+ cmp r0, 0
+ bne _081D2A70
+ ldr r5, =gText_ThreeDashes
+ b _081D2A7E
+ .pool
+_081D2A70:
+ ldrb r1, [r6, 0x3]
+ add r0, sp, 0xC
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ add r5, sp, 0xC
+_081D2A7E:
+ movs r0, 0x29
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x1
+ adds r2, r5, 0
+ movs r3, 0x6A
+ bl PrintTextOnWindow
+ ldr r1, =gMoveDescriptionPointers
+ mov r0, r9
+ subs r0, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldr r5, [r0]
+ movs r0, 0x41
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x7
+ adds r2, r5, 0
+ movs r3, 0
+ bl PrintTextOnWindow
+_081D2AB6:
+ 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_81D28FC
+
+ thumb_func_start sub_81D2ACC
+sub_81D2ACC: @ 81D2ACC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ adds r4, r0, 0
+ bl sub_816137C
+ movs r0, 0x1
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r5, =gUnknown_085EFA3E
+ movs r0, 0x1
+ adds r1, r5, 0
+ movs r2, 0x80
+ bl GetStringCenterAlignXOffset
+ lsls r3, r0, 24
+ lsrs r3, 24
+ movs r0, 0x1
+ str r0, [sp]
+ movs r7, 0xFF
+ str r7, [sp, 0x4]
+ movs r6, 0
+ str r6, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r5, 0
+ bl PrintTextOnWindow
+ ldr r5, =gUnknown_085EFA67
+ movs r0, 0x1
+ adds r1, r5, 0
+ movs r2, 0x5C
+ bl GetStringRightAlignXOffset
+ lsls r3, r0, 24
+ lsrs r3, 24
+ movs r0, 0x19
+ mov r8, r0
+ str r0, [sp]
+ str r7, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ adds r2, r5, 0
+ bl PrintTextOnWindow
+ ldr r5, =gUnknown_085EFA6E
+ movs r0, 0x1
+ adds r1, r5, 0
+ movs r2, 0x5C
+ bl GetStringRightAlignXOffset
+ lsls r3, r0, 24
+ lsrs r3, 24
+ movs r0, 0x29
+ str r0, [sp]
+ str r7, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ adds r2, r5, 0
+ bl PrintTextOnWindow
+ movs r0, 0x2
+ negs r0, r0
+ cmp r4, r0
+ bne _081D2B6C
+ movs r0, 0x1
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _081D2BB8
+ .pool
+_081D2B6C:
+ lsls r4, 3
+ ldr r0, =gContestMoves
+ adds r4, r0
+ ldr r1, =gContestMoveTypeTextPointers
+ ldrb r0, [r4, 0x1]
+ lsls r0, 29
+ lsrs r0, 27
+ adds r0, r1
+ ldr r5, [r0]
+ mov r0, r8
+ str r0, [sp]
+ str r7, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ adds r2, r5, 0
+ movs r3, 0x4
+ bl PrintTextOnWindow
+ ldr r1, =gContestEffectDescriptionPointers
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r5, [r0]
+ movs r0, 0x41
+ str r0, [sp]
+ str r7, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x7
+ adds r2, r5, 0
+ movs r3, 0
+ bl PrintTextOnWindow
+ movs r0, 0x1
+ movs r1, 0x2
+ bl CopyWindowToVram
+_081D2BB8:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D2ACC
+
+ thumb_func_start sub_81D2BD0
+sub_81D2BD0: @ 81D2BD0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x1
+ beq _081D2BE2
+ movs r0, 0x5
+ bl PlaySE
+_081D2BE2:
+ adds r0, r4, 0
+ bl sub_81D28FC
+ adds r0, r4, 0
+ bl sub_81D2ACC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D2BD0
+
+ thumb_func_start sub_81D2BF4
+sub_81D2BF4: @ 81D2BF4
+ push {r4,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ movs r0, 0x3
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r2, =gTextFlags
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ bl sav2_get_text_speed
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ 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 r1, 0x1
+ adds r2, r4, 0
+ bl AddTextPrinterParametrized
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D2BF4
+
+ thumb_func_start sub_81D2C3C
+sub_81D2C3C: @ 81D2C3C
+ push {lr}
+ bl RunTextPrinters
+ movs r0, 0x3
+ bl IsTextPrinterActive
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D2C3C
+
+ thumb_func_start sub_81D2C50
+sub_81D2C50: @ 81D2C50
+ push {lr}
+ ldr r0, =gUnknown_08625540
+ movs r1, 0x1
+ movs r2, 0xE
+ movs r3, 0
+ bl CreateYesNoMenu
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D2C50
+
+ thumb_func_start sub_81D2C68
+sub_81D2C68: @ 81D2C68
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r0, 0xE
+ bne _081D2CA8
+ cmp r2, 0x2
+ beq _081D2C7E
+ cmp r2, 0x7
+ bne _081D2C94
+_081D2C7E:
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ adds r1, r2, 0
+ adds r2, r3, 0
+ bl GetMonData
+ b _081D2CCA
+ .pool
+_081D2C94:
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ adds r1, r2, 0
+ bl GetMonData
+ b _081D2CCA
+ .pool
+_081D2CA8:
+ cmp r2, 0x2
+ beq _081D2CB0
+ cmp r2, 0x7
+ bne _081D2CBE
+_081D2CB0:
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ bl GetAndCopyBoxMonDataFromAnyBox
+ b _081D2CCA
+_081D2CBE:
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ bl GetBoxMonDataFromAnyBox
+_081D2CCA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D2C68
+
+ thumb_func_start sub_81D2CD0
+sub_81D2CD0: @ 81D2CD0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 16
+ lsrs r6, r2, 16
+ movs r0, 0xFC
+ strb r0, [r5]
+ adds r5, 0x1
+ movs r0, 0x4
+ strb r0, [r5]
+ adds r5, 0x1
+ movs r0, 0x8
+ strb r0, [r5]
+ adds r5, 0x1
+ movs r0, 0
+ strb r0, [r5]
+ adds r5, 0x1
+ movs r0, 0x9
+ strb r0, [r5]
+ adds r5, 0x1
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0x2D
+ movs r3, 0
+ bl sub_81D2C68
+ cmp r0, 0
+ beq _081D2D20
+ ldr r1, =gText_EggNickname
+ adds r0, r5, 0
+ movs r2, 0
+ movs r3, 0xC
+ bl StringCopyPadded
+ b _081D2E70
+ .pool
+_081D2D20:
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0x2
+ adds r3, r5, 0
+ bl sub_81D2C68
+ adds r0, r5, 0
+ bl StringGetEnd10
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0xB
+ movs r3, 0
+ bl sub_81D2C68
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r4, 0xE
+ bne _081D2D70
+ movs r0, 0x64
+ adds r4, r6, 0
+ muls r4, r0
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r4, 0
+ bl GetMonGender
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _081D2D92
+ .pool
+_081D2D70:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ lsls r1, r6, 24
+ lsrs r1, 24
+ bl GetBoxedMonPtr
+ adds r4, r0, 0
+ bl GetBoxMonGender
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r4, 0
+ bl GetLevelFromBoxMonExp
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+_081D2D92:
+ cmp r7, 0x1D
+ beq _081D2D9A
+ cmp r7, 0x20
+ bne _081D2DB0
+_081D2D9A:
+ movs r0, 0xB
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, =gSpeciesNames
+ adds r1, r0
+ adds r0, r5, 0
+ bl StringCompare
+ cmp r0, 0
+ bne _081D2DB0
+ movs r6, 0xFF
+_081D2DB0:
+ adds r3, r5, 0
+ b _081D2DBA
+ .pool
+_081D2DB8:
+ adds r3, 0x1
+_081D2DBA:
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ bne _081D2DB8
+ movs r1, 0xFC
+ strb r1, [r3]
+ adds r3, 0x1
+ movs r0, 0x12
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0x3C
+ strb r0, [r3]
+ adds r3, 0x1
+ cmp r6, 0
+ beq _081D2DDE
+ cmp r6, 0xFE
+ beq _081D2E02
+ movs r0, 0
+ b _081D2E24
+_081D2DDE:
+ strb r1, [r3]
+ adds r3, 0x1
+ movs r0, 0x1
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0x4
+ strb r0, [r3]
+ adds r3, 0x1
+ strb r1, [r3]
+ adds r3, 0x1
+ movs r0, 0x3
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0x5
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0xB5
+ b _081D2E24
+_081D2E02:
+ strb r1, [r3]
+ adds r3, 0x1
+ movs r0, 0x1
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0x6
+ strb r0, [r3]
+ adds r3, 0x1
+ strb r1, [r3]
+ adds r3, 0x1
+ movs r0, 0x3
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0x7
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0xB6
+_081D2E24:
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0xFC
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0x4
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0x8
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r4, 0
+ strb r4, [r3]
+ adds r3, 0x1
+ movs r0, 0x9
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0xBA
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0xF9
+ strb r0, [r3]
+ adds r3, 0x1
+ movs r0, 0x5
+ strb r0, [r3]
+ adds r3, 0x1
+ adds r0, r3, 0
+ mov r1, r8
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r3, r0, 0
+ strb r4, [r3]
+ adds r3, 0x1
+ movs r0, 0xFF
+ strb r0, [r3]
+ adds r0, r3, 0
+_081D2E70:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D2CD0
+
+ thumb_func_start sub_81D2E7C
+sub_81D2E7C: @ 81D2E7C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ b _081D2E94
+_081D2E86:
+ strb r3, [r4]
+ adds r1, 0x1
+ adds r4, 0x1
+ lsls r0, r2, 16
+ ldr r2, =0xffff0000
+ adds r0, r2
+ lsrs r2, r0, 16
+_081D2E94:
+ ldrb r3, [r1]
+ adds r0, r3, 0
+ cmp r0, 0xFF
+ bne _081D2E86
+ adds r1, r2, 0
+ lsls r0, r1, 16
+ ldr r2, =0xffff0000
+ adds r0, r2
+ lsrs r2, r0, 16
+ lsls r1, 16
+ cmp r1, 0
+ ble _081D2EC2
+ movs r3, 0
+_081D2EAE:
+ strb r3, [r4]
+ adds r4, 0x1
+ adds r1, r2, 0
+ lsls r0, r1, 16
+ ldr r2, =0xffff0000
+ adds r0, r2
+ lsrs r2, r0, 16
+ lsls r1, 16
+ cmp r1, 0
+ bgt _081D2EAE
+_081D2EC2:
+ movs r0, 0xFF
+ strb r0, [r4]
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D2E7C
+
+ thumb_func_start sub_81D2ED4
+sub_81D2ED4: @ 81D2ED4
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldr r0, [sp, 0x14]
+ ldr r1, [sp, 0x18]
+ ldr r4, [sp, 0x1C]
+ lsls r2, 16
+ lsrs r7, r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r1, 16
+ lsrs r0, r1, 16
+ lsls r4, 24
+ cmp r4, 0
+ bne _081D2EFC
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+_081D2EFC:
+ cmp r2, r0
+ beq _081D2F42
+ adds r0, r6, 0
+ adds r1, r7, 0
+ adds r2, r3, 0
+ bl sub_81D2CD0
+ movs r0, 0xFC
+ strb r0, [r5]
+ movs r0, 0x4
+ strb r0, [r5, 0x1]
+ movs r0, 0x8
+ strb r0, [r5, 0x2]
+ movs r0, 0
+ strb r0, [r5, 0x3]
+ movs r0, 0x9
+ strb r0, [r5, 0x4]
+ cmp r7, 0xE
+ bne _081D2F2C
+ adds r0, r5, 0x5
+ ldr r1, =gUnknown_085EBFCE
+ b _081D2F3A
+ .pool
+_081D2F2C:
+ adds r4, r5, 0x5
+ lsls r0, r7, 24
+ lsrs r0, 24
+ bl sav3_get_box_name
+ adds r1, r0, 0
+ adds r0, r4, 0
+_081D2F3A:
+ movs r2, 0x8
+ bl sub_81D2E7C
+ b _081D2F72
+_081D2F42:
+ movs r1, 0
+ movs r2, 0
+_081D2F46:
+ adds r0, r6, r1
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xB
+ bls _081D2F46
+ adds r1, r6, r1
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r1, 0
+ movs r2, 0
+_081D2F5E:
+ adds r0, r5, r1
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x7
+ bls _081D2F5E
+ adds r1, r5, r1
+ movs r0, 0xFF
+ strb r0, [r1]
+_081D2F72:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D2ED4
+
+ thumb_func_start sub_81D2F78
+sub_81D2F78: @ 81D2F78
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r0
+ mov r10, r1
+ ldr r0, [sp, 0x20]
+ ldr r1, [sp, 0x24]
+ ldr r4, [sp, 0x28]
+ ldr r5, [sp, 0x2C]
+ lsls r2, 16
+ lsrs r7, r2, 16
+ lsls r3, 16
+ lsrs r6, r3, 16
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ lsls r4, 16
+ lsrs r0, r4, 16
+ lsls r5, 24
+ cmp r5, 0
+ bne _081D2FB0
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+_081D2FB0:
+ cmp r2, r0
+ beq _081D305C
+ adds r0, r7, 0
+ adds r1, r6, 0
+ movs r2, 0x16
+ movs r3, 0
+ bl sub_81D2C68
+ mov r1, r9
+ lsls r5, r1, 2
+ adds r4, r5, r1
+ mov r2, r8
+ adds r1, r2, r4
+ strb r0, [r1]
+ adds r0, r7, 0
+ adds r1, r6, 0
+ movs r2, 0x2F
+ movs r3, 0
+ bl sub_81D2C68
+ mov r1, r8
+ adds r1, 0x1
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r7, 0
+ adds r1, r6, 0
+ movs r2, 0x21
+ movs r3, 0
+ bl sub_81D2C68
+ mov r1, r8
+ adds r1, 0x2
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r7, 0
+ adds r1, r6, 0
+ movs r2, 0x18
+ movs r3, 0
+ bl sub_81D2C68
+ mov r1, r8
+ adds r1, 0x3
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r7, 0
+ adds r1, r6, 0
+ movs r2, 0x17
+ movs r3, 0
+ bl sub_81D2C68
+ mov r1, r8
+ adds r1, 0x4
+ adds r1, r4
+ strb r0, [r1]
+ mov r4, r10
+ add r4, r9
+ adds r0, r7, 0
+ adds r1, r6, 0
+ movs r2, 0x30
+ movs r3, 0
+ bl sub_81D2C68
+ cmp r0, 0xFF
+ beq _081D3044
+ adds r0, r7, 0
+ adds r1, r6, 0
+ movs r2, 0x30
+ movs r3, 0
+ bl sub_81D2C68
+ movs r1, 0x1D
+ bl __udivsi3
+ b _081D3046
+_081D3044:
+ movs r0, 0x9
+_081D3046:
+ strb r0, [r4]
+ mov r0, r9
+ adds r1, r5, r0
+ mov r2, r8
+ adds r0, r2, r1
+ lsls r1, 2
+ adds r1, 0x14
+ add r1, r8
+ bl sub_81D2754
+ b _081D3086
+_081D305C:
+ movs r2, 0
+ mov r0, r9
+ lsls r5, r0, 2
+ adds r1, r5, r0
+ movs r6, 0
+ lsls r3, r1, 2
+ movs r5, 0x9B
+ movs r4, 0x5B
+_081D306C:
+ adds r0, r2, r1
+ add r0, r8
+ strb r6, [r0]
+ lsls r0, r2, 2
+ adds r0, r3
+ add r0, r8
+ strh r5, [r0, 0x14]
+ strh r4, [r0, 0x16]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x4
+ bls _081D306C
+_081D3086:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D2F78
+
+ thumb_func_start sub_81D3094
+sub_81D3094: @ 81D3094
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ mov r8, r0
+ mov r9, r1
+ ldr r0, [sp, 0x20]
+ ldr r1, [sp, 0x24]
+ ldr r4, [sp, 0x28]
+ lsls r2, 16
+ lsrs r7, r2, 16
+ lsls r3, 16
+ lsrs r5, r3, 16
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r1, 16
+ lsrs r0, r1, 16
+ lsls r4, 24
+ cmp r4, 0
+ bne _081D30C4
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+_081D30C4:
+ cmp r2, r0
+ beq _081D311A
+ adds r0, r7, 0
+ adds r1, r5, 0
+ movs r2, 0x41
+ movs r3, 0
+ bl sub_81D2C68
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r7, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl sub_81D2C68
+ adds r6, r0, 0
+ adds r0, r7, 0
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_81D2C68
+ adds r5, r0, 0
+ lsls r0, r4, 3
+ ldr r1, =gMonFrontPicTable
+ adds r0, r1
+ movs r1, 0x1
+ str r1, [sp]
+ mov r1, r8
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl LoadSpecialPokePic
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl species_and_otid_get_pal
+ mov r1, r9
+ bl LZ77UnCompWram
+_081D311A:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D3094
+
+ thumb_func_start sub_81D312C
+sub_81D312C: @ 81D312C
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1]
+ adds r0, 0x18
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ ble _081D3140
+ movs r0, 0
+ strh r0, [r1]
+_081D3140:
+ movs r0, 0
+ ldrsh r1, [r1, r0]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D312C
+
+ thumb_func_start sub_81D3150
+sub_81D3150: @ 81D3150
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1]
+ subs r0, 0x18
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x50
+ negs r2, r2
+ cmp r0, r2
+ bge _081D3168
+ strh r2, [r1]
+_081D3168:
+ movs r0, 0
+ ldrsh r1, [r1, r0]
+ eors r1, r2
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D3150
+
+ thumb_func_start sub_81D3178
+sub_81D3178: @ 81D3178
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ bl sub_81D2074
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl sub_81D312C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ cmp r4, 0
+ bne _081D319A
+ cmp r0, 0
+ beq _081D319C
+_081D319A:
+ movs r1, 0x1
+_081D319C:
+ adds r0, r1, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D3178
+
+ thumb_func_start sub_81D31A4
+sub_81D31A4: @ 81D31A4
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ bl sub_81D2074
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl sub_81D3150
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ cmp r4, 0
+ bne _081D31C6
+ cmp r0, 0
+ beq _081D31C8
+_081D31C6:
+ movs r1, 0x1
+_081D31C8:
+ adds r0, r1, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D31A4
+
+ thumb_func_start sub_81D31D0
+sub_81D31D0: @ 81D31D0
+ push {r4-r7,lr}
+ sub sp, 0x20
+ ldr r3, =gUnknown_08625A48
+ ldr r4, [r3]
+ ldr r5, [r3, 0x4]
+ str r4, [sp, 0x18]
+ str r5, [sp, 0x1C]
+ mov r4, sp
+ ldr r3, =gUnknown_08625A50
+ ldm r3!, {r5-r7}
+ stm r4!, {r5-r7}
+ ldm r3!, {r5-r7}
+ stm r4!, {r5-r7}
+ ldr r3, =gUnknown_08625A68
+ ldr r4, [r3, 0x4]
+ ldr r3, [r3]
+ ldr r5, [sp, 0x18]
+ ldr r6, [sp, 0x1C]
+ str r5, [r0]
+ str r6, [r0, 0x4]
+ mov r0, sp
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ add sp, 0x20
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D31D0
+
+ thumb_func_start sub_81D321C
+sub_81D321C: @ 81D321C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x50
+ adds r5, r0, 0
+ mov r12, r1
+ mov r8, r2
+ mov r1, sp
+ ldr r0, =gUnknown_08625A70
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r6,r7}
+ stm r1!, {r2,r6,r7}
+ ldm r0!, {r3,r4}
+ stm r1!, {r3,r4}
+ add r3, sp, 0x20
+ adds r1, r3, 0
+ ldr r0, =gUnknown_08625A90
+ ldm r0!, {r2,r6,r7}
+ stm r1!, {r2,r6,r7}
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ add r2, sp, 0x38
+ adds r1, r2, 0
+ ldr r0, =gUnknown_08625AA8
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ movs r4, 0
+_081D3258:
+ lsls r0, r4, 3
+ add r0, sp
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ stm r5!, {r0,r1}
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _081D3258
+ mov r1, r12
+ adds r0, r2, 0
+ ldm r0!, {r2,r4,r5}
+ stm r1!, {r2,r4,r5}
+ ldm r0!, {r2,r6,r7}
+ stm r1!, {r2,r6,r7}
+ movs r4, 0
+_081D327A:
+ lsls r0, r4, 3
+ adds r0, r3, r0
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ mov r5, r8
+ adds r5, 0x8
+ mov r8, r5
+ subs r5, 0x8
+ stm r5!, {r0,r1}
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _081D327A
+ add sp, 0x50
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D321C
+
+ thumb_func_start sub_81D32B0
+sub_81D32B0: @ 81D32B0
+ push {r4,r5,lr}
+ ldr r2, =gUnknown_08625AC0
+ ldr r4, [r2]
+ ldr r5, [r2, 0x4]
+ ldr r2, =gUnknown_08625AC8
+ ldr r3, [r2, 0x4]
+ ldr r2, [r2]
+ str r4, [r0]
+ str r5, [r0, 0x4]
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D32B0
+
+ thumb_func_start sub_81D32D4
+sub_81D32D4: @ 81D32D4
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _081D32F0
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ adds r0, r1, 0
+ bl sub_81D3408
+_081D32F0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D32D4
+
+ thumb_func_start sub_81D32F4
+sub_81D32F4: @ 81D32F4
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081D330C
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldr r0, =sub_81D32D4
+ str r0, [r2, 0x1C]
+_081D330C:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D32F4
+
+ thumb_func_start sub_81D3314
+sub_81D3314: @ 81D3314
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =gSprites
+ adds r3, r1, r0
+ cmp r3, 0
+ beq _081D3360
+ ldrh r1, [r3, 0x24]
+ ldrh r2, [r3, 0x20]
+ adds r1, r2
+ ldr r2, =gUnknown_08625B2C
+ movs r5, 0x2E
+ ldrsh r0, [r4, r5]
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r1, [r3, 0x26]
+ ldrh r3, [r3, 0x22]
+ adds r1, r3
+ movs r3, 0x2E
+ ldrsh r0, [r4, r3]
+ lsls r0, 2
+ adds r2, 0x2
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r0, r1
+ b _081D337E
+ .pool
+_081D3360:
+ ldr r1, =gUnknown_08625B2C
+ movs r5, 0x2E
+ ldrsh r0, [r4, r5]
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, 0x28
+ strh r0, [r4, 0x20]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r1, 0x2
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, 0x68
+_081D337E:
+ strh r0, [r4, 0x22]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D3314
+
+ thumb_func_start sub_81D338C
+sub_81D338C: @ 81D338C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r2
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ movs r5, 0
+_081D339E:
+ lsls r0, r5, 2
+ mov r1, r8
+ adds r4, r0, r1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _081D33F0
+ strh r5, [r0, 0x2E]
+ ldr r1, [r4]
+ lsls r0, r5, 4
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ ldr r0, [r4]
+ strh r6, [r0, 0x32]
+ ldr r0, [r4]
+ strh r5, [r0, 0x34]
+ cmp r7, 0
+ beq _081D33C4
+ cmp r6, 0x9
+ beq _081D33D0
+_081D33C4:
+ ldr r1, [r4]
+ ldr r0, =sub_81D3564
+ str r0, [r1, 0x1C]
+ b _081D33F0
+ .pool
+_081D33D0:
+ ldr r0, [r4]
+ bl sub_81D3314
+ ldr r0, [r4]
+ bl sub_81D35E8
+ ldr r2, [r4]
+ ldr r0, =sub_81D32F4
+ str r0, [r2, 0x1C]
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r3, 0x5
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ strb r0, [r2]
+_081D33F0:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x9
+ bls _081D339E
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D338C
+
+ thumb_func_start sub_81D3408
+sub_81D3408: @ 81D3408
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x38]
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r3, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ adds r0, 0x1
+ cmp r3, r0
+ bge _081D3454
+ ldr r5, =gSprites
+ movs r7, 0x1C
+ adds r7, r5
+ mov r12, r7
+ ldr r6, =sub_81D3564
+_081D3428:
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r2, r1, r5
+ movs r7, 0x2E
+ ldrsh r0, [r2, r7]
+ lsls r0, 4
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ add r1, r12
+ str r6, [r1]
+ ldrh r0, [r2, 0x38]
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ adds r0, 0x1
+ cmp r3, r0
+ blt _081D3428
+_081D3454:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D3408
+
+ thumb_func_start sub_81D3464
+sub_81D3464: @ 81D3464
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0
+ movs r3, 0
+_081D346C:
+ lsls r0, r1, 2
+ adds r0, r2
+ str r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9
+ bls _081D346C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D3464
+
+ thumb_func_start sub_81D3480
+sub_81D3480: @ 81D3480
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ movs r0, 0
+ mov r9, r0
+ lsrs r7, r2, 24
+ movs r5, 0
+ adds r0, r7, 0x1
+ cmp r9, r0
+ bge _081D34FE
+_081D34A2:
+ ldr r0, =gUnknown_08625B14
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r6, r3, 0
+ cmp r3, 0x40
+ beq _081D34FE
+ lsls r0, r5, 2
+ mov r1, r8
+ adds r4, r0, r1
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ str r0, [r4]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, [r4]
+ mov r1, r10
+ strh r1, [r0, 0x36]
+ cmp r5, 0
+ beq _081D34F0
+ subs r0, r4, 0x4
+ ldr r0, [r0]
+ strh r3, [r0, 0x38]
+ b _081D34F2
+ .pool
+_081D34F0:
+ mov r9, r6
+_081D34F2:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r7, 0x1
+ cmp r5, r0
+ blt _081D34A2
+_081D34FE:
+ lsls r0, r7, 2
+ add r0, r8
+ ldr r0, [r0]
+ mov r1, r9
+ strh r1, [r0, 0x38]
+ adds r0, r7, 0
+ movs r1, 0x1
+ mov r2, r8
+ bl sub_81D338C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D3480
+
+ thumb_func_start sub_81D3520
+sub_81D3520: @ 81D3520
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r5, 0
+_081D3526:
+ cmp r5, 0x9
+ bhi _081D3544
+ lsls r0, r5, 2
+ adds r4, r0, r6
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _081D3544
+ bl DestroySprite
+ movs r0, 0
+ str r0, [r4]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _081D3526
+_081D3544:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D3520
+
+ thumb_func_start sub_81D354C
+sub_81D354C: @ 81D354C
+ push {lr}
+ bl sub_81D3520
+ movs r0, 0x68
+ bl FreeSpriteTilesByTag
+ movs r0, 0x68
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D354C
+
+ thumb_func_start sub_81D3564
+sub_81D3564: @ 81D3564
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081D3592
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _081D35DC
+ adds r0, r4, 0
+ movs r1, 0
+ bl SeekSpriteAnim
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_081D3592:
+ adds r0, r4, 0
+ bl sub_81D3314
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081D35DC
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _081D35D8
+ cmp r1, 0x9
+ bne _081D35D0
+ adds r0, r4, 0
+ bl sub_81D35E8
+ ldr r0, =sub_81D32F4
+ b _081D35DA
+ .pool
+_081D35D0:
+ ldr r0, =sub_81D32D4
+ b _081D35DA
+ .pool
+_081D35D8:
+ ldr r0, =SpriteCallbackDummy
+_081D35DA:
+ str r0, [r4, 0x1C]
+_081D35DC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D3564
+
+ thumb_func_start sub_81D35E8
+sub_81D35E8: @ 81D35E8
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0x38]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r5, 0
+ movs r2, 0x32
+ ldrsh r0, [r6, r2]
+ adds r0, 0x1
+ cmp r5, r0
+ bge _081D3636
+ movs r0, 0x5
+ negs r0, r0
+ adds r7, r0, 0
+_081D3604:
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ ldr r0, =gSprites
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0
+ bl SeekSpriteAnim
+ adds r1, r4, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ ands r0, r7
+ strb r0, [r1]
+ ldrh r0, [r4, 0x38]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r2, 0x32
+ ldrsh r0, [r6, r2]
+ adds r0, 0x1
+ cmp r5, r0
+ blt _081D3604
+_081D3636:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D35E8
+
+ thumb_func_start sub_81D3640
+sub_81D3640: @ 81D3640
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ mov r8, r0
+ adds r6, r1, 0
+ adds r5, r2, 0
+ adds r4, r3, 0
+ ldr r3, [sp, 0x4C]
+ ldr r0, [sp, 0x50]
+ mov r9, r0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r1, r9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, r4, 4
+ orrs r1, r4
+ lsls r1, 24
+ lsrs r1, 24
+ str r3, [sp, 0x28]
+ bl FillWindowPixelBuffer
+ add r2, sp, 0xC
+ ldrh r0, [r5]
+ ldrh r1, [r6]
+ subs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r6, 0x2]
+ subs r0, r1
+ strh r0, [r2, 0x2]
+ ldrh r0, [r5, 0x4]
+ ldrh r1, [r6, 0x4]
+ subs r0, r1
+ strh r0, [r2, 0x4]
+ ldrh r0, [r5, 0x8]
+ ldrh r1, [r6, 0x8]
+ subs r0, r1
+ strh r0, [r2, 0x6]
+ ldrh r0, [r5, 0xA]
+ ldrh r1, [r6, 0xA]
+ subs r0, r1
+ strh r0, [r2, 0x8]
+ ldrh r0, [r5, 0x6]
+ ldrh r1, [r6, 0x6]
+ subs r0, r1
+ strh r0, [r2, 0xA]
+ add r0, sp, 0x24
+ strb r4, [r0]
+ ldr r3, [sp, 0x28]
+ strb r3, [r0, 0x1]
+ mov r1, r9
+ strb r1, [r0, 0x2]
+ movs r7, 0
+ mov r10, r0
+ movs r0, 0x1
+ negs r0, r0
+ mov r9, r0
+ add r6, sp, 0x18
+_081D36CA:
+ lsls r0, r7, 4
+ subs r0, r7
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r1, r10
+ str r1, [sp]
+ mov r0, r9
+ str r0, [sp, 0x4]
+ ldr r1, =gUnknown_08625B54
+ lsls r0, r7, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [sp, 0x8]
+ mov r0, r8
+ movs r1, 0x1
+ movs r2, 0
+ adds r3, r5, 0
+ bl box_print
+ lsls r0, r7, 1
+ mov r4, sp
+ adds r4, r0
+ adds r4, 0xC
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ ldr r1, =gUnknown_085EEA76
+ cmp r0, 0
+ blt _081D3704
+ ldr r1, =gUnknown_085EEA73
+_081D3704:
+ adds r0, r6, 0
+ bl StringCopy
+ mov r0, r10
+ str r0, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ str r6, [sp, 0x8]
+ mov r0, r8
+ movs r1, 0x1
+ movs r2, 0x38
+ adds r3, r5, 0
+ bl box_print
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _081D372C
+ negs r0, r1
+_081D372C:
+ movs r4, 0xC
+ cmp r0, 0x9
+ bgt _081D3734
+ movs r4, 0x12
+_081D3734:
+ cmp r1, 0
+ bge _081D373A
+ negs r1, r1
+_081D373A:
+ adds r0, r6, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r2, r4, 0
+ adds r2, 0x38
+ mov r1, r10
+ str r1, [sp]
+ mov r0, r9
+ str r0, [sp, 0x4]
+ str r6, [sp, 0x8]
+ mov r0, r8
+ movs r1, 0x1
+ adds r3, r5, 0
+ bl box_print
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x5
+ bls _081D36CA
+ 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_81D3640
+
+ thumb_func_start sub_81D3784
+sub_81D3784: @ 81D3784
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ mov r8, r0
+ adds r5, r1, 0
+ adds r4, r2, 0
+ adds r6, r3, 0
+ ldr r2, [sp, 0x4C]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, r4, 4
+ orrs r1, r4
+ lsls r1, 24
+ lsrs r1, 24
+ str r2, [sp, 0x28]
+ bl FillWindowPixelBuffer
+ add r1, sp, 0xC
+ ldrh r0, [r5]
+ strh r0, [r1]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r1, 0x2]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r1, 0x4]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r1, 0x6]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r1, 0x8]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r1, 0xA]
+ add r0, sp, 0x24
+ strb r4, [r0]
+ strb r6, [r0, 0x1]
+ ldr r2, [sp, 0x28]
+ strb r2, [r0, 0x2]
+ movs r6, 0
+ add r1, sp, 0x18
+ mov r9, r1
+ mov r7, r8
+ mov r10, r0
+ movs r2, 0x1
+ negs r2, r2
+ mov r8, r2
+_081D37EE:
+ lsls r1, r6, 1
+ mov r0, sp
+ adds r0, r1
+ adds r0, 0xC
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r4, 0x3
+ cmp r0, 0x63
+ bgt _081D3808
+ movs r4, 0x1
+ cmp r0, 0x9
+ ble _081D3808
+ movs r4, 0x2
+_081D3808:
+ mov r0, sp
+ adds r0, r1
+ adds r0, 0xC
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ mov r0, r9
+ movs r2, 0
+ adds r3, r4, 0
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x4
+ subs r0, r4
+ lsls r4, r0, 1
+ adds r4, r0
+ lsls r4, 17
+ lsrs r4, 16
+ lsls r5, r6, 4
+ subs r5, r6
+ lsls r5, 24
+ lsrs r5, 24
+ mov r0, r10
+ str r0, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ ldr r1, =gUnknown_08625B54
+ lsls r0, r6, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ movs r1, 0x1
+ movs r2, 0
+ adds r3, r5, 0
+ bl box_print
+ adds r4, 0x38
+ lsls r4, 24
+ lsrs r4, 24
+ mov r2, r10
+ str r2, [sp]
+ mov r0, r8
+ str r0, [sp, 0x4]
+ mov r1, r9
+ str r1, [sp, 0x8]
+ adds r0, r7, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl box_print
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _081D37EE
+ 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_81D3784
+
+ thumb_func_start sub_81D388C
+sub_81D388C: @ 81D388C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r1, 0x3A
+ bl GetMonData
+ strh r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x3B
+ bl GetMonData
+ strh r0, [r5, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x3C
+ bl GetMonData
+ strh r0, [r5, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x3D
+ bl GetMonData
+ strh r0, [r5, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x3E
+ bl GetMonData
+ strh r0, [r5, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x3F
+ bl GetMonData
+ strh r0, [r5, 0xA]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D388C
+
+ thumb_func_start sub_81D38D4
+sub_81D38D4: @ 81D38D4
+ push {lr}
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003d6d
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r2, r1, 0x1
+ adds r0, r2, 0
+ asrs r0, 8
+ lsls r0, 8
+ subs r0, r2, r0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D38D4
+
+ thumb_func_start sub_81D38FC
+sub_81D38FC: @ 81D38FC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r5, 0x9C
+ lsls r5, 2
+ adds r1, r5, 0
+ bl CalcByteArraySum
+ adds r4, r5
+ ldr r1, [r4]
+ cmp r0, r1
+ bne _081D3916
+ movs r0, 0x1
+ b _081D3918
+_081D3916:
+ movs r0, 0
+_081D3918:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D38FC
+
+ thumb_func_start sub_81D3920
+sub_81D3920: @ 81D3920
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ ldrb r6, [r7]
+ subs r0, r6, 0x1
+ cmp r0, 0x7
+ bhi _081D3964
+ movs r5, 0
+ cmp r5, r6
+ bcs _081D394C
+ adds r4, r7, 0
+ adds r4, 0x8
+_081D3936:
+ adds r0, r4, 0
+ bl sub_81D38FC
+ cmp r0, 0
+ beq _081D3964
+ movs r0, 0x9D
+ lsls r0, 2
+ adds r4, r0
+ adds r5, 0x1
+ cmp r5, r6
+ bcc _081D3936
+_081D394C:
+ adds r0, r7, 0
+ adds r0, 0x8
+ movs r1, 0x9D
+ lsls r1, 2
+ muls r1, r6
+ bl CalcByteArraySum
+ ldr r1, [r7, 0x4]
+ cmp r0, r1
+ bne _081D3964
+ movs r0, 0x1
+ b _081D3966
+_081D3964:
+ movs r0, 0
+_081D3966:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D3920
+
+ thumb_func_start sub_81D396C
+sub_81D396C: @ 81D396C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ subs r0, 0x1
+ cmp r0, 0x7
+ bhi _081D398E
+ adds r0, r4, 0
+ adds r0, 0x8
+ movs r1, 0xEE
+ lsls r1, 4
+ bl CalcByteArraySum
+ ldr r1, [r4, 0x4]
+ cmp r0, r1
+ bne _081D398E
+ movs r0, 0x1
+ b _081D3990
+_081D398E:
+ movs r0, 0
+_081D3990:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D396C
+
+ thumb_func_start sub_81D3998
+sub_81D3998: @ 81D3998
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ mov r8, r1
+ movs r2, 0x80
+ lsls r2, 5
+ mov r0, r8
+ movs r1, 0
+ bl memset
+ ldrb r0, [r7]
+ mov r1, r8
+ strb r0, [r1]
+ bl sub_81D38D4
+ mov r2, r8
+ strb r0, [r2, 0x1]
+ ldrb r0, [r7]
+ adds r0, 0x1
+ asrs r0, 1
+ strb r0, [r2, 0x2]
+ movs r6, 0
+ b _081D3A42
+_081D39C8:
+ movs r0, 0x1
+ ands r0, r6
+ cmp r0, 0
+ bne _081D3A14
+ lsrs r0, r6, 31
+ adds r0, r6, r0
+ asrs r0, 1
+ lsls r4, r0, 4
+ subs r4, r0
+ lsls r4, 3
+ subs r4, r0
+ lsls r4, 3
+ add r4, r8
+ movs r0, 0x9D
+ lsls r0, 2
+ adds r5, r6, 0
+ muls r5, r0
+ adds r5, r7, r5
+ ldrb r0, [r5, 0x8]
+ strb r0, [r4, 0x8]
+ movs r1, 0xA7
+ lsls r1, 2
+ adds r0, r4, r1
+ movs r2, 0xAA
+ lsls r2, 1
+ adds r1, r5, r2
+ subs r2, 0x30
+ bl memcpy
+ adds r4, 0xC
+ adds r5, 0xC
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xA4
+ lsls r2, 1
+ bl memcpy
+ b _081D3A40
+_081D3A14:
+ lsrs r1, r6, 31
+ adds r1, r6, r1
+ asrs r1, 1
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 3
+ subs r0, r1
+ lsls r0, 3
+ add r0, r8
+ movs r1, 0x9D
+ lsls r1, 2
+ muls r1, r6
+ adds r1, r7, r1
+ ldrb r2, [r1, 0x8]
+ strb r2, [r0, 0x9]
+ movs r2, 0xAA
+ lsls r2, 1
+ adds r0, r2
+ adds r1, 0xC
+ subs r2, 0xC
+ bl memcpy
+_081D3A40:
+ adds r6, 0x1
+_081D3A42:
+ ldrb r0, [r7]
+ cmp r6, r0
+ blt _081D39C8
+ movs r0, 0x1
+ ands r0, r6
+ cmp r0, 0
+ beq _081D3A7E
+ lsrs r2, r6, 31
+ adds r2, r6, r2
+ asrs r2, 1
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 3
+ subs r0, r2
+ lsls r0, 3
+ add r0, r8
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r1
+ ldr r3, =gUnknown_08625B6C
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r3
+ movs r2, 0xA4
+ lsls r2, 1
+ bl memcpy
+_081D3A7E:
+ mov r0, r8
+ adds r0, 0x8
+ movs r1, 0xEE
+ lsls r1, 4
+ bl CalcByteArraySum
+ mov r2, r8
+ str r0, [r2, 0x4]
+ movs r0, 0x1E
+ mov r1, r8
+ bl sub_8153634
+ cmp r0, 0x1
+ bne _081D3AA4
+ movs r0, 0x1
+ b _081D3AA6
+ .pool
+_081D3AA4:
+ movs r0, 0
+_081D3AA6:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D3998
+
+ thumb_func_start sub_81D3AB0
+sub_81D3AB0: @ 81D3AB0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x80
+ lsls r0, 5
+ bl AllocZeroed
+ adds r5, r0, 0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_81D3998
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl Free
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D3AB0
+
+ thumb_func_start sub_81D3AD8
+sub_81D3AD8: @ 81D3AD8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r0, 0x1E
+ bl sub_81535DC
+ cmp r0, 0x1
+ bne _081D3B04
+ ldr r2, =0x00000ee8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl memcpy
+ adds r0, r5, 0
+ bl sub_81D396C
+ cmp r0, 0
+ beq _081D3B04
+ movs r0, 0x1
+ b _081D3B06
+ .pool
+_081D3B04:
+ movs r0, 0
+_081D3B06:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D3AD8
+
+ thumb_func_start sub_81D3B0C
+sub_81D3B0C: @ 81D3B0C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x80
+ lsls r0, 5
+ bl AllocZeroed
+ adds r5, r0, 0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_81D3AD8
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl Free
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D3B0C
+
+ thumb_func_start sub_81D3B34
+sub_81D3B34: @ 81D3B34
+ push {r4,r5,lr}
+ movs r0, 0x80
+ lsls r0, 5
+ bl AllocZeroed
+ adds r4, r0, 0
+ bl sub_81D3B0C
+ adds r5, r0, 0
+ adds r0, r4, 0
+ bl Free
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D3B34
+
+ thumb_func_start sub_81D3B54
+sub_81D3B54: @ 81D3B54
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r5, r1, 0
+ bl sub_81D41A0
+ movs r7, 0x2
+ ldr r4, =gUnknown_03003144
+_081D3B64:
+ bl sub_81D4170
+ ldr r0, =gUnknown_030012E2
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081D3B76
+ strb r7, [r4]
+_081D3B76:
+ movs r0, 0x1
+ adds r1, r6, 0
+ adds r2, r5, 0
+ movs r3, 0
+ bl sub_81D3D70
+ adds r1, r0, 0
+ ldr r0, =gUnknown_030012E4
+ strh r1, [r0]
+ movs r0, 0x13
+ ands r0, r1
+ cmp r0, 0x10
+ bne _081D3BA0
+ movs r4, 0
+ b _081D3BC2
+ .pool
+_081D3BA0:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _081D3BAC
+ movs r4, 0x1
+ b _081D3BC2
+_081D3BAC:
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ bne _081D3BC0
+ strb r0, [r4]
+ bl VBlankIntrWait
+ b _081D3B64
+_081D3BC0:
+ movs r4, 0x2
+_081D3BC2:
+ movs r0, 0
+ str r0, [sp]
+ ldr r1, =gUnknown_030012C8
+ ldr r2, =0x05000006
+ mov r0, sp
+ bl CpuSet
+ bl sub_81D41F4
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D3B54
+
+ thumb_func_start sub_81D3BE8
+sub_81D3BE8: @ 81D3BE8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ bl sub_81D41A0
+ movs r6, 0x2
+ ldr r4, =gUnknown_03003144
+_081D3BF6:
+ bl sub_81D4170
+ ldr r0, =gUnknown_030012E2
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081D3C08
+ strb r6, [r4]
+_081D3C08:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ adds r3, r5, 0
+ bl sub_81D3D70
+ adds r1, r0, 0
+ ldr r0, =gUnknown_030012E4
+ strh r1, [r0]
+ movs r0, 0x13
+ ands r0, r1
+ cmp r0, 0x10
+ bne _081D3C34
+ movs r4, 0
+ b _081D3C56
+ .pool
+_081D3C34:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _081D3C40
+ movs r4, 0x1
+ b _081D3C56
+_081D3C40:
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ bne _081D3C54
+ strb r0, [r4]
+ bl VBlankIntrWait
+ b _081D3BF6
+_081D3C54:
+ movs r4, 0x2
+_081D3C56:
+ movs r0, 0
+ str r0, [sp]
+ ldr r1, =gUnknown_030012C8
+ ldr r2, =0x05000006
+ mov r0, sp
+ bl CpuSet
+ bl sub_81D41F4
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D3BE8
+
+ thumb_func_start sub_81D3C7C
+sub_81D3C7C: @ 81D3C7C
+ push {r4,lr}
+ ldr r4, =0x04000208
+ movs r3, 0
+ strh r3, [r4]
+ ldr r2, =0x04000200
+ ldrh r1, [r2]
+ ldr r0, =0x0000ff3f
+ ands r0, r1
+ strh r0, [r2]
+ movs r0, 0x1
+ strh r0, [r4]
+ ldr r0, =0x04000128
+ strh r3, [r0]
+ subs r0, 0x1A
+ strh r3, [r0]
+ ldr r1, =0x04000202
+ movs r0, 0xC0
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D3C7C
+
+ thumb_func_start sub_81D3CBC
+sub_81D3CBC: @ 81D3CBC
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r5, =0x04000208
+ movs r4, 0
+ strh r4, [r5]
+ ldr r3, =0x04000200
+ ldrh r1, [r3]
+ ldr r0, =0x0000ff3f
+ ands r0, r1
+ strh r0, [r3]
+ movs r6, 0x1
+ strh r6, [r5]
+ ldr r0, =0x04000134
+ strh r4, [r0]
+ ldr r2, =0x04000128
+ movs r1, 0x80
+ lsls r1, 6
+ adds r0, r1, 0
+ strh r0, [r2]
+ ldrh r0, [r2]
+ ldr r7, =0x00004003
+ adds r1, r7, 0
+ orrs r0, r1
+ strh r0, [r2]
+ strh r4, [r5]
+ ldrh r0, [r3]
+ movs r1, 0x80
+ orrs r0, r1
+ strh r0, [r3]
+ strh r6, [r5]
+ ldr r1, =gUnknown_030012C8
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _081D3D0A
+ str r0, [sp]
+ ldr r2, =0x05000006
+ mov r0, sp
+ bl CpuSet
+_081D3D0A:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D3CBC
+
+ thumb_func_start sub_81D3D34
+sub_81D3D34: @ 81D3D34
+ ldr r0, =0x04000134
+ movs r3, 0
+ strh r3, [r0]
+ ldr r2, =0x04000128
+ movs r1, 0xA0
+ lsls r1, 7
+ adds r0, r1, 0
+ strh r0, [r2]
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, =gUnknown_03003144
+ strb r3, [r0]
+ ldr r0, =gUnknown_030012E6
+ strh r3, [r0]
+ ldr r1, =gUnknown_030012E8
+ movs r0, 0
+ str r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81D3D34
+
+ thumb_func_start sub_81D3D70
+sub_81D3D70: @ 81D3D70
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gUnknown_030012C8
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x6
+ bls _081D3D86
+ b _081D3ECC
+_081D3D86:
+ lsls r0, 2
+ ldr r1, =_081D3D98
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081D3D98:
+ .4byte _081D3DB4
+ .4byte _081D3DC8
+ .4byte _081D3DE8
+ .4byte _081D3DFC
+ .4byte _081D3E74
+ .4byte _081D3E84
+ .4byte _081D3EBC
+_081D3DB4:
+ bl sub_81D3CBC
+ ldr r1, =gUnknown_030012C8
+ movs r0, 0x1
+ strb r0, [r1, 0x2]
+ strb r0, [r1, 0x1]
+ b _081D3ECC
+ .pool
+_081D3DC8:
+ adds r0, r2, 0
+ bl sub_81D3EE8
+ lsls r0, 16
+ cmp r0, 0
+ beq _081D3DD8
+ bl sub_81D413C
+_081D3DD8:
+ ldr r0, =gUnknown_03003144
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _081D3DE2
+ b _081D3ECC
+_081D3DE2:
+ b _081D3E04
+ .pool
+_081D3DE8:
+ bl sub_81D3D34
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_81D3F1C
+ ldr r1, =gUnknown_030012C8
+ movs r0, 0x3
+ strb r0, [r1, 0x1]
+_081D3DFC:
+ ldr r0, =gUnknown_03003144
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _081D3E18
+_081D3E04:
+ ldr r1, =gUnknown_030012C8
+ strb r0, [r1, 0x4]
+ movs r0, 0x6
+ strb r0, [r1, 0x1]
+ b _081D3ECC
+ .pool
+_081D3E18:
+ ldr r2, =gUnknown_030012E6
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ ldr r1, =gUnknown_030012E8
+ ldr r0, [r1]
+ adds r3, r0, 0x1
+ str r3, [r1]
+ ldr r1, =gUnknown_030012C8
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _081D3E3C
+ cmp r3, 0x3C
+ bls _081D3E3C
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ movs r0, 0x6
+ strb r0, [r1, 0x1]
+_081D3E3C:
+ ldr r4, =gUnknown_030012C8
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x2
+ beq _081D3ECC
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _081D3E64
+ ldrh r0, [r2]
+ cmp r0, 0x2
+ bls _081D3E64
+ bl sub_81D413C
+ movs r0, 0x2
+ b _081D3ECA
+ .pool
+_081D3E64:
+ bl sub_81D413C
+ ldr r1, =gUnknown_030012C8
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ b _081D3ECC
+ .pool
+_081D3E74:
+ bl sub_81D3CBC
+ ldr r1, =gUnknown_030012C8
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ b _081D3ECC
+ .pool
+_081D3E84:
+ ldr r0, =gUnknown_030012C8
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _081D3E98
+ ldr r0, =gUnknown_030012E6
+ ldrh r0, [r0]
+ cmp r0, 0x2
+ bls _081D3E98
+ bl sub_81D413C
+_081D3E98:
+ ldr r1, =gUnknown_030012E6
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3C
+ bls _081D3ECC
+ ldr r0, =gUnknown_030012C8
+ movs r1, 0x1
+ strb r1, [r0, 0x4]
+ movs r1, 0x6
+ strb r1, [r0, 0x1]
+ b _081D3ECC
+ .pool
+_081D3EBC:
+ ldr r4, =gUnknown_030012C8
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0
+ beq _081D3ECC
+ bl sub_81D3C7C
+ movs r0, 0
+_081D3ECA:
+ strb r0, [r4, 0x2]
+_081D3ECC:
+ ldr r2, =gUnknown_030012C8
+ ldrb r0, [r2, 0x2]
+ ldrb r1, [r2, 0x4]
+ lsls r1, 2
+ orrs r0, r1
+ ldrb r1, [r2, 0x3]
+ lsls r1, 4
+ orrs r0, r1
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D3D70
+
+ thumb_func_start sub_81D3EE8
+sub_81D3EE8: @ 81D3EE8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =0x04000128
+ ldr r0, [r0]
+ movs r1, 0xC
+ ands r0, r1
+ cmp r0, 0x8
+ bne _081D3F0C
+ cmp r2, 0
+ beq _081D3F0C
+ ldr r1, =gUnknown_030012C8
+ movs r0, 0x1
+ b _081D3F10
+ .pool
+_081D3F0C:
+ ldr r1, =gUnknown_030012C8
+ movs r0, 0
+_081D3F10:
+ strb r0, [r1]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D3EE8
+
+ thumb_func_start sub_81D3F1C
+sub_81D3F1C: @ 81D3F1C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r3, =gUnknown_030012C8
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _081D3F54
+ ldr r2, =0x04000128
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ str r5, [r3, 0x8]
+ ldr r0, =0x04000120
+ str r4, [r0]
+ lsrs r0, r4, 2
+ adds r0, 0x1
+ str r0, [r3, 0x10]
+ bl sub_81D3F68
+ b _081D3F5C
+ .pool
+_081D3F54:
+ ldr r1, =0x04000128
+ ldrh r0, [r1]
+ strh r0, [r1]
+ str r2, [r3, 0x8]
+_081D3F5C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D3F1C
+
+ thumb_func_start sub_81D3F68
+sub_81D3F68: @ 81D3F68
+ ldr r1, =0x0400010c
+ ldr r2, =0x0000fda7
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, =0x0400010e
+ movs r2, 0x40
+ strh r2, [r0]
+ ldr r3, =0x04000208
+ movs r0, 0
+ strh r0, [r3]
+ adds r1, 0xF4
+ ldrh r0, [r1]
+ orrs r0, r2
+ strh r0, [r1]
+ movs r0, 0x1
+ strh r0, [r3]
+ bx lr
+ .pool
+ thumb_func_end sub_81D3F68
+
+ thumb_func_start sub_81D3F9C
+sub_81D3F9C: @ 81D3F9C
+ push {lr}
+ bl sub_81D414C
+ bl sub_81D413C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D3F9C
+
+ thumb_func_start sub_81D3FAC
+sub_81D3FAC: @ 81D3FAC
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r2, =gUnknown_030012C8
+ ldrb r0, [r2, 0x1]
+ adds r3, r2, 0
+ cmp r0, 0x3
+ beq _081D4034
+ cmp r0, 0x3
+ bgt _081D3FC8
+ cmp r0, 0x1
+ beq _081D3FD0
+ b _081D412A
+ .pool
+_081D3FC8:
+ cmp r0, 0x5
+ bne _081D3FCE
+ b _081D40FC
+_081D3FCE:
+ b _081D412A
+_081D3FD0:
+ ldr r1, =0x0400012a
+ ldr r2, =0x0000ccd0
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, =0x04000120
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r4, 0
+ ldr r6, =0x0000ccd0
+ ldr r5, =0x0000ffff
+_081D3FEC:
+ lsls r0, r1, 1
+ add r0, sp
+ ldrh r0, [r0]
+ cmp r0, r6
+ bne _081D4010
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ b _081D401A
+ .pool
+_081D4010:
+ cmp r0, r5
+ beq _081D401A
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_081D401A:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3
+ bls _081D3FEC
+ cmp r2, 0x2
+ beq _081D402A
+ b _081D412A
+_081D402A:
+ cmp r4, 0
+ beq _081D4030
+ b _081D412A
+_081D4030:
+ strb r2, [r3, 0x1]
+ b _081D412A
+_081D4034:
+ ldr r0, =0x04000120
+ ldr r4, [r0]
+ ldr r0, [r2, 0xC]
+ cmp r0, 0
+ bne _081D404A
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _081D404A
+ lsrs r0, r4, 2
+ adds r0, 0x1
+ str r0, [r2, 0x10]
+_081D404A:
+ ldrb r0, [r3]
+ cmp r0, 0x1
+ bne _081D4080
+ ldr r1, [r3, 0xC]
+ ldr r0, [r3, 0x10]
+ cmp r1, r0
+ bge _081D4074
+ ldr r2, =0x04000120
+ ldr r0, [r3, 0x8]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ ldr r0, [r3, 0x14]
+ ldr r1, [r1]
+ adds r0, r1
+ str r0, [r3, 0x14]
+ b _081D40BA
+ .pool
+_081D4074:
+ ldr r1, =0x04000120
+ ldr r0, [r3, 0x14]
+ b _081D40B8
+ .pool
+_081D4080:
+ ldr r1, [r3, 0xC]
+ cmp r1, 0
+ ble _081D40A0
+ ldr r0, [r3, 0x10]
+ adds r0, 0x1
+ cmp r1, r0
+ bge _081D40A0
+ ldr r0, [r3, 0x8]
+ lsls r1, 2
+ adds r1, r0
+ subs r1, 0x4
+ str r4, [r1]
+ ldr r0, [r3, 0x14]
+ adds r0, r4
+ str r0, [r3, 0x14]
+ b _081D40B4
+_081D40A0:
+ ldr r0, [r3, 0xC]
+ cmp r0, 0
+ beq _081D40B4
+ ldr r0, [r3, 0x14]
+ cmp r0, r4
+ bne _081D40B0
+ movs r0, 0x1
+ b _081D40B2
+_081D40B0:
+ movs r0, 0x2
+_081D40B2:
+ strb r0, [r3, 0x3]
+_081D40B4:
+ ldr r1, =gUnknown_030012E8
+ movs r0, 0
+_081D40B8:
+ str r0, [r1]
+_081D40BA:
+ ldr r1, [r3, 0xC]
+ adds r1, 0x1
+ str r1, [r3, 0xC]
+ ldr r0, [r3, 0x10]
+ adds r0, 0x2
+ cmp r1, r0
+ bge _081D40EA
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _081D40E4
+ ldr r0, =0x0400010e
+ ldrh r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strh r1, [r0]
+ b _081D412A
+ .pool
+_081D40E4:
+ bl sub_81D413C
+ b _081D412A
+_081D40EA:
+ movs r0, 0
+ movs r1, 0x4
+ strb r1, [r3, 0x1]
+ ldr r1, =gUnknown_030012E6
+ strh r0, [r1]
+ b _081D412A
+ .pool
+_081D40FC:
+ ldrb r3, [r2]
+ cmp r3, 0
+ bne _081D4108
+ ldr r1, =0x0400012a
+ ldrb r0, [r2, 0x3]
+ strh r0, [r1]
+_081D4108:
+ ldr r0, =0x04000120
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ mov r0, sp
+ ldrh r1, [r0, 0x2]
+ subs r0, r1, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _081D412A
+ cmp r3, 0x1
+ bne _081D4126
+ strb r1, [r2, 0x3]
+_081D4126:
+ movs r0, 0x6
+ strb r0, [r2, 0x1]
+_081D412A:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D3FAC
+
+ thumb_func_start sub_81D413C
+sub_81D413C: @ 81D413C
+ ldr r0, =0x04000128
+ ldrh r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strh r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_81D413C
+
+ thumb_func_start sub_81D414C
+sub_81D414C: @ 81D414C
+ ldr r2, =0x0400010e
+ ldrh r1, [r2]
+ ldr r0, =0x0000ff7f
+ ands r0, r1
+ strh r0, [r2]
+ ldr r1, =0x0400010c
+ ldr r2, =0x0000fda7
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81D414C
+
+ thumb_func_start sub_81D4170
+sub_81D4170: @ 81D4170
+ push {r4,lr}
+ ldr r0, =0x04000130
+ ldrh r0, [r0]
+ ldr r2, =0x000003ff
+ adds r1, r2, 0
+ eors r1, r0
+ ldr r4, =gUnknown_030012E2
+ ldr r3, =gUnknown_030012E0
+ ldrh r2, [r3]
+ adds r0, r1, 0
+ bics r0, r2
+ strh r0, [r4]
+ strh r1, [r3]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D4170
+
+ thumb_func_start sub_81D41A0
+sub_81D41A0: @ 81D41A0
+ ldr r1, =gUnknown_030012EC
+ ldr r0, =0x04000208
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r1, =gUnknown_030012EE
+ ldr r0, =0x04000200
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r1, =gUnknown_030012F0
+ ldr r0, =0x0400010e
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r1, =gUnknown_030012F2
+ ldr r0, =0x04000128
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r1, =gUnknown_030012F4
+ ldr r0, =0x04000134
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81D41A0
+
+ thumb_func_start sub_81D41F4
+sub_81D41F4: @ 81D41F4
+ ldr r1, =0x04000208
+ ldr r0, =gUnknown_030012EC
+ ldrh r0, [r0]
+ strh r0, [r1]
+ subs r1, 0x8
+ ldr r0, =gUnknown_030012EE
+ ldrh r0, [r0]
+ strh r0, [r1]
+ subs r1, 0xF2
+ ldr r0, =gUnknown_030012F0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x1A
+ ldr r0, =gUnknown_030012F2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0xC
+ ldr r0, =gUnknown_030012F4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81D41F4
+
+ thumb_func_start sub_81D4238
+sub_81D4238: @ 81D4238
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ ldr r1, =gUnknown_030012C8
+ ldr r2, =0x05000006
+ mov r0, sp
+ bl CpuSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D4238
+
+ thumb_func_start sub_81D4258
+sub_81D4258: @ 81D4258
+ push {lr}
+ sub sp, 0x4
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x5]
+ ldrb r2, [r0, 0x4]
+ movs r0, 0x1
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ mov r0, sp
+ ldrb r0, [r0]
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D4258
+
+ thumb_func_start sub_81D427C
+sub_81D427C: @ 81D427C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ bl sub_81D4258
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, =gMapObjects
+ adds r5, r1, r2
+ ldr r4, =gUnknown_030012F8
+ ldr r3, =gUnknown_02037590
+ ldrb r1, [r3, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x14]
+ ldrh r1, [r5, 0x10]
+ subs r0, r1
+ strh r0, [r4]
+ ldr r4, =gUnknown_030012FA
+ ldrb r1, [r3, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x16]
+ ldrh r1, [r5, 0x12]
+ subs r0, r1
+ strh r0, [r4]
+ movs r0, 0
+ mov r8, r0
+ ldr r2, =gUnknown_030012FC
+ movs r1, 0
+_081D42CA:
+ mov r3, r8
+ adds r0, r3, r2
+ strb r1, [r0]
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x3
+ bls _081D42CA
+ ldr r2, =gMapObjects
+ ldr r0, =gUnknown_02037590
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r2
+ movs r4, 0x14
+ ldrsh r1, [r2, r4]
+ movs r6, 0x10
+ ldrsh r0, [r2, r6]
+ cmp r1, r0
+ bne _081D4304
+ movs r0, 0x16
+ ldrsh r1, [r2, r0]
+ movs r3, 0x12
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ beq _081D4356
+_081D4304:
+ ldr r0, =0x0000403a
+ bl VarGet
+ lsls r0, 16
+ movs r1, 0xE0
+ lsls r1, 11
+ ands r1, r0
+ cmp r1, 0
+ bne _081D4338
+ ldrb r1, [r5, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ b _081D433E
+ .pool
+_081D4338:
+ ldrb r0, [r5, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+_081D433E:
+ strb r0, [r5, 0x1]
+ ldr r0, =0x0000403a
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x9
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _081D4360
+_081D4356:
+ movs r0, 0
+ b _081D4816
+ .pool
+_081D4360:
+ movs r4, 0
+ mov r8, r4
+ ldr r6, =gMapObjects
+ mov r10, r6
+_081D4368:
+ ldr r3, =gUnknown_02037590
+ ldrb r1, [r3, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ mov r1, r10
+ adds r4, r0, r1
+ mov r2, r8
+ lsls r1, r2, 2
+ ldr r6, =gUnknown_0862608C
+ adds r0, r1, r6
+ movs r6, 0x14
+ ldrsh r2, [r4, r6]
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ ldr r6, =gMapObjects
+ mov r9, r6
+ mov r12, r3
+ adds r7, r1, 0
+ cmp r2, r0
+ beq _081D4394
+ b _081D449E
+_081D4394:
+ movs r3, 0
+ ldr r1, =gUnknown_0862608E
+ adds r0, r7, r1
+ movs r2, 0x16
+ ldrsh r1, [r4, r2]
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ cmp r1, r2
+ bge _081D43C0
+ movs r6, 0x12
+ ldrsh r0, [r5, r6]
+ cmp r0, r2
+ bgt _081D43CA
+ b _081D449E
+ .pool
+_081D43C0:
+ movs r1, 0x12
+ ldrsh r0, [r5, r1]
+ cmp r0, r2
+ blt _081D43CA
+ movs r3, 0x1
+_081D43CA:
+ cmp r3, 0
+ bne _081D449E
+ ldr r0, =gUnknown_030012F8
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ ble _081D4410
+ movs r3, 0x10
+ ldrsh r2, [r5, r3]
+ adds r2, 0x1
+ mov r4, r12
+ ldrb r1, [r4, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ movs r6, 0x14
+ ldrsh r0, [r0, r6]
+ cmp r2, r0
+ bne _081D4446
+ ldrh r0, [r5, 0x10]
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x12
+ ldrsh r1, [r5, r2]
+ bl sub_81D4834
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D4446
+_081D4408:
+ movs r0, 0x4
+ b _081D4816
+ .pool
+_081D4410:
+ cmp r0, 0
+ bge _081D4446
+ movs r3, 0x10
+ ldrsh r2, [r5, r3]
+ subs r2, 0x1
+ mov r4, r12
+ ldrb r1, [r4, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ movs r6, 0x14
+ ldrsh r0, [r0, r6]
+ cmp r2, r0
+ bne _081D4446
+ ldrh r0, [r5, 0x10]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x12
+ ldrsh r1, [r5, r2]
+ bl sub_81D4834
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D4446
+ b _081D45AA
+_081D4446:
+ ldr r0, =gUnknown_02037590
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ add r0, r10
+ movs r3, 0x10
+ ldrsh r1, [r5, r3]
+ movs r4, 0x14
+ ldrsh r0, [r0, r4]
+ cmp r1, r0
+ bne _081D449E
+ ldr r0, =gUnknown_030012FA
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r0, 0
+ ble _081D4488
+ adds r0, r1, 0
+ ldrh r1, [r5, 0x12]
+ subs r1, 0x1
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_81D4834
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D449E
+_081D447C:
+ movs r0, 0x2
+ b _081D4816
+ .pool
+_081D4488:
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ ldrh r1, [r5, 0x12]
+ adds r1, 0x1
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_81D4834
+ lsls r0, 24
+ cmp r0, 0
+ bne _081D4538
+_081D449E:
+ ldr r2, =gUnknown_02037590
+ ldrb r1, [r2, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ mov r3, r10
+ adds r4, r0, r3
+ ldr r6, =gUnknown_0862608C
+ ldr r1, =gUnknown_0862608E
+ adds r0, r7, r1
+ movs r3, 0x16
+ ldrsh r1, [r4, r3]
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ ldr r3, =gMapObjects
+ mov r9, r3
+ mov r12, r2
+ cmp r1, r0
+ beq _081D44C6
+ b _081D45D0
+_081D44C6:
+ movs r3, 0
+ adds r0, r7, r6
+ movs r6, 0x14
+ ldrsh r1, [r4, r6]
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ cmp r1, r2
+ bge _081D44F0
+ movs r6, 0x10
+ ldrsh r0, [r5, r6]
+ cmp r0, r2
+ bgt _081D44FA
+ b _081D45D0
+ .pool
+_081D44F0:
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ cmp r0, r2
+ blt _081D44FA
+ movs r3, 0x1
+_081D44FA:
+ cmp r3, 0
+ bne _081D45D0
+ ldr r0, =gUnknown_030012FA
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ ble _081D4540
+ movs r3, 0x12
+ ldrsh r2, [r5, r3]
+ adds r2, 0x1
+ mov r4, r12
+ ldrb r1, [r4, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ movs r6, 0x16
+ ldrsh r0, [r0, r6]
+ cmp r2, r0
+ bne _081D4576
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ ldrh r1, [r5, 0x12]
+ adds r1, 0x1
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_81D4834
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D4576
+_081D4538:
+ movs r0, 0x1
+ b _081D4816
+ .pool
+_081D4540:
+ cmp r0, 0
+ bge _081D4576
+ movs r3, 0x12
+ ldrsh r2, [r5, r3]
+ subs r2, 0x1
+ mov r4, r12
+ ldrb r1, [r4, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ movs r6, 0x16
+ ldrsh r0, [r0, r6]
+ cmp r2, r0
+ bne _081D4576
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ ldrh r1, [r5, 0x12]
+ subs r1, 0x1
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_81D4834
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D4576
+ b _081D447C
+_081D4576:
+ ldr r0, =gUnknown_02037590
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ add r0, r10
+ movs r2, 0x12
+ ldrsh r1, [r5, r2]
+ movs r3, 0x16
+ ldrsh r0, [r0, r3]
+ cmp r1, r0
+ bne _081D45D0
+ ldr r0, =gUnknown_030012F8
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ cmp r0, 0
+ ble _081D45B8
+ ldrh r0, [r5, 0x10]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_81D4834
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D45D0
+_081D45AA:
+ movs r0, 0x3
+ b _081D4816
+ .pool
+_081D45B8:
+ ldrh r0, [r5, 0x10]
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x12
+ ldrsh r1, [r5, r2]
+ bl sub_81D4834
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D45D0
+ b _081D4408
+_081D45D0:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x3
+ bhi _081D45E0
+ b _081D4368
+_081D45E0:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_81D4C14
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D461C
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_81D4C58
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D4604
+ movs r0, 0x2
+ bl sub_81D4D24
+ b _081D4812
+_081D4604:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_81D4CE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _081D4614
+ b _081D447C
+_081D4614:
+ movs r0, 0x2
+ bl sub_81D4D24
+ b _081D4812
+_081D461C:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_81D4C9C
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D4658
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_81D4C58
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D4640
+ movs r0, 0x2
+ bl sub_81D4D24
+ b _081D4812
+_081D4640:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_81D4CE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _081D4650
+ b _081D4538
+_081D4650:
+ movs r0, 0x2
+ bl sub_81D4D24
+ b _081D4812
+_081D4658:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_81D4C58
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D4694
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_81D4C14
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D467C
+ movs r0, 0x2
+ bl sub_81D4D24
+ b _081D4812
+_081D467C:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_81D4C9C
+ lsls r0, 24
+ cmp r0, 0
+ bne _081D468C
+ b _081D4408
+_081D468C:
+ movs r0, 0x2
+ bl sub_81D4D24
+ b _081D4812
+_081D4694:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_81D4CE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D46D0
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_81D4C14
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D46B8
+ movs r0, 0x2
+ bl sub_81D4D24
+ b _081D4812
+_081D46B8:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_81D4C9C
+ lsls r0, 24
+ cmp r0, 0
+ bne _081D46C8
+ b _081D45AA
+_081D46C8:
+ movs r0, 0x2
+ bl sub_81D4D24
+ b _081D4812
+_081D46D0:
+ ldr r0, =gUnknown_030012FA
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ bne _081D476E
+ ldr r2, =gMapObjects
+ ldr r0, =gUnknown_02037590
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r4, 0x12
+ ldrsh r1, [r0, r4]
+ ldrh r2, [r5, 0x12]
+ movs r6, 0x12
+ ldrsh r0, [r5, r6]
+ cmp r1, r0
+ ble _081D470C
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ subs r1, r2, 0x1
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_81D4834
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D470C
+ b _081D447C
+_081D470C:
+ ldr r2, =gMapObjects
+ ldr r0, =gUnknown_02037590
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r2, 0x12
+ ldrsh r1, [r0, r2]
+ ldrh r2, [r5, 0x12]
+ movs r3, 0x12
+ ldrsh r0, [r5, r3]
+ cmp r1, r0
+ bge _081D473E
+ movs r4, 0x10
+ ldrsh r0, [r5, r4]
+ adds r1, r2, 0x1
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_81D4834
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D473E
+ b _081D4538
+_081D473E:
+ movs r6, 0x10
+ ldrsh r0, [r5, r6]
+ ldrh r1, [r5, 0x12]
+ subs r1, 0x1
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_81D4834
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D4756
+ b _081D447C
+_081D4756:
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ ldrh r1, [r5, 0x12]
+ adds r1, 0x1
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_81D4834
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D476E
+ b _081D4538
+_081D476E:
+ ldr r0, =gUnknown_030012F8
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _081D480C
+ ldr r2, =gMapObjects
+ ldr r0, =gUnknown_02037590
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r3, 0x10
+ ldrsh r1, [r0, r3]
+ ldrh r2, [r5, 0x10]
+ movs r4, 0x10
+ ldrsh r0, [r5, r4]
+ cmp r1, r0
+ ble _081D47AA
+ subs r0, r2, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ movs r6, 0x12
+ ldrsh r1, [r5, r6]
+ bl sub_81D4834
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D47AA
+ b _081D45AA
+_081D47AA:
+ ldr r2, =gMapObjects
+ ldr r0, =gUnknown_02037590
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r2, 0x10
+ ldrsh r1, [r0, r2]
+ ldrh r2, [r5, 0x10]
+ movs r3, 0x10
+ ldrsh r0, [r5, r3]
+ cmp r1, r0
+ bge _081D47DC
+ adds r0, r2, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ movs r4, 0x12
+ ldrsh r1, [r5, r4]
+ bl sub_81D4834
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D47DC
+ b _081D4408
+_081D47DC:
+ ldrh r0, [r5, 0x10]
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ movs r6, 0x12
+ ldrsh r1, [r5, r6]
+ bl sub_81D4834
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D47F4
+ b _081D4408
+_081D47F4:
+ ldrh r0, [r5, 0x10]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x12
+ ldrsh r1, [r5, r2]
+ bl sub_81D4834
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D480C
+ b _081D45AA
+_081D480C:
+ movs r0, 0
+ bl sub_81D4890
+_081D4812:
+ lsls r0, 24
+ lsrs r0, 24
+_081D4816:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D427C
+
+ thumb_func_start sub_81D4834
+sub_81D4834: @ 81D4834
+ push {r4,lr}
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ ldr r3, =gMapObjects
+ ldr r1, =gUnknown_02037590
+ ldrb r2, [r1, 0x5]
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r2, r1, r3
+ movs r3, 0x10
+ ldrsh r1, [r2, r3]
+ lsrs r3, r0, 16
+ asrs r0, 16
+ cmp r1, r0
+ bne _081D4870
+ movs r0, 0x12
+ ldrsh r1, [r2, r0]
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r1, r0
+ bne _081D4870
+ movs r0, 0
+ b _081D4888
+ .pool
+_081D4870:
+ lsls r0, r3, 16
+ asrs r0, 16
+ lsls r1, r4, 16
+ asrs r1, 16
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8088E64
+ lsls r0, 24
+ lsrs r0, 24
+_081D4888:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D4834
+
+ thumb_func_start sub_81D4890
+sub_81D4890: @ 81D4890
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ bl sub_81D4258
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =gMapObjects
+ adds r4, r1, r0
+ movs r1, 0
+ ldr r3, =gUnknown_030012FC
+ movs r2, 0
+_081D48B0:
+ adds r0, r1, r3
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _081D48B0
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x12]
+ subs r1, 0x1
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_81D4834
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081D48E8
+ cmp r6, 0x2
+ beq _081D48E8
+ ldr r0, =gUnknown_030012FC
+ adds r0, r5, r0
+ movs r1, 0x2
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_081D48E8:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ bl sub_81D4834
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081D4912
+ cmp r6, 0x4
+ beq _081D4912
+ ldr r0, =gUnknown_030012FC
+ adds r0, r5, r0
+ movs r1, 0x4
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_081D4912:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x12]
+ adds r1, 0x1
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_81D4834
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ bne _081D493A
+ cmp r6, 0x1
+ beq _081D493A
+ ldr r0, =gUnknown_030012FC
+ adds r0, r5, r0
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_081D493A:
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ bl sub_81D4834
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081D4964
+ cmp r6, 0x3
+ beq _081D4964
+ ldr r0, =gUnknown_030012FC
+ adds r0, r5, r0
+ movs r1, 0x3
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_081D4964:
+ cmp r5, 0x1
+ bhi _081D4974
+ ldr r0, =gUnknown_030012FC
+ b _081D4988
+ .pool
+_081D4974:
+ ldr r4, =gUnknown_030012FC
+ ldr r0, =0x0000403a
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ bl __modsi3
+ adds r0, r4
+_081D4988:
+ ldrb r0, [r0]
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D4890
+
+ thumb_func_start sub_81D4998
+sub_81D4998: @ 81D4998
+ push {r4,lr}
+ ldr r4, =0x0000403a
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldrh r1, [r0, 0x4]
+ ldr r0, =0x0000391a
+ cmp r1, r0
+ bne _081D49E0
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, =0x0000270e
+ cmp r2, r0
+ bls _081D49D8
+ adds r0, r4, 0
+ movs r1, 0
+ bl VarSet
+ b _081D49E0
+ .pool
+_081D49D8:
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl VarSet
+_081D49E0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D4998
+
+ thumb_func_start FieldObjectIsFarawayIslandMew
+@ bool8 FieldObjectIsFarawayIslandMew(struct npc_state *fieldObject)
+FieldObjectIsFarawayIslandMew: @ 81D49E8
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldrh r1, [r0, 0x4]
+ ldr r0, =0x0000391a
+ cmp r1, r0
+ bne _081D4A0C
+ ldrb r0, [r2, 0x5]
+ cmp r0, 0xE5
+ bne _081D4A0C
+ movs r0, 0x1
+ b _081D4A0E
+ .pool
+_081D4A0C:
+ movs r0, 0
+_081D4A0E:
+ pop {r1}
+ bx r1
+ thumb_func_end FieldObjectIsFarawayIslandMew
+
+ thumb_func_start unown_chamber_related
+unown_chamber_related: @ 81D4A14
+ push {lr}
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldrh r1, [r0, 0x4]
+ ldr r0, =0x0000391a
+ cmp r1, r0
+ bne _081D4A50
+ movs r0, 0xE5
+ lsls r0, 1
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081D4A50
+ ldr r0, =0x000002ce
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081D4A50
+ movs r0, 0x1
+ b _081D4A52
+ .pool
+_081D4A50:
+ movs r0, 0
+_081D4A52:
+ pop {r1}
+ bx r1
+ thumb_func_end unown_chamber_related
+
+ thumb_func_start sub_81D4A58
+sub_81D4A58: @ 81D4A58
+ push {r4,lr}
+ ldr r4, =0x0000403a
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ ldr r1, =0xffff0000
+ cmp r0, r1
+ beq _081D4A88
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ cmp r1, 0
+ bne _081D4A88
+ movs r0, 0x1
+ b _081D4A8A
+ .pool
+_081D4A88:
+ movs r0, 0
+_081D4A8A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D4A58
+
+ thumb_func_start sub_81D4A90
+sub_81D4A90: @ 81D4A90
+ push {r4-r6,lr}
+ sub sp, 0x4
+ bl sub_81D4258
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =gMapObjects
+ adds r5, r1, r0
+ ldrb r1, [r5, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r5, 0x1]
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r4, [r0]
+ cmp r4, 0x1
+ bne _081D4AF8
+ ldrb r0, [r5, 0x3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ ldr r3, =gSprites
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x42
+ ldrb r2, [r0]
+ movs r1, 0x3F
+ ands r1, r2
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x43
+ strb r4, [r0]
+ b _081D4BC4
+ .pool
+_081D4AF8:
+ ldr r0, =0x0000403a
+ ldr r1, =0x0000ffff
+ bl VarSet
+ ldrb r0, [r5, 0x3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ ldr r6, =gSprites
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x42
+ ldrb r2, [r0]
+ movs r1, 0x3F
+ ands r1, r2
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, =gScriptFacing
+ ldrh r0, [r0]
+ cmp r0, 0x2
+ beq _081D4B3A
+ ldrb r0, [r5, 0x4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r1, 0x43
+ movs r0, 0x1
+ strb r0, [r1]
+_081D4B3A:
+ ldr r4, =gFieldEffectObjectPaletteInfo1
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ ldrh r0, [r4, 0x4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80ABE18
+ ldrh r1, [r5, 0x10]
+ mov r0, sp
+ strh r1, [r0]
+ ldrh r0, [r5, 0x12]
+ mov r4, sp
+ adds r4, 0x2
+ strh r0, [r4]
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_80930E0
+ ldr r0, =gFieldEffectObjectTemplatePointers
+ ldr r0, [r0, 0x3C]
+ mov r1, sp
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r3, 0
+ ldrsh r2, [r4, r3]
+ ldrb r4, [r5, 0x4]
+ lsls r3, r4, 4
+ adds r3, r4
+ lsls r3, 2
+ adds r3, r6
+ adds r3, 0x43
+ ldrb r3, [r3]
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSpriteAtEnd
+ ldr r1, =gUnknown_0203CF50
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _081D4BC4
+ ldrb r0, [r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r3]
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x8
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r1, 0x1C]
+_081D4BC4:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D4A90
+
+ thumb_func_start sub_81D4BEC
+sub_81D4BEC: @ 81D4BEC
+ push {lr}
+ ldr r1, =gUnknown_0203CF50
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _081D4C06
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl DestroySprite
+_081D4C06:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D4BEC
+
+ thumb_func_start sub_81D4C14
+sub_81D4C14: @ 81D4C14
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r0, =gUnknown_030012FA
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ ble _081D4C50
+ movs r1, 0x10
+ ldrsh r0, [r2, r1]
+ ldrh r1, [r2, 0x12]
+ subs r1, 0x1
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_81D4834
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D4C50
+ ldr r0, =gUnknown_030012FC
+ adds r0, r4, r0
+ movs r1, 0x2
+ strb r1, [r0]
+ movs r0, 0x1
+ b _081D4C52
+ .pool
+_081D4C50:
+ movs r0, 0
+_081D4C52:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D4C14
+
+ thumb_func_start sub_81D4C58
+sub_81D4C58: @ 81D4C58
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r0, =gUnknown_030012F8
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _081D4C94
+ ldrh r0, [r2, 0x10]
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x12
+ ldrsh r1, [r2, r3]
+ bl sub_81D4834
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D4C94
+ ldr r0, =gUnknown_030012FC
+ adds r0, r4, r0
+ movs r1, 0x4
+ strb r1, [r0]
+ movs r0, 0x1
+ b _081D4C96
+ .pool
+_081D4C94:
+ movs r0, 0
+_081D4C96:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D4C58
+
+ thumb_func_start sub_81D4C9C
+sub_81D4C9C: @ 81D4C9C
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r0, =gUnknown_030012FA
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _081D4CD8
+ movs r1, 0x10
+ ldrsh r0, [r2, r1]
+ ldrh r1, [r2, 0x12]
+ adds r1, 0x1
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_81D4834
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D4CD8
+ ldr r0, =gUnknown_030012FC
+ adds r0, r4, r0
+ movs r1, 0x1
+ strb r1, [r0]
+ movs r0, 0x1
+ b _081D4CDA
+ .pool
+_081D4CD8:
+ movs r0, 0
+_081D4CDA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D4C9C
+
+ thumb_func_start sub_81D4CE0
+sub_81D4CE0: @ 81D4CE0
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r0, =gUnknown_030012F8
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ ble _081D4D1C
+ ldrh r0, [r2, 0x10]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x12
+ ldrsh r1, [r2, r3]
+ bl sub_81D4834
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D4D1C
+ ldr r0, =gUnknown_030012FC
+ adds r0, r4, r0
+ movs r1, 0x3
+ strb r1, [r0]
+ movs r0, 0x1
+ b _081D4D1E
+ .pool
+_081D4D1C:
+ movs r0, 0
+_081D4D1E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D4CE0
+
+ thumb_func_start sub_81D4D24
+sub_81D4D24: @ 81D4D24
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, =gUnknown_030012FC
+ ldr r0, =0x0000403a
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl __modsi3
+ adds r0, r5
+ ldrb r0, [r0]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D4D24
+
+ thumb_func_start sub_81D4D50
+sub_81D4D50: @ 81D4D50
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ mov r1, sp
+ ldr r4, =0x04000208
+ ldrh r0, [r4]
+ strh r0, [r1]
+ movs r0, 0
+ strh r0, [r4]
+ ldr r1, =gIntrTable
+ ldr r0, =sub_81D3FAC
+ str r0, [r1, 0x4]
+ ldr r0, =sub_81D3F9C
+ str r0, [r1, 0x8]
+ bl sub_81D41A0
+ bl sub_81D4238
+ ldr r2, =0x04000200
+ ldrh r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strh r0, [r2]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4]
+ movs r0, 0
+ strh r0, [r5]
+ str r6, [r5, 0x4]
+ mov r0, r8
+ str r0, [r5, 0x8]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D4D50
+
+ thumb_func_start sub_81D4DB8
+sub_81D4DB8: @ 81D4DB8
+ push {r4,lr}
+ sub sp, 0x4
+ mov r1, sp
+ ldr r4, =0x04000208
+ ldrh r0, [r4]
+ strh r0, [r1]
+ movs r0, 0
+ strh r0, [r4]
+ bl sub_81D4238
+ bl sub_81D41F4
+ bl RestoreSerialTimer3IntrHandlers
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D4DB8
+
+ thumb_func_start sub_81D4DE8
+sub_81D4DE8: @ 81D4DE8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ ldr r1, [r4, 0x4]
+ ldr r2, [r4, 0x8]
+ movs r0, 0x1
+ movs r3, 0
+ bl sub_81D3D70
+ adds r1, r0, 0
+ strh r1, [r4]
+ movs r0, 0x13
+ ands r0, r1
+ cmp r0, 0x10
+ bne _081D4E08
+ movs r5, 0x1
+_081D4E08:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _081D4E12
+ movs r5, 0x2
+_081D4E12:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _081D4E1C
+ movs r5, 0x3
+_081D4E1C:
+ ldr r1, =gUnknown_03003144
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D4DE8
+
+ thumb_func_start sub_81D4E30
+sub_81D4E30: @ 81D4E30
+ push {lr}
+ ldr r0, =0x0201c000
+ movs r2, 0x80
+ lsls r2, 6
+ movs r1, 0
+ bl memset
+ ldr r1, =gUnknown_020229C6
+ ldr r2, =0x00005503
+ adds r0, r2, 0
+ strh r0, [r1]
+ bl sub_8009734
+ movs r0, 0x1
+ bl sub_800B330
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D4E30
+
+ thumb_func_start sub_81D4E60
+sub_81D4E60: @ 81D4E60
+ push {lr}
+ sub sp, 0xC
+ mov r1, sp
+ ldr r2, =0x04000208
+ ldrh r0, [r2]
+ strh r0, [r1]
+ movs r0, 0
+ strh r0, [r2]
+ ldr r0, =gUnknown_03003174
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x4]
+ str r1, [sp, 0x8]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r2]
+ add r2, sp, 0x4
+ ldrh r1, [r2]
+ ldr r0, =0x0000b9a0
+ cmp r1, r0
+ bne _081D4EB8
+ ldrh r1, [r2, 0x2]
+ ldr r0, =0x0000ccd0
+ cmp r1, r0
+ bne _081D4EB8
+ ldrh r1, [r2, 0x4]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _081D4EB8
+ ldrh r0, [r2, 0x6]
+ cmp r0, r1
+ bne _081D4EB8
+ movs r0, 0x1
+ b _081D4EBA
+ .pool
+_081D4EB8:
+ movs r0, 0
+_081D4EBA:
+ add sp, 0xC
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D4E60
+
+ thumb_func_start sub_81D4EC0
+sub_81D4EC0: @ 81D4EC0
+ push {lr}
+ bl sub_800ABBC
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D4EDC
+ bl sub_800ABAC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _081D4EDC
+ movs r0, 0x1
+ b _081D4EDE
+_081D4EDC:
+ movs r0, 0
+_081D4EDE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D4EC0
+
+ thumb_func_start sub_81D4EE4
+sub_81D4EE4: @ 81D4EE4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldrb r0, [r4]
+ subs r0, 0x3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _081D4F08
+ bl sub_800B33C
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D4F08
+ movs r0, 0
+ strb r0, [r4]
+ movs r0, 0x3
+ b _081D500E
+_081D4F08:
+ ldrb r0, [r4]
+ cmp r0, 0x5
+ bls _081D4F10
+ b _081D500C
+_081D4F10:
+ lsls r0, 2
+ ldr r1, =_081D4F20
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081D4F20:
+ .4byte _081D4F38
+ .4byte _081D4F54
+ .4byte _081D4F6C
+ .4byte _081D4FA0
+ .4byte _081D4FEC
+ .4byte _081D4FF8
+_081D4F38:
+ bl sub_800ABBC
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D4F88
+ bl sub_800ABAC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _081D4F88
+ movs r0, 0x1
+ strb r0, [r4]
+ b _081D500C
+_081D4F54:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5
+ bls _081D500C
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x2
+ strb r0, [r4]
+ b _081D500C
+_081D4F6C:
+ bl sub_800ABAC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _081D4F88
+ movs r0, 0x49
+ bl PlaySE
+ bl sub_800A620
+ movs r0, 0
+ strh r0, [r5]
+ b _081D4FE6
+_081D4F88:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081D500C
+ movs r0, 0
+ strb r0, [r4]
+ movs r0, 0x1
+ b _081D500E
+ .pool
+_081D4FA0:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1E
+ bls _081D4FB6
+ movs r0, 0
+ strb r0, [r4]
+ movs r0, 0x5
+ b _081D500E
+_081D4FB6:
+ bl sub_800B320
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D500C
+ ldr r0, =gUnknown_03003124
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081D4FE6
+ bl sub_800A23C
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D4FE0
+ movs r0, 0
+ strb r0, [r4]
+ movs r0, 0x2
+ b _081D500E
+ .pool
+_081D4FE0:
+ movs r0, 0x4
+ strb r0, [r4]
+ b _081D500C
+_081D4FE6:
+ movs r0, 0x3
+ strb r0, [r4]
+ b _081D500C
+_081D4FEC:
+ movs r0, 0
+ bl sub_800ABF4
+ movs r0, 0x5
+ strb r0, [r4]
+ b _081D500C
+_081D4FF8:
+ ldr r0, =gUnknown_03003124
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081D500C
+ strb r0, [r4]
+ movs r0, 0x4
+ b _081D500E
+ .pool
+_081D500C:
+ movs r0, 0
+_081D500E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D4EE4
+
+ thumb_func_start sub_81D5014
+sub_81D5014: @ 81D5014
+ push {r4,lr}
+ ldr r0, =sub_81D5084
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r0
+ movs r0, 0
+ strb r0, [r4, 0x8]
+ strb r0, [r4, 0x9]
+ strb r0, [r4, 0xA]
+ strb r0, [r4, 0xB]
+ strb r0, [r4, 0xC]
+ strb r0, [r4, 0xD]
+ movs r1, 0
+ strh r0, [r4]
+ strh r0, [r4, 0x2]
+ strh r0, [r4, 0x4]
+ strh r0, [r4, 0x6]
+ strb r1, [r4, 0xE]
+ movs r0, 0x40
+ bl AllocZeroed
+ str r0, [r4, 0x10]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D5014
+
+ thumb_func_start sub_81D505C
+sub_81D505C: @ 81D505C
+ movs r1, 0
+ strh r1, [r0]
+ bx lr
+ thumb_func_end sub_81D505C
+
+ thumb_func_start sub_81D5064
+sub_81D5064: @ 81D5064
+ push {lr}
+ adds r2, r0, 0
+ lsls r1, 16
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ cmp r0, r1
+ bhi _081D507A
+ movs r0, 0
+ b _081D5080
+_081D507A:
+ movs r0, 0
+ strh r0, [r2]
+ movs r0, 0x1
+_081D5080:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D5064
+
+ thumb_func_start sub_81D5084
+sub_81D5084: @ 81D5084
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x1A
+ bls _081D509C
+ b _081D548A
+_081D509C:
+ lsls r0, 2
+ ldr r1, =_081D50B0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081D50B0:
+ .4byte _081D511C
+ .4byte _081D5138
+ .4byte _081D5148
+ .4byte _081D515C
+ .4byte _081D516C
+ .4byte _081D5198
+ .4byte _081D51D0
+ .4byte _081D524C
+ .4byte _081D5268
+ .4byte _081D5290
+ .4byte _081D52AC
+ .4byte _081D52DC
+ .4byte _081D52F2
+ .4byte _081D5308
+ .4byte _081D536A
+ .4byte _081D5390
+ .4byte _081D53A8
+ .4byte _081D53C6
+ .4byte _081D53F2
+ .4byte _081D5418
+ .4byte _081D5448
+ .4byte _081D5454
+ .4byte _081D5460
+ .4byte _081D5430
+ .4byte _081D548A
+ .4byte _081D548A
+ .4byte _081D5478
+_081D511C:
+ adds r0, r4, 0
+ adds r0, 0x9
+ ldr r1, =gUnknown_085EDFD6
+ bl mevent_0814257C
+ cmp r0, 0
+ bne _081D512C
+ b _081D548A
+_081D512C:
+ movs r0, 0x1
+ strb r0, [r4, 0x8]
+ b _081D548A
+ .pool
+_081D5138:
+ bl sub_81D4E30
+ adds r0, r4, 0
+ bl sub_81D505C
+ movs r0, 0x2
+ strb r0, [r4, 0x8]
+ b _081D548A
+_081D5148:
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl sub_81D5064
+ cmp r0, 0
+ bne _081D5156
+ b _081D548A
+_081D5156:
+ movs r0, 0x3
+ strb r0, [r4, 0x8]
+ b _081D548A
+_081D515C:
+ bl sub_81D4EC0
+ cmp r0, 0
+ beq _081D5166
+ b _081D52FC
+_081D5166:
+ bl sub_80097E8
+ b _081D525C
+_081D516C:
+ adds r0, r4, 0
+ adds r0, 0x9
+ ldr r1, =gUnknown_085EDFF5
+ bl mevent_0814257C
+ cmp r0, 0
+ bne _081D517C
+ b _081D548A
+_081D517C:
+ ldr r0, =gUnknown_085EE014
+ bl sub_8018884
+ adds r0, r4, 0
+ bl sub_81D505C
+ movs r0, 0x5
+ strb r0, [r4, 0x8]
+ b _081D548A
+ .pool
+_081D5198:
+ adds r0, r4, 0
+ movs r1, 0x5A
+ bl sub_81D5064
+ cmp r0, 0
+ beq _081D51AE
+ bl sub_81D4E30
+ movs r0, 0x6
+ strb r0, [r4, 0x8]
+ b _081D548A
+_081D51AE:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _081D51BC
+ b _081D548A
+_081D51BC:
+ adds r0, r4, 0
+ bl sub_81D505C
+ movs r0, 0x5
+ bl PlaySE
+ b _081D535A
+ .pool
+_081D51D0:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081D51F4
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80097E8
+ adds r0, r4, 0
+ bl sub_81D505C
+ b _081D535A
+ .pool
+_081D51F4:
+ bl sub_800ABAC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _081D5210
+ adds r0, r4, 0
+ bl sub_81D505C
+ bl sub_80097E8
+ movs r0, 0x7
+ strb r0, [r4, 0x8]
+ b _081D548A
+_081D5210:
+ bl sub_81D4E60
+ cmp r0, 0
+ beq _081D522E
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80097E8
+ adds r0, r4, 0
+ bl sub_81D505C
+ movs r0, 0x8
+ strb r0, [r4, 0x8]
+ b _081D548A
+_081D522E:
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl sub_81D5064
+ cmp r0, 0
+ bne _081D523C
+ b _081D548A
+_081D523C:
+ bl sub_80097E8
+ bl sub_81D4E30
+ adds r0, r4, 0
+ bl sub_81D505C
+ b _081D548A
+_081D524C:
+ adds r0, r4, 0
+ adds r0, 0x9
+ ldr r1, =gUnknown_085EE05C
+ bl mevent_0814257C
+ cmp r0, 0
+ bne _081D525C
+ b _081D548A
+_081D525C:
+ movs r0, 0x4
+ strb r0, [r4, 0x8]
+ b _081D548A
+ .pool
+_081D5268:
+ ldr r0, =gUnknown_085EE097
+ bl sub_8018884
+ ldr r0, =gUnknown_03006370
+ ldr r1, =gUnknown_089A6550
+ ldr r2, =gUnknown_089A3470
+ subs r1, r2
+ bl sub_81D4D50
+ movs r0, 0x9
+ strb r0, [r4, 0x8]
+ b _081D548A
+ .pool
+_081D5290:
+ ldr r0, =gUnknown_03006370
+ bl sub_81D4DE8
+ strb r0, [r4, 0xE]
+ lsls r0, 24
+ cmp r0, 0
+ bne _081D52A0
+ b _081D548A
+_081D52A0:
+ movs r0, 0xA
+ strb r0, [r4, 0x8]
+ b _081D548A
+ .pool
+_081D52AC:
+ ldr r0, =gUnknown_03006370
+ bl sub_81D4DB8
+ ldrb r0, [r4, 0xE]
+ cmp r0, 0x3
+ bne _081D52BA
+ b _081D53C0
+_081D52BA:
+ cmp r0, 0x1
+ beq _081D52C0
+ b _081D546E
+_081D52C0:
+ adds r0, r4, 0
+ bl sub_81D505C
+ ldr r0, =gUnknown_085EE120
+ bl sub_8018884
+ movs r0, 0xB
+ strb r0, [r4, 0x8]
+ b _081D548A
+ .pool
+_081D52DC:
+ movs r1, 0xD2
+ lsls r1, 2
+ adds r0, r4, 0
+ bl sub_81D5064
+ cmp r0, 0
+ bne _081D52EC
+ b _081D548A
+_081D52EC:
+ movs r0, 0xC
+ strb r0, [r4, 0x8]
+ b _081D548A
+_081D52F2:
+ bl sub_81D4E30
+ ldr r0, =gUnknown_085EE0DC
+ bl sub_8018884
+_081D52FC:
+ movs r0, 0xD
+ strb r0, [r4, 0x8]
+ b _081D548A
+ .pool
+_081D5308:
+ adds r0, r4, 0
+ adds r0, 0x9
+ adds r1, r4, 0
+ bl sub_81D4EE4
+ cmp r0, 0x5
+ bls _081D5318
+ b _081D548A
+_081D5318:
+ lsls r0, 2
+ ldr r1, =_081D5328
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081D5328:
+ .4byte _081D548A
+ .4byte _081D5350
+ .4byte _081D5340
+ .4byte _081D5374
+ .4byte _081D5374
+ .4byte _081D5360
+_081D5340:
+ ldr r0, =gUnknown_085EE097
+ bl sub_8018884
+ movs r0, 0xE
+ strb r0, [r4, 0x8]
+ b _081D548A
+ .pool
+_081D5350:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80097E8
+_081D535A:
+ movs r0, 0x17
+ strb r0, [r4, 0x8]
+ b _081D548A
+_081D5360:
+ bl sub_80097E8
+ movs r0, 0x15
+ strb r0, [r4, 0x8]
+ b _081D548A
+_081D536A:
+ bl sub_800B33C
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D537A
+_081D5374:
+ bl sub_80097E8
+ b _081D53C0
+_081D537A:
+ bl sub_800A550
+ lsls r0, 24
+ cmp r0, 0
+ bne _081D5386
+ b _081D548A
+_081D5386:
+ bl sub_800A5B4
+ movs r0, 0xF
+ strb r0, [r4, 0x8]
+ b _081D548A
+_081D5390:
+ ldr r0, =0x0201c000
+ bl sub_81D3920
+ strb r0, [r4, 0xE]
+ ldrb r0, [r4, 0xE]
+ bl sub_800ABF4
+ movs r0, 0x10
+ strb r0, [r4, 0x8]
+ b _081D548A
+ .pool
+_081D53A8:
+ ldr r0, =gUnknown_03003124
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081D548A
+ ldrb r0, [r4, 0xE]
+ cmp r0, 0x1
+ bne _081D53C0
+ movs r0, 0x11
+ strb r0, [r4, 0x8]
+ b _081D548A
+ .pool
+_081D53C0:
+ movs r0, 0x14
+ strb r0, [r4, 0x8]
+ b _081D548A
+_081D53C6:
+ ldr r0, =0x0201c000
+ bl sub_81D3AB0
+ cmp r0, 0
+ beq _081D53EC
+ ldr r0, =gUnknown_085EE0FA
+ bl sub_8018884
+ adds r0, r4, 0
+ bl sub_81D505C
+ movs r0, 0x12
+ strb r0, [r4, 0x8]
+ b _081D548A
+ .pool
+_081D53EC:
+ movs r0, 0x16
+ strb r0, [r4, 0x8]
+ b _081D548A
+_081D53F2:
+ adds r0, r4, 0
+ movs r1, 0x78
+ bl sub_81D5064
+ cmp r0, 0
+ beq _081D548A
+ ldr r0, =gUnknown_085EE107
+ bl sub_8018884
+ movs r0, 0xB9
+ lsls r0, 1
+ bl PlayFanfare
+ movs r0, 0x13
+ strb r0, [r4, 0x8]
+ b _081D548A
+ .pool
+_081D5418:
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D548A
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ b _081D543A
+ .pool
+_081D5430:
+ adds r0, r4, 0
+ adds r0, 0x9
+ ldr r1, =gUnknown_085EE06B
+ bl mevent_0814257C
+_081D543A:
+ cmp r0, 0
+ beq _081D548A
+ movs r0, 0x1A
+ strb r0, [r4, 0x8]
+ b _081D548A
+ .pool
+_081D5448:
+ adds r0, r4, 0
+ adds r0, 0x9
+ ldr r1, =gUnknown_085EE0A3
+ b _081D5466
+ .pool
+_081D5454:
+ adds r0, r4, 0
+ adds r0, 0x9
+ ldr r1, =gUnknown_085EE0BF
+ b _081D5466
+ .pool
+_081D5460:
+ adds r0, r4, 0
+ adds r0, 0x9
+ ldr r1, =gUnknown_085EE12D
+_081D5466:
+ bl mevent_0814257C
+ cmp r0, 0
+ beq _081D548A
+_081D546E:
+ movs r0, 0
+ strb r0, [r4, 0x8]
+ b _081D548A
+ .pool
+_081D5478:
+ ldr r0, [r4, 0x10]
+ bl Free
+ adds r0, r5, 0
+ bl DestroyTask
+ ldr r0, =sub_80186A4
+ bl SetMainCallback2
+_081D548A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D5084
+
+ thumb_func_start sp194_trainer_tower
+sp194_trainer_tower: @ 81D5494
+ push {lr}
+ bl sub_81D56B0
+ ldr r1, =gUnknown_0862A618
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl sub_81D5710
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sp194_trainer_tower
+
+ thumb_func_start sub_81D54BC
+sub_81D54BC: @ 81D54BC
+ push {r4-r6,lr}
+ ldr r4, =gSaveBlock2Ptr
+ ldr r1, [r4]
+ ldr r3, =0x00000ef9
+ adds r1, r3
+ ldrb r2, [r1]
+ movs r0, 0x7F
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, [r4]
+ adds r1, r3
+ ldrb r2, [r1]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r2, =gSaveBlock1Ptr
+ ldr r0, [r2]
+ ldr r1, =0x00003d68
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ adds r6, r2, 0
+ ldr r5, =0x00003718
+ movs r4, 0x3
+_081D54EE:
+ ldr r0, [r6]
+ adds r0, r5
+ ldr r1, =0x00034bbf
+ bl sub_81D5DF4
+ adds r5, 0x4
+ subs r4, 0x1
+ cmp r4, 0
+ bge _081D54EE
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D54BC
+
+ thumb_func_start sub_81D5520
+sub_81D5520: @ 81D5520
+ ldr r0, =gMapHeader
+ ldrb r0, [r0, 0x12]
+ adds r0, 0x61
+ lsls r0, 24
+ lsrs r0, 24
+ bx lr
+ .pool
+ thumb_func_end sub_81D5520
+
+ thumb_func_start sub_81D5530
+sub_81D5530: @ 81D5530
+ lsls r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ ldr r2, =gTrainerClassToNameIndex
+ ldr r1, =gUnknown_0203CF58
+ ldr r1, [r1]
+ adds r1, 0x16
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, r2
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_81D5530
+
+ thumb_func_start sub_81D5554
+sub_81D5554: @ 81D5554
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ movs r0, 0xFF
+ lsls r0, 24
+ adds r1, r0
+ lsrs r1, 24
+ movs r3, 0
+ ldr r0, =gUnknown_0203CF58
+ ldr r2, [r0]
+ movs r0, 0xB
+ muls r0, r1
+ adds r2, r0, r2
+_081D556E:
+ adds r1, r4, r3
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0xA
+ ble _081D556E
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D5554
+
+ thumb_func_start sub_81D5588
+sub_81D5588: @ 81D5588
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl sub_81D56B0
+ subs r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_0203CF54
+ ldr r3, [r0]
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r4
+ ldrb r2, [r3]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 3
+ subs r0, r2
+ adds r0, r1
+ lsls r0, 3
+ adds r3, r0
+ ldrb r4, [r3, 0x1B]
+ bl sub_81D5710
+ ldr r0, =gUnknown_0831F578
+ adds r4, r0
+ ldrb r0, [r4]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D5588
+
+ thumb_func_start sub_81D55D0
+sub_81D55D0: @ 81D55D0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ bl sub_81D56B0
+ ldr r4, =gUnknown_0203CF58
+ movs r0, 0x18
+ bl AllocZeroed
+ str r0, [r4]
+ movs r6, 0
+ ldr r0, =gUnknown_0203CF54
+ mov r10, r0
+_081D55EE:
+ movs r5, 0
+ lsls r1, r6, 2
+ mov r8, r1
+ adds r0, r6, 0x1
+ mov r9, r0
+ movs r0, 0xB
+ adds r1, r6, 0
+ muls r1, r0
+ mov r12, r1
+ mov r1, r8
+ adds r0, r1, r6
+ lsls r0, 3
+ adds r0, r6
+ lsls r7, r0, 3
+_081D560A:
+ ldr r0, =gUnknown_0203CF58
+ ldr r4, [r0]
+ mov r1, r12
+ adds r0, r5, r1
+ adds r4, r0
+ mov r0, r10
+ ldr r2, [r0]
+ adds r3, r5, r7
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 3
+ subs r0, r1
+ lsls r0, 3
+ adds r3, r0
+ adds r2, 0x10
+ adds r2, r3
+ ldrb r0, [r2]
+ strb r0, [r4]
+ adds r5, 0x1
+ cmp r5, 0xA
+ ble _081D560A
+ ldr r1, =gUnknown_0203CF58
+ ldr r4, [r1]
+ adds r4, 0x16
+ adds r4, r6
+ mov r0, r10
+ ldr r3, [r0]
+ mov r1, r8
+ adds r2, r1, r6
+ lsls r2, 3
+ adds r2, r6
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 3
+ subs r0, r1
+ adds r0, r2
+ lsls r0, 3
+ adds r3, r0
+ ldrb r0, [r3, 0x1B]
+ strb r0, [r4]
+ mov r6, r9
+ cmp r6, 0x1
+ ble _081D55EE
+ ldr r1, =gSaveBlock1Ptr
+ ldr r0, [r1]
+ ldr r1, =0x00003d64
+ adds r0, r1
+ bl sub_80008DC
+ bl sub_81D5710
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D55D0
+
+ thumb_func_start sub_81D5694
+sub_81D5694: @ 81D5694
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CF58
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _081D56A6
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+_081D56A6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D5694
+
+ thumb_func_start sub_81D56B0
+sub_81D56B0: @ 81D56B0
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CF54
+ ldr r0, [r4]
+ cmp r0, 0
+ bne _081D56EC
+ ldr r0, =0x00000eec
+ bl AllocZeroed
+ str r0, [r4]
+ ldr r1, =gMapHeader
+ ldrb r1, [r1, 0x12]
+ adds r1, 0x61
+ strb r1, [r0]
+ ldr r1, =gUnknown_0862A5F8
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003d6e
+ adds r0, r2
+ ldrb r0, [r0]
+ lsrs r0, 6
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, [r4]
+ adds r1, 0x4
+ ldr r2, =0x040003ba
+ bl CpuSet
+ bl nullsub_2
+_081D56EC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D56B0
+
+ thumb_func_start sub_81D5710
+sub_81D5710: @ 81D5710
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CF54
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _081D5722
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+_081D5722:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D5710
+
+ thumb_func_start sub_81D572C
+sub_81D572C: @ 81D572C
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl sub_81D56B0
+ bl sub_81D5520
+ lsls r0, 24
+ lsrs r2, r0, 24
+ subs r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ cmp r5, 0x3
+ beq _081D5790
+ cmp r5, 0x3
+ bgt _081D575A
+ cmp r5, 0x2
+ beq _081D5764
+ b _081D580E
+_081D575A:
+ cmp r6, 0x4
+ beq _081D57BC
+ cmp r6, 0x5
+ beq _081D57E8
+ b _081D580E
+_081D5764:
+ ldr r0, =gUnknown_0203CF54
+ lsls r1, r2, 4
+ subs r1, r2
+ lsls r1, 3
+ subs r1, r2
+ lsls r1, 3
+ adds r1, 0xC
+ ldr r0, [r0]
+ adds r0, r1
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r4
+ lsls r1, 3
+ adds r1, 0x4
+ adds r0, r1
+ adds r0, 0x10
+ bl ConvertBattleFrontierTrainerSpeechToString
+ b _081D580E
+ .pool
+_081D5790:
+ ldr r0, =gUnknown_0203CF54
+ lsls r1, r2, 4
+ subs r1, r2
+ lsls r1, 3
+ subs r1, r2
+ lsls r1, 3
+ adds r1, 0xC
+ ldr r0, [r0]
+ adds r0, r1
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r4
+ lsls r1, 3
+ adds r1, 0x4
+ adds r0, r1
+ adds r0, 0x1C
+ bl ConvertBattleFrontierTrainerSpeechToString
+ b _081D580E
+ .pool
+_081D57BC:
+ ldr r0, =gUnknown_0203CF54
+ lsls r1, r2, 4
+ subs r1, r2
+ lsls r1, 3
+ subs r1, r2
+ lsls r1, 3
+ adds r1, 0xC
+ ldr r0, [r0]
+ adds r0, r1
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r4
+ lsls r1, 3
+ adds r1, 0x4
+ adds r0, r1
+ adds r0, 0x28
+ bl ConvertBattleFrontierTrainerSpeechToString
+ b _081D580E
+ .pool
+_081D57E8:
+ ldr r0, =gUnknown_0203CF54
+ lsls r1, r2, 4
+ subs r1, r2
+ lsls r1, 3
+ subs r1, r2
+ lsls r1, 3
+ adds r1, 0xC
+ ldr r0, [r0]
+ adds r0, r1
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r4
+ lsls r1, 3
+ adds r1, 0x4
+ adds r0, r1
+ adds r0, 0x34
+ bl ConvertBattleFrontierTrainerSpeechToString
+_081D580E:
+ bl sub_81D5710
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D572C
+
+ thumb_func_start sub_81D581C
+sub_81D581C: @ 81D581C
+ push {r4-r6,lr}
+ bl nullsub_2
+ bl sub_81D3B34
+ cmp r0, 0
+ bne _081D5844
+ ldr r3, =gSaveBlock1Ptr
+ ldr r1, [r3]
+ ldr r0, =0x00003d6e
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x20
+ orrs r0, r2
+ b _081D5854
+ .pool
+_081D5844:
+ ldr r3, =gSaveBlock1Ptr
+ ldr r1, [r3]
+ ldr r0, =0x00003d6e
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r2
+_081D5854:
+ strb r0, [r1]
+ adds r6, r3, 0
+ ldr r0, [r6]
+ ldr r1, =0x00003d6c
+ adds r0, r1
+ movs r5, 0
+ strb r5, [r0]
+ ldr r0, [r6]
+ ldr r4, =0x00003d64
+ adds r0, r4
+ bl sub_80008DC
+ ldr r1, [r6]
+ adds r4, r1, r4
+ str r5, [r4]
+ ldr r3, =0x00003d6e
+ adds r1, r3
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, [r6]
+ adds r1, r3
+ ldrb r2, [r1]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, [r6]
+ adds r1, r3
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r1, 0xEE
+ lsls r1, 4
+ adds r0, r1
+ strb r5, [r0]
+ ldr r0, =gBattleOutcome
+ strb r5, [r0]
+ ldr r1, [r6]
+ adds r1, r3
+ ldrb r2, [r1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D581C
+
+ thumb_func_start sub_81D58D8
+sub_81D58D8: @ 81D58D8
+ push {lr}
+ bl sub_80008E8
+ ldr r3, =gScriptResult
+ movs r0, 0
+ strh r0, [r3]
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003d6e
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _081D58FA
+ movs r0, 0x1
+ strh r0, [r3]
+_081D58FA:
+ ldrb r1, [r2]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x3
+ bne _081D590A
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+_081D590A:
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D58D8
+
+ thumb_func_start sub_81D5924
+sub_81D5924: @ 81D5924
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ bl sub_81D6640
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, =gUnknown_0203CF54
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x4
+ bne _081D5952
+ ldr r0, =gSaveBlock1Ptr
+ mov r8, r0
+ ldr r0, [r0]
+ ldr r7, =0x00003d6e
+ adds r0, r7
+ ldrb r0, [r0]
+ movs r6, 0x1
+ adds r4, r6, 0
+ ands r4, r0
+ cmp r4, 0
+ beq _081D596C
+_081D5952:
+ ldr r1, =gScriptResult
+ movs r0, 0x2
+ strh r0, [r1]
+ b _081D59C0
+ .pool
+_081D596C:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081D59BC
+ ldr r1, =gStringVar2
+ adds r0, r5, 0
+ bl CopyItemName
+ mov r0, r8
+ ldr r1, [r0]
+ adds r1, r7
+ ldrb r0, [r1]
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r0, =0x00000ef9
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, =gScriptResult
+ strh r4, [r0]
+ b _081D59C0
+ .pool
+_081D59BC:
+ ldr r0, =gScriptResult
+ strh r6, [r0]
+_081D59C0:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D5924
+
+ thumb_func_start sub_81D59D0
+sub_81D59D0: @ 81D59D0
+ push {r4-r6,lr}
+ ldr r4, =gSaveBlock1Ptr
+ ldr r2, [r4]
+ ldr r6, =0x00003d6e
+ adds r0, r2, r6
+ ldrb r1, [r0]
+ movs r3, 0x2
+ adds r0, r3, 0
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _081D59FC
+ ldr r0, =gScriptResult
+ strh r3, [r0]
+ b _081D5A4E
+ .pool
+_081D59FC:
+ ldr r1, =0x00003d68
+ adds r0, r2, r1
+ bl free_203F458
+ ldr r2, [r4]
+ ldr r3, =0x00003d64
+ adds r1, r2, r3
+ ldr r1, [r1]
+ cmp r0, r1
+ bls _081D5A48
+ adds r3, 0x4
+ adds r0, r2, r3
+ bl sub_81D5DF4
+ ldr r2, [r4]
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ lsrs r0, 6
+ lsls r0, 2
+ ldr r3, =0x00003718
+ adds r1, r2, r3
+ adds r1, r0
+ ldr r0, =0x00003d68
+ adds r2, r0
+ ldr r0, [r2]
+ str r0, [r1]
+ ldr r0, =gScriptResult
+ strh r5, [r0]
+ b _081D5A4E
+ .pool
+_081D5A48:
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+_081D5A4E:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r3, =0x00003d6e
+ adds r1, r3
+ ldrb r0, [r1]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D59D0
+
+ thumb_func_start sub_81D5A70
+sub_81D5A70: @ 81D5A70
+ push {lr}
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ ldr r1, =0x00003d6e
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _081D5AAE
+ ldr r0, =0x00003d64
+ adds r2, r0
+ ldr r1, [r2]
+ ldr r0, =0x00034bbe
+ cmp r1, r0
+ bls _081D5AA8
+ adds r0, 0x1
+ str r0, [r2]
+ b _081D5AAE
+ .pool
+_081D5AA8:
+ adds r0, r2, 0
+ bl sub_80008DC
+_081D5AAE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D5A70
+
+ thumb_func_start sub_81D5AB4
+sub_81D5AB4: @ 81D5AB4
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r0, =0x00003d6e
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x8
+ orrs r0, r2
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81D5AB4
+
+ thumb_func_start sub_81D5AD0
+sub_81D5AD0: @ 81D5AD0
+ push {lr}
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003d6e
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _081D5B00
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r1, =gScriptResult
+ movs r0, 0
+ b _081D5B20
+ .pool
+_081D5B00:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081D5B1C
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+ b _081D5B20
+ .pool
+_081D5B1C:
+ ldr r1, =gScriptResult
+ movs r0, 0x2
+_081D5B20:
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D5AD0
+
+ thumb_func_start sub_81D5B2C
+sub_81D5B2C: @ 81D5B2C
+ push {r4-r7,lr}
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003d64
+ adds r0, r1
+ ldr r7, [r0]
+ ldr r0, =0x00034bbe
+ cmp r7, r0
+ ble _081D5B40
+ ldr r7, =0x00034bbf
+_081D5B40:
+ movs r4, 0xE1
+ lsls r4, 4
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl __divsi3
+ adds r6, r0, 0
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl __modsi3
+ adds r7, r0, 0
+ movs r1, 0x3C
+ bl __divsi3
+ adds r5, r0, 0
+ adds r0, r7, 0
+ movs r1, 0x3C
+ bl __modsi3
+ adds r7, r0, 0
+ movs r0, 0xA8
+ muls r0, r7
+ movs r1, 0x64
+ bl __divsi3
+ adds r4, r0, 0
+ ldr r0, =gStringVar1
+ adds r1, r6, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, =gStringVar2
+ adds r1, r5, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, =gStringVar3
+ adds r1, r4, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D5B2C
+
+ thumb_func_start sub_81D5BBC
+sub_81D5BBC: @ 81D5BBC
+ push {lr}
+ bl sub_81D56B0
+ ldr r0, =gUnknown_0203CF54
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0x4
+ beq _081D5BEC
+ ldr r0, =gStringVar1
+ ldrb r1, [r1, 0x6]
+ movs r2, 0
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ ldr r1, =gScriptResult
+ movs r0, 0
+ b _081D5BF0
+ .pool
+_081D5BEC:
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+_081D5BF0:
+ strh r0, [r1]
+ bl sub_81D5710
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D5BBC
+
+ thumb_func_start sub_81D5C00
+sub_81D5C00: @ 81D5C00
+ push {lr}
+ bl sub_81D56B0
+ ldr r1, =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ bl sub_81D5710
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D5C00
+
+ thumb_func_start sub_81D5C18
+sub_81D5C18: @ 81D5C18
+ push {lr}
+ ldr r0, =0x000040d6
+ bl VarGet
+ lsls r0, 16
+ cmp r0, 0
+ beq _081D5C42
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003d6e
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _081D5C42
+ bl GetCurrentTrainerHillMapId
+ lsls r0, 24
+ cmp r0, 0
+ bne _081D5C54
+_081D5C42:
+ movs r0, 0
+ b _081D5C56
+ .pool
+_081D5C54:
+ movs r0, 0x1
+_081D5C56:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D5C18
+
+ thumb_func_start sub_81D5C5C
+sub_81D5C5C: @ 81D5C5C
+ push {lr}
+ bl sub_81D5C18
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _081D5C74
+ ldr r0, =gScriptResult
+ strh r1, [r0]
+ b _081D5C7A
+ .pool
+_081D5C74:
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+_081D5C7A:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D5C5C
+
+ thumb_func_start nullsub_129
+nullsub_129: @ 81D5C84
+ bx lr
+ thumb_func_end nullsub_129
+
+ thumb_func_start nullsub_2
+nullsub_2: @ 81D5C88
+ bx lr
+ thumb_func_end nullsub_2
+
+ thumb_func_start sub_81D5C8C
+sub_81D5C8C: @ 81D5C8C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ bl sub_81D56B0
+ movs r0, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r5, =gUnknown_085EF88A
+ movs r0, 0x1
+ adds r1, r5, 0
+ movs r2, 0xD0
+ bl GetStringCenterAlignXOffset
+ lsls r2, r0, 24
+ lsrs r2, 24
+ ldr r6, =gUnknown_0862A5F4
+ str r6, [sp]
+ movs r4, 0x1
+ negs r4, r4
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x1
+ movs r3, 0x2
+ bl box_print
+ movs r7, 0x12
+ movs r0, 0
+ mov r8, r0
+ mov r10, r4
+ ldr r1, =gStringVar4
+ mov r9, r1
+_081D5CD6:
+ lsls r3, r7, 24
+ lsrs r3, 24
+ ldr r0, =gUnknown_0862A5F4
+ str r0, [sp]
+ mov r1, r10
+ str r1, [sp, 0x4]
+ ldr r0, =gUnknown_0862A660
+ mov r1, r8
+ lsls r4, r1, 2
+ adds r0, r4, r0
+ ldr r0, [r0]
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl box_print
+ adds r7, 0xF
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, =0x00003718
+ adds r4, r1
+ ldr r0, [r0]
+ adds r0, r4
+ bl free_203F458
+ adds r4, r0, 0
+ movs r5, 0xE1
+ lsls r5, 4
+ adds r1, r5, 0
+ bl __udivsi3
+ adds r6, r0, 0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl __umodsi3
+ adds r5, r0, 0
+ ldr r0, =gStringVar1
+ adds r1, r6, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl __udivsi3
+ adds r4, r0, 0
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl __umodsi3
+ adds r5, r0, 0
+ ldr r0, =gStringVar2
+ adds r1, r4, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ movs r0, 0xA8
+ muls r0, r5
+ movs r1, 0x64
+ bl __udivsi3
+ adds r1, r0, 0
+ ldr r0, =gStringVar3
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ mov r0, r9
+ ldr r1, =gUnknown_085EF895
+ bl StringCopy
+ ldr r1, =gUnknown_085EF8A3
+ bl StringExpandPlaceholders
+ movs r0, 0x1
+ mov r1, r9
+ movs r2, 0xD0
+ bl GetStringRightAlignXOffset
+ lsls r2, r0, 24
+ lsrs r2, 24
+ lsls r3, r7, 24
+ lsrs r3, 24
+ ldr r0, =gUnknown_0862A5F4
+ str r0, [sp]
+ mov r1, r10
+ str r1, [sp, 0x4]
+ mov r0, r9
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x1
+ bl box_print
+ adds r7, 0x11
+ movs r1, 0x1
+ add r8, r1
+ mov r0, r8
+ cmp r0, 0x3
+ ble _081D5CD6
+ movs r0, 0
+ bl PutWindowTilemap
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ bl sub_81D5710
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D5C8C
+
+ thumb_func_start free_203F458
+free_203F458: @ 81D5DF0
+ ldr r0, [r0]
+ bx lr
+ thumb_func_end free_203F458
+
+ thumb_func_start sub_81D5DF4
+sub_81D5DF4: @ 81D5DF4
+ str r1, [r0]
+ bx lr
+ thumb_func_end sub_81D5DF4
+
+ thumb_func_start sub_81D5DF8
+sub_81D5DF8: @ 81D5DF8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ movs r1, 0xC7
+ lsls r1, 4
+ adds r1, r0, r1
+ str r1, [sp, 0x4]
+ bl sub_81D5F48
+ cmp r0, 0
+ beq _081D5F0E
+ bl sub_81D56B0
+ movs r7, 0
+ ldr r4, =gSaveBlock2Ptr
+ ldr r3, =0x00000cb4
+ ldr r0, =0x0000ffff
+ adds r2, r0, 0
+_081D5E26:
+ ldr r1, [r4]
+ lsls r0, r7, 1
+ adds r1, r3
+ adds r1, r0
+ ldrh r0, [r1]
+ orrs r0, r2
+ strh r0, [r1]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x1
+ bls _081D5E26
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ movs r2, 0xC7
+ lsls r2, 4
+ adds r1, r2
+ ldr r2, =0x05000180
+ mov r0, sp
+ bl CpuSet
+ bl sub_81D5520
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r7, 0
+ ldr r3, =gUnknown_0203CF54
+ mov r10, r3
+_081D5E64:
+ lsls r4, r7, 1
+ mov r8, r4
+ adds r5, r4, r7
+ lsls r5, 3
+ ldr r0, [sp, 0x4]
+ adds r5, r0
+ adds r1, r5, 0
+ ldr r0, =gUnknown_0862A670
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ adds r6, r7, 0x1
+ strb r6, [r5]
+ mov r0, r10
+ ldr r1, [r0]
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r7
+ lsls r0, 3
+ mov r2, r9
+ lsls r4, r2, 4
+ subs r4, r2
+ lsls r4, 3
+ subs r4, r2
+ lsls r4, 3
+ adds r0, r4
+ adds r1, r0
+ ldrb r0, [r1, 0x1B]
+ bl sub_81660B8
+ strb r0, [r5, 0x1]
+ mov r0, r10
+ ldr r3, [r0]
+ adds r0, r7, r4
+ movs r2, 0xF0
+ lsls r2, 2
+ adds r1, r3, r2
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0xF
+ ands r0, r2
+ strh r0, [r5, 0x4]
+ ldrb r0, [r1]
+ lsrs r0, 4
+ movs r1, 0xF
+ ands r0, r1
+ adds r0, 0x5
+ strh r0, [r5, 0x6]
+ lsls r1, r7, 26
+ lsrs r1, 24
+ adds r3, r4
+ ldr r2, =0x000003c2
+ adds r3, r2
+ ldrb r0, [r3]
+ asrs r0, r1
+ movs r3, 0xF
+ ands r0, r3
+ adds r0, 0x7
+ strb r0, [r5, 0x9]
+ mov r2, r10
+ ldr r0, [r2]
+ adds r0, r4
+ ldr r3, =0x000003c3
+ adds r0, r3
+ ldrb r0, [r0]
+ asrs r0, r1
+ movs r1, 0xF
+ ands r0, r1
+ strh r0, [r5, 0xE]
+ ldr r0, =gUnknown_082C83F0
+ str r0, [r5, 0x10]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r4, =0x00000cb4
+ adds r0, r4
+ add r0, r8
+ strh r6, [r0]
+ lsls r6, 24
+ lsrs r7, r6, 24
+ cmp r7, 0x1
+ bls _081D5E64
+ bl sub_81D5710
+_081D5F0E:
+ 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_81D5DF8
+
+ thumb_func_start sub_81D5F48
+sub_81D5F48: @ 81D5F48
+ push {lr}
+ bl sub_81D56B0
+ bl sub_81D5710
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D5F48
+
+ thumb_func_start sub_81D5F58
+sub_81D5F58: @ 81D5F58
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, =gUnknown_0203CF54
+ ldr r4, [r4]
+ mov r12, r4
+ lsls r4, r2, 1
+ lsls r5, r0, 4
+ subs r5, r0
+ lsls r5, 3
+ subs r5, r0
+ lsls r5, 3
+ adds r4, r5
+ movs r0, 0xE8
+ lsls r0, 2
+ add r0, r12
+ adds r0, r4
+ ldrh r0, [r0]
+ movs r4, 0xF
+ subs r4, r1
+ asrs r0, r4
+ movs r4, 0x1
+ ands r0, r4
+ muls r2, r3
+ adds r2, r1
+ adds r2, r5
+ movs r1, 0xA8
+ lsls r1, 2
+ add r1, r12
+ adds r1, r2
+ ldrb r1, [r1]
+ movs r2, 0x80
+ lsls r2, 2
+ adds r3, r2, 0
+ movs r2, 0xC0
+ lsls r2, 6
+ lsls r0, 10
+ orrs r0, r2
+ orrs r1, r3
+ orrs r0, r1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D5F58
+
+ thumb_func_start sub_81D5FB4
+sub_81D5FB4: @ 81D5FB4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ bl GetCurrentTrainerHillMapId
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r0, 0x6
+ bne _081D5FD2
+ bl sub_8087D74
+ b _081D605E
+_081D5FD2:
+ bl sub_81D56B0
+ mov r0, r9
+ cmp r0, 0x5
+ bne _081D5FE6
+ bl sub_8087D74
+ bl sub_81D5710
+ b _081D605E
+_081D5FE6:
+ bl sub_81D5520
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, =gMapHeader
+ ldr r0, [r0]
+ ldr r2, [r0, 0xC]
+ ldr r1, =gUnknown_03005DC0
+ str r4, [r1, 0x8]
+ movs r0, 0x1F
+ str r0, [r1]
+ movs r0, 0x23
+ str r0, [r1, 0x4]
+ movs r0, 0xE0
+ lsls r0, 1
+ adds r3, r4, r0
+ movs r6, 0x4
+_081D600A:
+ adds r4, r2, 0
+ adds r4, 0x20
+ adds r1, r3, 0
+ movs r5, 0xF
+_081D6012:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r5, 0x1
+ cmp r5, 0
+ bge _081D6012
+ adds r3, 0x3E
+ adds r2, r4, 0
+ subs r6, 0x1
+ cmp r6, 0
+ bge _081D600A
+ movs r6, 0
+_081D602C:
+ movs r5, 0
+ adds r7, r3, 0
+ adds r7, 0x3E
+ adds r0, r6, 0x1
+ mov r8, r0
+ adds r4, r3, 0
+_081D6038:
+ mov r0, r9
+ adds r1, r5, 0
+ adds r2, r6, 0
+ movs r3, 0x10
+ bl sub_81D5F58
+ strh r0, [r4]
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _081D6038
+ adds r3, r7, 0
+ mov r6, r8
+ cmp r6, 0xF
+ ble _081D602C
+ bl mapheader_run_script_with_tag_x1
+ bl sub_81D5710
+_081D605E:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D5FB4
+
+ thumb_func_start InTrainerHill
+InTrainerHill: @ 81D6074
+ push {lr}
+ ldr r1, =gMapHeader
+ ldr r2, =0xfffffe61
+ adds r0, r2, 0
+ ldrh r1, [r1, 0x12]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ cmp r0, 0x3
+ bhi _081D608C
+ movs r1, 0x1
+_081D608C:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end InTrainerHill
+
+ thumb_func_start GetCurrentTrainerHillMapId
+@ u8 GetCurrentTrainerHillMapId()
+GetCurrentTrainerHillMapId: @ 81D609C
+ push {lr}
+ ldr r0, =gMapHeader
+ ldrh r2, [r0, 0x12]
+ ldr r0, =0x0000019f
+ cmp r2, r0
+ bne _081D60B4
+ movs r1, 0x1
+ b _081D60F8
+ .pool
+_081D60B4:
+ movs r0, 0xD0
+ lsls r0, 1
+ cmp r2, r0
+ bne _081D60C0
+ movs r1, 0x2
+ b _081D60F8
+_081D60C0:
+ ldr r0, =0x000001a1
+ cmp r2, r0
+ bne _081D60D0
+ movs r1, 0x3
+ b _081D60F8
+ .pool
+_081D60D0:
+ movs r0, 0xD1
+ lsls r0, 1
+ cmp r2, r0
+ bne _081D60DC
+ movs r1, 0x4
+ b _081D60F8
+_081D60DC:
+ ldr r0, =0x000001a3
+ cmp r2, r0
+ bne _081D60EC
+ movs r1, 0x5
+ b _081D60F8
+ .pool
+_081D60EC:
+ movs r0, 0xCF
+ lsls r0, 1
+ movs r1, 0
+ cmp r2, r0
+ bne _081D60F8
+ movs r1, 0x6
+_081D60F8:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end GetCurrentTrainerHillMapId
+
+ thumb_func_start sub_81D6100
+sub_81D6100: @ 81D6100
+ push {lr}
+ ldr r0, =gMapHeader
+ ldrh r1, [r0, 0x12]
+ ldr r0, =0x000001a3
+ movs r2, 0
+ cmp r1, r0
+ bne _081D6110
+ movs r2, 0x1
+_081D6110:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D6100
+
+ thumb_func_start sub_81D6120
+sub_81D6120: @ 81D6120
+ push {lr}
+ movs r0, 0x1A
+ movs r1, 0x40
+ bl get_mapheader_by_bank_and_number
+ ldr r0, [r0, 0x4]
+ ldr r0, [r0, 0x8]
+ adds r0, 0x8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D6120
+
+ thumb_func_start sub_81D6134
+sub_81D6134: @ 81D6134
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081D614C
+ ldr r0, =gMapHeader
+ ldr r0, [r0, 0x4]
+ ldr r0, [r0, 0x8]
+ adds r0, 0x8
+ b _081D6176
+ .pool
+_081D614C:
+ bl sub_81D6490
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _081D6162
+ movs r2, 0x4
+_081D6162:
+ ldr r1, =gUnknown_0862A688
+ subs r0, r2, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x1A
+ bl get_mapheader_by_bank_and_number
+ ldr r0, [r0, 0x4]
+ ldr r0, [r0, 0x8]
+_081D6176:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D6134
+
+ thumb_func_start battle_init
+battle_init: @ 81D6180
+ lsls r0, 24
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ lsrs r0, 23
+ adds r1, r0
+ ldr r0, =0x00000cb2
+ adds r1, r0
+ ldrh r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end battle_init
+
+ thumb_func_start GetTrainerHillTrainerFlag
+@ u8 GetTrainerHillTrainerFlag(u8 fieldObjectId)
+GetTrainerHillTrainerFlag: @ 81D619C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_81D5520
+ lsls r0, 24
+ lsrs r0, 23
+ ldr r2, =gMapObjects
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r2
+ adds r0, 0xFF
+ ldrb r1, [r1, 0x8]
+ adds r0, r1
+ lsls r0, 24
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ movs r2, 0xEE
+ lsls r2, 4
+ adds r1, r2
+ ldr r2, =gBitTable
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ldrb r1, [r1]
+ ands r0, r1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end GetTrainerHillTrainerFlag
+
+ thumb_func_start sub_81D61E8
+sub_81D61E8: @ 81D61E8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ bl sub_81D5520
+ lsls r0, 25
+ lsrs r4, r0, 24
+ movs r3, 0
+ ldr r0, =gTrainerBattleOpponent_A
+ mov r8, r0
+ ldr r6, =gSaveBlock2Ptr
+ ldr r1, =gBitTable
+ mov r12, r1
+ adds r5, r6, 0
+_081D6204:
+ ldr r2, [r5]
+ lsls r0, r3, 1
+ ldr r7, =0x00000cb4
+ adds r1, r2, r7
+ adds r1, r0
+ ldrh r0, [r1]
+ mov r1, r8
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _081D6240
+ movs r7, 0xEE
+ lsls r7, 4
+ adds r2, r7
+ adds r0, r4, r3
+ lsls r0, 2
+ add r0, r12
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ b _081D624A
+ .pool
+_081D6240:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1
+ bls _081D6204
+_081D624A:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _081D62A2
+ movs r3, 0
+ ldr r5, =gTrainerBattleOpponent_B
+ ldr r0, =gBitTable
+ mov r8, r0
+_081D6260:
+ ldr r2, [r6]
+ lsls r0, r3, 1
+ ldr r7, =0x00000cb4
+ adds r1, r2, r7
+ adds r1, r0
+ ldrh r0, [r1]
+ ldrh r1, [r5]
+ cmp r0, r1
+ bne _081D6298
+ movs r7, 0xEE
+ lsls r7, 4
+ adds r2, r7
+ adds r0, r4, r3
+ lsls r0, 2
+ add r0, r8
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ b _081D62A2
+ .pool
+_081D6298:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1
+ bls _081D6260
+_081D62A2:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D61E8
+
+ thumb_func_start sub_81D62AC
+sub_81D62AC: @ 81D62AC
+ ldr r0, =gUnknown_082C83F0
+ bx lr
+ .pool
+ thumb_func_end sub_81D62AC
+
+ thumb_func_start sub_81D62B4
+sub_81D62B4: @ 81D62B4
+ push {lr}
+ ldr r0, =gScriptLastTalked
+ ldrh r1, [r0]
+ movs r0, 0x5
+ bl sub_81D572C
+ bl sub_80982B8
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D62B4
+
+ thumb_func_start sub_81D62CC
+sub_81D62CC: @ 81D62CC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ subs r1, r0, 0x1
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _081D636A
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ bl sub_81D56B0
+ bl sub_8165CB4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ bl sub_81D5520
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r5, r9
+ adds r0, r5, 0x3
+ cmp r5, r0
+ bge _081D6366
+ ldr r1, =gUnknown_0862A698
+ lsls r0, r6, 1
+ adds r0, r6
+ adds r7, r0, r1
+_081D6316:
+ ldrb r2, [r7]
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =gEnemyParty
+ adds r4, r0
+ mov r1, r8
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 3
+ subs r0, r1
+ lsls r0, 3
+ adds r0, 0xC
+ ldr r3, =gUnknown_0203CF54
+ ldr r1, [r3]
+ adds r1, r0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r6
+ lsls r0, 3
+ adds r0, 0x4
+ adds r1, r0
+ movs r0, 0x2C
+ muls r0, r2
+ adds r0, 0x40
+ adds r1, r0
+ adds r0, r4, 0
+ bl sub_806819C
+ adds r0, r4, 0
+ mov r1, r10
+ bl sub_81D642C
+ adds r5, 0x1
+ adds r7, 0x1
+ mov r0, r9
+ adds r0, 0x3
+ cmp r5, r0
+ blt _081D6316
+_081D6366:
+ bl sub_81D5710
+_081D636A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D62CC
+
+ thumb_func_start sub_81D6384
+sub_81D6384: @ 81D6384
+ push {lr}
+ bl ZeroEnemyPartyMons
+ ldr r0, =gTrainerBattleOpponent_A
+ ldrh r0, [r0]
+ movs r1, 0
+ bl sub_81D62CC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D6384
+
+ thumb_func_start sub_81D639C
+sub_81D639C: @ 81D639C
+ push {lr}
+ bl ZeroEnemyPartyMons
+ ldr r0, =gTrainerBattleOpponent_A
+ ldrh r0, [r0]
+ movs r1, 0
+ bl sub_81D62CC
+ ldr r0, =gTrainerBattleOpponent_B
+ ldrh r0, [r0]
+ movs r1, 0x3
+ bl sub_81D62CC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D639C
+
+ thumb_func_start sub_81D63C4
+sub_81D63C4: @ 81D63C4
+ movs r0, 0x7
+ bx lr
+ thumb_func_end sub_81D63C4
+
+ thumb_func_start sub_81D63C8
+sub_81D63C8: @ 81D63C8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl sub_81D56B0
+ subs r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_0203CF54
+ ldr r3, [r0]
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r4
+ ldrb r2, [r3]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 3
+ subs r0, r2
+ adds r0, r1
+ lsls r0, 3
+ adds r3, r0
+ ldrb r4, [r3, 0x1B]
+ bl sub_81D5710
+ movs r2, 0
+ ldr r0, =gTrainerClassToNameIndex
+ adds r4, r0
+ ldrb r3, [r4]
+ ldr r1, =gUnknown_0862A3B4
+_081D6406:
+ ldrb r0, [r1]
+ cmp r0, r3
+ bne _081D641C
+ ldrb r0, [r1, 0x1]
+ b _081D6426
+ .pool
+_081D641C:
+ adds r1, 0x4
+ adds r2, 0x1
+ cmp r2, 0x35
+ bls _081D6406
+ movs r0, 0
+_081D6426:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D63C8
+
+ thumb_func_start sub_81D642C
+sub_81D642C: @ 81D642C
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ mov r0, sp
+ strb r1, [r0]
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r5, =gExperienceTables
+ mov r1, sp
+ ldrb r2, [r1]
+ lsls r2, 2
+ ldr r3, =gBaseStats
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r1, [r1, 0x13]
+ movs r0, 0xCA
+ lsls r0, 1
+ muls r0, r1
+ adds r2, r0
+ adds r2, r5
+ ldr r0, [r2]
+ str r0, [sp, 0x4]
+ add r2, sp, 0x4
+ adds r0, r4, 0
+ movs r1, 0x19
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x38
+ mov r2, sp
+ bl SetMonData
+ adds r0, r4, 0
+ bl CalculateMonStats
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D642C
+
+ thumb_func_start sub_81D6490
+sub_81D6490: @ 81D6490
+ push {r4,lr}
+ bl sub_81D56B0
+ ldr r0, =gUnknown_0203CF54
+ ldr r0, [r0]
+ ldrb r4, [r0, 0x6]
+ bl sub_81D5710
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D6490
+
+ thumb_func_start sub_81D64AC
+sub_81D64AC: @ 81D64AC
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r1, 0xEE
+ lsls r1, 4
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_81D64AC
+
+ thumb_func_start sub_81D64C0
+sub_81D64C0: @ 81D64C0
+ push {lr}
+ bl sub_81D6534
+ cmp r0, 0x1
+ bne _081D64D4
+ ldr r0, =gUnknown_0862A5D4
+ movs r1, 0x70
+ movs r2, 0x20
+ bl LoadPalette
+_081D64D4:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D64C0
+
+ thumb_func_start sub_81D64DC
+sub_81D64DC: @ 81D64DC
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000ef9
+ adds r0, r2
+ ldrb r0, [r0]
+ lsrs r0, 7
+ strh r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81D64DC
+
+ thumb_func_start sub_81D64FC
+sub_81D64FC: @ 81D64FC
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r0, =0x00000ef9
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x80
+ orrs r0, r2
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81D64FC
+
+ thumb_func_start sub_81D6518
+sub_81D6518: @ 81D6518
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r0, =0x00000ef9
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x7F
+ ands r0, r2
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81D6518
+
+ thumb_func_start sub_81D6534
+sub_81D6534: @ 81D6534
+ push {lr}
+ bl sub_81D5C18
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D6560
+ bl GetCurrentTrainerHillMapId
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ beq _081D6560
+ bl sub_81D5C00
+ ldr r0, =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081D6560
+ movs r0, 0x1
+ b _081D6562
+ .pool
+_081D6560:
+ movs r0, 0
+_081D6562:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D6534
+
+ thumb_func_start sub_81D6568
+sub_81D6568: @ 81D6568
+ push {lr}
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003d6e
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _081D6590
+ ldr r1, =gScriptResult
+ movs r0, 0
+ b _081D6594
+ .pool
+_081D6590:
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+_081D6594:
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D6568
+
+ thumb_func_start sub_81D65A0
+sub_81D65A0: @ 81D65A0
+ push {r4,r5,lr}
+ ldr r4, =gSaveBlock1Ptr
+ ldr r2, [r4]
+ ldr r5, =gSpecialVar_0x8005
+ ldr r0, =0x00003d6e
+ adds r2, r0
+ ldrb r1, [r5]
+ lsls r1, 6
+ ldrb r3, [r2]
+ movs r0, 0x3F
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, [r4]
+ ldr r3, =0x00003d68
+ adds r2, r1, r3
+ ldrh r0, [r5]
+ lsls r0, 2
+ ldr r3, =0x00003718
+ adds r1, r3
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D65A0
+
+ thumb_func_start sub_81D65E8
+sub_81D65E8: @ 81D65E8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r3, 0
+ movs r4, 0
+ ldr r0, =gUnknown_0203CF54
+ ldr r6, [r0]
+ movs r5, 0x1F
+_081D65F8:
+ lsls r1, r4, 4
+ subs r1, r4
+ lsls r1, 3
+ subs r1, r4
+ lsls r1, 3
+ adds r1, r6, r1
+ ldrb r2, [r1, 0xC]
+ adds r0, r5, 0
+ ands r0, r2
+ eors r3, r0
+ ldrb r1, [r1, 0xD]
+ adds r0, r5, 0
+ ands r0, r1
+ eors r3, r0
+ lsls r0, r3, 24
+ lsrs r3, r0, 24
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _081D65F8
+ movs r1, 0x5
+ cmp r7, 0
+ beq _081D662A
+ movs r1, 0xA
+_081D662A:
+ adds r0, r3, 0
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r3, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D65E8
+
+ thumb_func_start sub_81D6640
+sub_81D6640: @ 81D6640
+ push {r4,r5,lr}
+ movs r3, 0
+ movs r2, 0
+ ldr r0, =gUnknown_0203CF54
+ ldr r4, [r0]
+_081D664A:
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 3
+ subs r0, r2
+ lsls r0, 3
+ adds r0, r4, r0
+ ldrb r1, [r0, 0xC]
+ adds r1, r3, r1
+ ldrb r0, [r0, 0xD]
+ adds r3, r1, r0
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _081D664A
+ adds r0, r3, 0
+ cmp r0, 0
+ bge _081D6670
+ adds r0, 0xFF
+_081D6670:
+ asrs r4, r0, 8
+ lsrs r0, 31
+ adds r0, r4, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r4, r0
+ ldr r0, =0x00000864
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D66A0
+ ldr r0, =gUnknown_0203CF54
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x8
+ bne _081D66A0
+ movs r0, 0x1
+ b _081D66A2
+ .pool
+_081D66A0:
+ movs r0, 0
+_081D66A2:
+ bl sub_81D65E8
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gSaveBlock1Ptr
+ ldr r5, [r0]
+ ldr r1, =0x00003d6e
+ adds r0, r5, r1
+ ldrb r1, [r0]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0xC0
+ bne _081D66C8
+ adds r0, r2, 0x1
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 24
+ lsrs r2, r0, 24
+_081D66C8:
+ ldr r1, =gUnknown_0862A5CC
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r4, [r0]
+ ldr r1, =0x00003d64
+ adds r0, r5, r1
+ ldr r0, [r0]
+ movs r1, 0xE1
+ lsls r1, 4
+ bl __divsi3
+ movs r1, 0
+ cmp r0, 0xB
+ ble _081D6704
+ movs r1, 0x1
+ cmp r0, 0xC
+ ble _081D6704
+ movs r1, 0x2
+ cmp r0, 0xD
+ ble _081D6704
+ movs r1, 0x3
+ cmp r0, 0xF
+ ble _081D6704
+ movs r1, 0x5
+ cmp r0, 0x11
+ bgt _081D6704
+ movs r1, 0x4
+_081D6704:
+ lsls r0, r1, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81D6640
+
+ .align 2, 0 @ Don't pad with nop.